From d05c68ef74c835fbfd00314148dfc9cb75ed9d2c Mon Sep 17 00:00:00 2001 From: calvin Date: Sat, 13 May 2006 13:41:46 +0000 Subject: [PATCH] added path encoding git-svn-id: https://linkchecker.svn.sourceforge.net/svnroot/linkchecker/trunk/linkchecker@3145 e7d03fd6-7b0d-0410-9947-9c21f3af8025 --- linkcheck/fileutil.py | 17 +++++++++++++++++ 1 file changed, 17 insertions(+) diff --git a/linkcheck/fileutil.py b/linkcheck/fileutil.py index 4f06411d..740871bb 100644 --- a/linkcheck/fileutil.py +++ b/linkcheck/fileutil.py @@ -19,6 +19,7 @@ File and path utilities. """ import os +import locale import stat import fnmatch @@ -157,6 +158,22 @@ def get_mtime (filename): return 0 +# http://developer.gnome.org/doc/API/2.0/glib/glib-running.html +if "G_FILENAME_ENCODING" in os.environ: + FSCODING = os.environ["G_FILENAME_ENCODING"].split(",")[0] + if FSCODING == "@locale": + FSCODING = locale.getpreferredencoding() +elif "G_BROKEN_FILENAMES" in os.environ: + FSCODING = locale.getpreferredencoding() +else: + FSCODING = "utf-8" + +def pathencode (path): + if isinstance(path, unicode) and not os.path.supports_unicode_filenames: + path = path.encode(FSCODING, "replace") + return path + + # cache for modified check {absolute filename -> mtime} _mtime_cache = {} def has_changed (filename):