aekoroglu c010a0c
--- a/lib/gauche/interactive/info.scm
aekoroglu c010a0c
+++ b/lib/gauche/interactive/info.scm
aekoroglu c010a0c
@@ -113,7 +113,8 @@
aekoroglu c010a0c
                       :paths (get-info-paths)
aekoroglu c010a0c
                       :pred (^p (or (file-is-readable? p)
aekoroglu c010a0c
                                     (file-is-readable? #"~|p|.gz")
aekoroglu c010a0c
-                                    (file-is-readable? #"~|p|.bz2")))))
aekoroglu c010a0c
+                                    (file-is-readable? #"~|p|.bz2")
aekoroglu c010a0c
+                                    (file-is-readable? #"~|p|.xz")))))
aekoroglu c010a0c
 
aekoroglu c010a0c
 (define (handle-ambiguous-name entry-name)
aekoroglu c010a0c
   (let* ([keys (map x->string (hash-table-keys (~ (get-info)'index)))]
aekoroglu c010a0c
--- a/lib/text/info.scm
aekoroglu c010a0c
+++ b/lib/text/info.scm
aekoroglu c010a0c
@@ -67,6 +67,7 @@
aekoroglu c010a0c
 
aekoroglu c010a0c
 ;; Find bzip2 location
aekoroglu c010a0c
 (define bzip2  (find-file-in-paths "bzip2"))
aekoroglu c010a0c
+(define xz     (find-file-in-paths "xz"))
aekoroglu c010a0c
 
aekoroglu c010a0c
 (cond-expand
aekoroglu c010a0c
  [gauche.sys.zlib]
aekoroglu c010a0c
@@ -90,6 +91,8 @@
aekoroglu c010a0c
              (with-input-from-process #"~gzip -c -d ~|file|.gz" thunk)])]
aekoroglu c010a0c
           [(and bzip2 (file-exists? #"~|file|.bz2"))
aekoroglu c010a0c
            (with-input-from-process #"~bzip2 -c -d ~|file|.bz2" thunk)]
aekoroglu c010a0c
+          [(and xz (file-exists? #"~|file|.xz"))
aekoroglu c010a0c
+           (with-input-from-process #"~xz -c -d ~|file|.xz" thunk)]
aekoroglu c010a0c
           [else (error "can't find info file" file)]))
aekoroglu c010a0c
   (with-input-from-info
aekoroglu c010a0c
    (^[]