Anonymous committed dc459b0

fetching coding name for xemacs

Comments (0)

Files changed (1)


             lisp.narrow_to_region(1, lisp.buffer_size() + 1)
             #result = lisp.buffer_string()
-            result = lisp('(encode-coding-string (buffer-string) buffer-file-coding-system)')
-            coding = lisp['buffer-file-coding-system'].value()
-            if coding is not None:
-                coding_name = coding.text
+	    coding_name = self._find_file_coding()
+            result = lisp('(encode-coding-string'
+                          ' (buffer-string) buffer-file-coding-system)')
+            if coding_name:
                 if coding_name.endswith('dos'):
                     result = result.replace('\r', '')
                 if coding_name.split('-')[-1] in ('dos', 'unix', 'mac'):
             if narrowed:
                 lisp.narrow_to_region(old_min, old_max)
+    def _find_file_coding(self):
+        coding_name = ''
+        if lisp.fboundp(lisp['coding-system-name']):
+            coding = lisp('(coding-system-name'
+                          ' buffer-file-coding-system)')
+        else:
+            coding = lisp['buffer-file-coding-system']
+        if isinstance(coding, str):
+            coding_name = coding
+        elif coding is not None and hasattr(coding, 'text'):
+            coding_name = coding.text
+        return coding_name
     def goto_definition(self):
Tip: Filter by directory path e.g. /media app.js to search for public/media/app.js.
Tip: Use camelCasing e.g. ProjME to search for
Tip: Filter by extension type e.g. /repo .js to search for all .js files in the /repo directory.
Tip: Separate your search with spaces e.g. /ssh pom.xml to search for src/ssh/pom.xml.
Tip: Use ↑ and ↓ arrow keys to navigate and return to view the file.
Tip: You can also navigate files with Ctrl+j (next) and Ctrl+k (previous) and view the file with Ctrl+o.
Tip: You can also navigate files with Alt+j (next) and Alt+k (previous) and view the file with Alt+o.