emacs-diffs
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

[Emacs-diffs] emacs/lisp ChangeLog arc-mode.el


From: Stefan Monnier
Subject: [Emacs-diffs] emacs/lisp ChangeLog arc-mode.el
Date: Thu, 26 Mar 2009 01:19:55 +0000

CVSROOT:        /sources/emacs
Module name:    emacs
Changes by:     Stefan Monnier <monnier>        09/03/26 01:19:55

Modified files:
        lisp           : ChangeLog arc-mode.el 

Log message:
        (archive-ar-summarize): Don't burp on special GNU
        extension entries for lookup tables or extended file name tables.
        Distinguish the internal and external name, so lookup is easier.
        (archive-ar-extract): Take advantage of more precise name.
        Preserve point.

CVSWeb URLs:
http://cvs.savannah.gnu.org/viewcvs/emacs/lisp/ChangeLog?cvsroot=emacs&r1=1.15523&r2=1.15524
http://cvs.savannah.gnu.org/viewcvs/emacs/lisp/arc-mode.el?cvsroot=emacs&r1=1.97&r2=1.98

Patches:
Index: ChangeLog
===================================================================
RCS file: /sources/emacs/emacs/lisp/ChangeLog,v
retrieving revision 1.15523
retrieving revision 1.15524
diff -u -b -r1.15523 -r1.15524
--- ChangeLog   25 Mar 2009 17:47:07 -0000      1.15523
+++ ChangeLog   26 Mar 2009 01:19:50 -0000      1.15524
@@ -1,3 +1,11 @@
+2009-03-26  Stefan Monnier  <address@hidden>
+
+       * arc-mode.el (archive-ar-summarize): Don't burp on special GNU
+       extension entries for lookup tables or extended file name tables.
+       Distinguish the internal and external name, so lookup is easier.
+       (archive-ar-extract): Take advantage of more precise name.
+       Preserve point.
+
 2009-03-25  Chong Yidong  <address@hidden>
 
        * play/bubbles.el (bubbles): Doc fix (Bug#2776).
@@ -56,8 +64,8 @@
 
 2009-03-21  Eli Zaretskii  <address@hidden>
 
-       * eshell/em-ls.el (eshell-ls-dir): Call
-       eshell-directory-files-and-attributes with additional argument
+       * eshell/em-ls.el (eshell-ls-dir):
+       Call eshell-directory-files-and-attributes with additional argument
        'integer or 'string, according to numeric-uid-gid.
        (eshell-ls-file): Don't convert UID and GID to strings, as
        eshell-ls-dir already did.  Enlarge max user-name string length to
@@ -66,8 +74,8 @@
 
        * eshell/esh-util.el (directory-files-and-attributes): Accept and
        ignore additional optional argument id-format.
-       (eshell-directory-files-and-attributes): Call
-       directory-files-and-attributes with additional argument id-format.
+       (eshell-directory-files-and-attributes):
+       Call directory-files-and-attributes with additional argument id-format.
 
        * eshell/em-ls.el (eshell-ls-file): Enlarge default size-width to 8.
        (eshell-ls-dir): Under -l, call eshell-ls-printable-size with last

Index: arc-mode.el
===================================================================
RCS file: /sources/emacs/emacs/lisp/arc-mode.el,v
retrieving revision 1.97
retrieving revision 1.98
diff -u -b -r1.97 -r1.98
--- arc-mode.el 5 Jan 2009 03:18:42 -0000       1.97
+++ arc-mode.el 26 Mar 2009 01:19:54 -0000      1.98
@@ -2015,6 +2015,7 @@
     (search-forward "!<arch>\n")
     (while (looking-at archive-ar-file-header-re)
       (let ((name (match-string 1))
+            extname
             ;; Emacs will automatically use float here because those
             ;; timestamps don't fit in our ints.
             (time (string-to-number (match-string 2)))
@@ -2024,20 +2025,18 @@
             (size (string-to-number (match-string 6))))
         ;; Move to the beginning of the data.
         (goto-char (match-end 0))
-        (cond
-         ((equal name "//              ")
-          ;; FIXME: todo
-          nil)
-         ((equal name "/               ")
-          ;; FIXME: todo
-          nil)
-         (t
           (setq time
                 (format-time-string
                  "%Y-%m-%d %H:%M"
                  (let ((high (truncate (/ time 65536))))
                    (list high (truncate (- time (* 65536.0 high)))))))
-          (setq name (substring name 0 (string-match "/? *\\'" name)))
+        (setq extname
+              (cond ((equal name "//              ")
+                     (propertize ".<ExtNamesTable>." 'face 'italic))
+                    ((equal name "/               ")
+                     (propertize ".<LookupTable>." 'face 'italic))
+                    ((string-match "/? *\\'" name)
+                     (substring name 0 (match-beginning 0)))))
           (setq user (substring user 0 (string-match " +\\'" user)))
           (setq group (substring group 0 (string-match " +\\'" group)))
           (setq mode (tar-grind-file-mode mode))
@@ -2050,9 +2049,9 @@
           (if (> (length group) maxgroup) (setq maxgroup (length group)))
           (if (> (length mode) maxmode) (setq maxmode (length mode)))
           (if (> (length size) maxsize) (setq maxsize (length size)))
-          (push (vector name name nil mode
+        (push (vector name extname nil mode
                         time user group size)
-                files)))))
+              files)))
     (setq files (nreverse files))
     (goto-char (point-min))
     (let* ((format (format "%%%ds %%%ds/%%-%ds  %%%ds %%%ds %%s"
@@ -2091,13 +2090,13 @@
       (save-restriction
         ;; We may be in archive-mode or not, so either with or without
         ;; narrowing and with or without a prepended summary.
+        (save-excursion
         (widen)
         (search-forward "!<arch>\n")
         (while (and (not from) (looking-at archive-ar-file-header-re))
           (let ((this (match-string 1)))
             (setq size (string-to-number (match-string 6)))
             (goto-char (match-end 0))
-            (setq this (substring this 0 (string-match "/? *\\'" this)))
             (if (equal name this)
                 (setq from (point))
               ;; Move to the end of the data.
@@ -2109,7 +2108,7 @@
             (insert-buffer-substring archivebuf from (+ from size)))
           (set-buffer-multibyte 'to)
           ;; Inform the caller that the call succeeded.
-          t)))))
+            t))))))
 
 ;; -------------------------------------------------------------------------
 ;; This line was a mistake; it is kept now for compatibility.




reply via email to

[Prev in Thread] Current Thread [Next in Thread]