summaryrefslogtreecommitdiff
path: root/dev-scheme/gauche/files/gauche-xz-info.patch
blob: e55f536060053b47ccafa01f4b468956acf8a8d5 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
--- a/lib/gauche/interactive/info.scm
+++ b/lib/gauche/interactive/info.scm
@@ -137,7 +137,8 @@
                             :paths paths
                             :pred (^p (or (file-is-readable? p)
                                           (file-is-readable? #"~|p|.gz")
-                                          (file-is-readable? #"~|p|.bz2"))))
+                                          (file-is-readable? #"~|p|.bz2")
+                                          (file-is-readable? #"~|p|.xz"))))
         (errorf "couldn't find info file ~s in paths: ~s" *info-file* paths))
     ))
 
--- a/lib/text/info.scm
+++ b/lib/text/info.scm
@@ -64,6 +64,7 @@
 
 ;; Find bzip2 location
 (define bzip2  (find-file-in-paths "bzip2"))
+(define xz     (find-file-in-paths "xz"))
 
 ;; Read an info file FILE, and returns a list of strings splitted by ^_ (#\u001f)
 ;; If FILE is not found, look for compressed one.
@@ -78,6 +79,8 @@
                      (close-input-port zp)))))]
           [(and bzip2 (file-exists? #"~|file|.bz2"))
            (with-input-from-process #"~bzip2 -c -d ~|file|.bz2" thunk)]
+          [(and xz (file-exists? #"~|file|.xz"))
+           (with-input-from-process #"~xz -c -d ~|file|.xz" thunk)]
           [else (error "can't find info file" file)]))
   (with-input-from-info
    (lambda ()