diff --git a/lib/CREDITS b/lib/CREDITS index 21ab0a2a61..086970efd8 100644 --- a/lib/CREDITS +++ b/lib/CREDITS @@ -503,6 +503,9 @@ @bBernhard Roider @iE-mail: bernhard.roider () sonnenkinder ! org Various bug fixes +@bMichael Roitzsch +@iE-mail: reactorcontrol () icloud ! com + Fixes for the Nix package manager @bJim Rotmalm @iE-mail: jim.rotmalm () gmail ! com Swedish translation diff --git a/lib/generate_contributions.py b/lib/generate_contributions.py index e04834bf22..827e247d9f 100755 --- a/lib/generate_contributions.py +++ b/lib/generate_contributions.py @@ -1679,6 +1679,14 @@ contributors = [ "29 January 2007", u"Various bug fixes"), + contributor(u"Michael Roitzsch", + "reactorcontrol () icloud ! com", + "GPL", + "Re: TeXFiles.py compatibility with Nix on macOS", + "m=156146891826580", + "25 June 2019", + u"Fixes for the Nix package manager"), + contributor(u"Jim Rotmalm", "jim.rotmalm () gmail ! com", "GPL", diff --git a/lib/scripts/TeXFiles.py b/lib/scripts/TeXFiles.py index aac29bc9d0..188f6b90ad 100755 --- a/lib/scripts/TeXFiles.py +++ b/lib/scripts/TeXFiles.py @@ -116,7 +116,17 @@ for type in types: if not os.path.isdir(dir): continue # walk down the file hierarchy - for root,path,files in os.walk(dir): + visited = set() + for root,dirs,files in os.walk(dir, followlinks=True): + # prevent inifinite recursion + recurse = [] + for dir in dirs: + st = os.stat(os.path.join(root, dir)) + key = st.st_dev, st.st_ino + if key not in visited: + visited.add(key) + recurse.append(dir) + dirs[:] = recurse # check file type for file in files: if len(file) > 4 and file[-4:] == file_ext: