.git-hooks/pre-commit |   31 +++++++++++++++++++++++++++++++
 1 file changed, 31 insertions(+)

New commits:
commit 18ff318c759aa228e317cf916f39bd6bf2d8dfb4
Author:     Mike Kaganski <mike.kagan...@collabora.com>
AuthorDate: Sat Dec 2 17:57:06 2023 +0100
Commit:     Mike Kaganski <mike.kagan...@collabora.com>
CommitDate: Sat Dec 2 21:55:33 2023 +0100

    Revert "Drop allownonascii check from pre-commit checks"
    
    This reverts commit 8a0015c35f3f137e4f3a80e40616bc078e265a1c.
    
    See 
https://lists.freedesktop.org/archives/libreoffice/2023-December/091265.html
    for details.
    
    Change-Id: I9bfa893af935587c7a4681e71b13a734d5f50b5b
    Reviewed-on: https://gerrit.libreoffice.org/c/core/+/160177
    Tested-by: Jenkins
    Reviewed-by: Mike Kaganski <mike.kagan...@collabora.com>

diff --git a/.git-hooks/pre-commit b/.git-hooks/pre-commit
index 48f131920fd3..521ed202b9ac 100755
--- a/.git-hooks/pre-commit
+++ b/.git-hooks/pre-commit
@@ -381,6 +381,37 @@ if ( system( "git rev-parse --verify HEAD >/dev/null 2>&1" 
) == 0 )
     $against="HEAD"
 }
 
+# If you want to allow non-ascii filenames set this variable to true.
+my $allownonascii=`git config hooks.allownonascii`;
+chomp $allownonascii;
+
+# Cross platform projects tend to avoid non-ascii filenames; prevent
+# them from being added to the repository. We exploit the fact that the
+# printable range starts at the space character and ends with tilde.
+if ( $allownonascii ne "true" &&
+    # Note that the use of brackets around a tr range is ok here, (it's
+    # even required, for portability to Solaris 10's /usr/bin/tr), since
+    # the square bracket bytes happen to fall in the designated range.
+    `git diff --cached --name-only --diff-filter=A -z $against | \
+     LC_ALL=C tr -d '[ -~]\\0'` ne "" )
+{
+    print <<EOM;
+Error: Attempt to add a non-ascii file name.
+
+This can cause problems if you want to work
+with people on other platforms.
+
+To be portable it is advisable to rename the file ...
+
+If you know what you are doing you can disable this
+check using:
+
+  git config hooks.allownonascii true
+
+EOM
+    exit( 1 );
+}
+
 # Block large files.
 open( FILES, "git diff --cached --name-only --diff-filter=A -z $against |" ) 
||  die "Cannot run git diff-index.";
 while (<FILES>)

Reply via email to