diff lisp/info.el @ 380:8626e4521993 r21-2-5

Import from CVS: tag r21-2-5
author cvs
date Mon, 13 Aug 2007 11:07:10 +0200
parents a300bb07d72d
children 7d59cb494b73
line wrap: on
line diff
--- a/lisp/info.el	Mon Aug 13 11:06:08 2007 +0200
+++ b/lisp/info.el	Mon Aug 13 11:07:10 2007 +0200
@@ -313,6 +313,8 @@
 ;; Use the new macro `with-search-caps-disable-folding'
 
 ;; Code:
+(eval-when-compile
+  (condition-case nil (require 'browse-url) (error nil)))
 
 (defgroup info nil
   "The info package for Emacs."
@@ -460,6 +462,7 @@
 			    (".info.gz" . "gzip -dc %s")
 			    (".info-z" . "gzip -dc %s")
 			    (".info.Z" . "uncompress -c %s")
+			    (".bz2" . "bzip2 -dc %s")
 			    (".gz" . "gzip -dc %s")
 			    (".Z" . "uncompress -c %s")
 			    (".zip" . "unzip -c %s") )
@@ -804,12 +807,12 @@
 	   ;; Verify that none of the files we used has changed
 	   ;; since we used it.
 	   (eval (cons 'and
-		       (mapcar '(lambda (elt)
-				  (let ((curr (file-attributes (car elt))))
-				    ;; Don't compare the access time.
-				    (if curr (setcar (nthcdr 4 curr) 0))
-				    (setcar (nthcdr 4 (cdr elt)) 0)
-				    (equal (cdr elt) curr)))
+		       (mapcar #'(lambda (elt)
+				   (let ((curr (file-attributes (car elt))))
+				     ;; Don't compare the access time.
+				     (if curr (setcar (nthcdr 4 curr) 0))
+				     (setcar (nthcdr 4 (cdr elt)) 0)
+				     (equal (cdr elt) curr)))
 			       Info-dir-file-attributes))))
       (insert Info-dir-contents)
     (let ((dirs (reverse Info-directory-list))
@@ -1022,19 +1025,19 @@
 	newer)
     (setq Info-dir-newer-info-files nil)
     (mapcar 
-     '(lambda (f)
-	(prog2
-	    (setq f-mod-time (nth 5 (file-attributes f)))
-	    (setq newer (or (> (car f-mod-time) (car dir-mod-time))
-			    (and (= (car f-mod-time) (car dir-mod-time))
-				 (> (car (cdr f-mod-time)) (car (cdr dir-mod-time))))))
-	  (if (and (file-readable-p f)
-		   newer)
-	      (setq Info-dir-newer-info-files 
-		    (cons f Info-dir-newer-info-files)))))
+     #'(lambda (f)
+	 (prog2
+	     (setq f-mod-time (nth 5 (file-attributes f)))
+	     (setq newer (or (> (car f-mod-time) (car dir-mod-time))
+			     (and (= (car f-mod-time) (car dir-mod-time))
+				  (> (car (cdr f-mod-time)) (car (cdr dir-mod-time))))))
+	   (if (and (file-readable-p f)
+		    newer)
+	       (setq Info-dir-newer-info-files 
+		     (cons f Info-dir-newer-info-files)))))
      (directory-files (file-name-directory file)
 		      'fullname
-		      ".*\\.info\\(.gz\\|.Z\\|-z\\|.zip\\)?$"
+		      ".*\\.info\\(\\.gz\\|\\.bz2\\|\\.Z\\|-z\\|\\.zip\\)?$"
 		      'nosort
 		      t))
     Info-dir-newer-info-files))
@@ -1088,22 +1091,22 @@
   (let ((tab-width 8)
 	(description-col 0)
 	len)
-    (mapcar '(lambda (e)
-	       (setq e (cdr e))		; Drop filename
-	       (setq len (length (concat (car e)
-					 (car (cdr e)))))
-	       (if (> len description-col)
-		   (setq description-col len)))
+    (mapcar #'(lambda (e)
+		(setq e (cdr e))	; Drop filename
+		(setq len (length (concat (car e)
+					  (car (cdr e)))))
+		(if (> len description-col)
+		    (setq description-col len)))
 	    entries)
     (setq description-col (+ 5 description-col)) 
-    (mapcar '(lambda (e)
-	       (setq e (cdr e))		; Drop filename
-	       (insert "* " (car e) ":" (car (cdr e)))
-	       (setq e (car (cdr (cdr e))))
-	       (while e
-		 (indent-to-column description-col)
-		 (insert (car e) "\n")
-		 (setq e (cdr e))))
+    (mapcar #'(lambda (e)
+		(setq e (cdr e))	; Drop filename
+		(insert "* " (car e) ":" (car (cdr e)))
+		(setq e (car (cdr (cdr e))))
+		(while e
+		  (indent-to-column description-col)
+		  (insert (car e) "\n")
+		  (setq e (cdr e))))
 	    entries)
     (insert "\n")))
 
@@ -1134,15 +1137,15 @@
 	      "Info files in " directory ":\n\n")
       (Info-dump-dir-entries 
        (mapcar 
-	'(lambda (f)
-	   (or (Info-extract-dir-entry-from f)
-	       (list 'dummy
-		     (progn 
-		       (string-match "\\(.*\\)\\.info\\(.gz\\|.Z\\|-z\\|.zip\\)?$" 
-				     (file-name-nondirectory f))
-		       (capitalize (match-string 1 (file-name-nondirectory f))))
-		     ":"
-		     (list Info-no-description-string))))
+	#'(lambda (f)
+	    (or (Info-extract-dir-entry-from f)
+		(list 'dummy
+		      (progn 
+			(string-match "\\(.*\\)\\.info\\(.gz\\|.Z\\|-z\\|.zip\\)?$" 
+				      (file-name-nondirectory f))
+			(capitalize (match-string 1 (file-name-nondirectory f))))
+		      ":"
+		      (list Info-no-description-string))))
 	info-files))
       (if to-temp
 	  (set-buffer-modified-p nil)
@@ -1199,33 +1202,34 @@
 	    (narrow-to-region mark next-section)
 	    (setq dir-section-contents (nreverse (Info-parse-dir-entries (point-min)
 									 (point-max))))
-	    (mapcar '(lambda (file)
-		       (setq dir-entry (assoc (downcase
-					       (file-name-sans-extension
-						(file-name-nondirectory file)))
-					      dir-section-contents)
-			     file-dir-entry (Info-extract-dir-entry-from file))
-		       (if dir-entry
-			   (if file-dir-entry
-			       ;; A dir entry in the info file takes precedence over an
-			       ;; existing entry in the dir file
-			       (setcdr dir-entry (cdr file-dir-entry)))
-			 (unless (or not-first-section
-				     (assoc (downcase
+	    (mapcar
+	     #'(lambda (file)
+		 (setq dir-entry (assoc (downcase
 					 (file-name-sans-extension
 					  (file-name-nondirectory file)))
-					dir-full-contents))
-			   (if file-dir-entry
-			       (setq dir-section-contents (cons file-dir-entry
-								dir-section-contents))
-			     (setq dir-section-contents 
-				   (cons (list 'dummy
-					       (capitalize (file-name-sans-extension
-							    (file-name-nondirectory file)))
-					       ":"
-					       (list Info-no-description-string)) 
-					 dir-section-contents))))))
-		    Info-dir-newer-info-files)
+					dir-section-contents)
+		       file-dir-entry (Info-extract-dir-entry-from file))
+		 (if dir-entry
+		     (if file-dir-entry
+			 ;; A dir entry in the info file takes precedence over an
+			 ;; existing entry in the dir file
+			 (setcdr dir-entry (cdr file-dir-entry)))
+		   (unless (or not-first-section
+			       (assoc (downcase
+				       (file-name-sans-extension
+					(file-name-nondirectory file)))
+				      dir-full-contents))
+		     (if file-dir-entry
+			 (setq dir-section-contents (cons file-dir-entry
+							  dir-section-contents))
+		       (setq dir-section-contents 
+			     (cons (list 'dummy
+					 (capitalize (file-name-sans-extension
+						      (file-name-nondirectory file)))
+					 ":"
+					 (list Info-no-description-string)) 
+				   dir-section-contents))))))
+	     Info-dir-newer-info-files)
 	    (delete-region (point-min) (point-max))
 	    (Info-dump-dir-entries (nreverse dir-section-contents))
 	    (widen)
@@ -1372,15 +1376,12 @@
 			   (format (cdr (car suff)) file)
 			 (concat (cdr (car suff)) " < " file))))
 	  (message "%s..." command)
-	  (if (eq system-type 'vax-vms)
-	      (call-process command nil t nil)
-	    (call-process shell-file-name nil t nil "-c" command))
+	  (call-process shell-file-name nil t nil "-c" command)
 	  (message "")
-	  (if visit
-	      (progn
-		(setq buffer-file-name file)
-		(set-buffer-modified-p nil)
-		(clear-visited-file-modtime))))
+	  (when visit
+	    (setq buffer-file-name file)
+	    (set-buffer-modified-p nil)
+	    (clear-visited-file-modtime)))
       (insert-file-contents file visit))))
 
 (defun Info-select-node ()
@@ -2779,6 +2780,7 @@
   ;; #### The console-on-window-system-p check is to allow this to
   ;; work on tty's.  The real problem here is that featurep really
   ;; needs to have some device/console domain knowledge added to it.
+  (defvar info::toolbar)
   (if (and (featurep 'toolbar)
 	   (console-on-window-system-p)
 	   (not Info-inhibit-toolbar))