/[emacs]/emacs/lisp/arc-mode.el
ViewVC logotype

Diff of /emacs/lisp/arc-mode.el

Parent Directory Parent Directory | Revision Log Revision Log | View Patch Patch

revision 1.44 by pj, Sun Jan 13 09:00:15 2002 UTC revision 1.44.2.1 by handa, Wed Jul 31 07:14:13 2002 UTC
# Line 334  Archive and member name will be added." Line 334  Archive and member name will be added."
334  (make-variable-buffer-local 'archive-subfile-mode)  (make-variable-buffer-local 'archive-subfile-mode)
335  (put 'archive-subfile-mode 'permanent-local t)  (put 'archive-subfile-mode 'permanent-local t)
336    
337    (defvar archive-file-name-coding-system nil)
338    (make-variable-buffer-local 'archive-file-name-coding-system)
339    (put 'archive-file-name-coding-system 'permanent-local t)
340    
341  (defvar archive-files nil  (defvar archive-files nil
342    "Vector of file descriptors.    "Vector of file descriptors.
343  Each descriptor is a vector of the form  Each descriptor is a vector of the form
# Line 346  Each descriptor is a vector of the form Line 350  Each descriptor is a vector of the form
350  ;; -------------------------------------------------------------------------  ;; -------------------------------------------------------------------------
351  ;; Section: Support functions.  ;; Section: Support functions.
352    
353    (eval-when-compile
354      (defsubst byte-after (pos)
355        "Like char-after but an eight-bit char is converted to unibyte."
356        (multibyte-char-to-unibyte (char-after pos)))
357      (defsubst bref (string idx)
358        "Like aref but an eight-bit char is converted to unibyte."
359        (multibyte-char-to-unibyte (aref string idx)))
360      (defsubst insert-unibyte (&rest args)
361        "Like insert but don't make unibyte string and eight-bit char multibyte."
362        (dolist (elt args)
363          (if (integerp elt)
364              (insert (if (< elt 128) elt (decode-char 'eight-bit elt)))
365            (insert (string-to-multibyte elt)))))
366      )
367    
368  (defsubst archive-name (suffix)  (defsubst archive-name (suffix)
369    (intern (concat "archive-" (symbol-name archive-subtype) "-" suffix)))    (intern (concat "archive-" (symbol-name archive-subtype) "-" suffix)))
370    
# Line 360  in which case a second argument, length, Line 379  in which case a second argument, length,
379          (i 0))          (i 0))
380      (while (< i len)      (while (< i len)
381        (setq i (1+ i)        (setq i (1+ i)
382              result (+ (ash result 8) (aref str (- len i)))))              result (+ (ash result 8)
383                          (bref str (- len i)))))
384      result))      result))
385    
386  (defun archive-int-to-mode (mode)  (defun archive-int-to-mode (mode)
# Line 560  archive. Line 580  archive.
580        (make-local-variable 'archive-file-list-start)        (make-local-variable 'archive-file-list-start)
581        (make-local-variable 'archive-file-list-end)        (make-local-variable 'archive-file-list-end)
582        (make-local-variable 'archive-file-name-indent)        (make-local-variable 'archive-file-name-indent)
583          (setq archive-file-name-coding-system
584                (or file-name-coding-system
585                    default-file-name-coding-system
586                    locale-coding-system))
587          (if default-enable-multibyte-characters
588              (set-buffer-multibyte t 'to))
589        (archive-summarize nil)        (archive-summarize nil)
590        (setq buffer-read-only t))))        (setq buffer-read-only t))))
591    
# Line 702  is visible (and the real data of the buf Line 728  is visible (and the real data of the buf
728  Optional argument SHUT-UP, if non-nil, means don't print messages  Optional argument SHUT-UP, if non-nil, means don't print messages
729  when parsing the archive."  when parsing the archive."
730    (widen)    (widen)
   (set-buffer-multibyte nil)  
731    (let (buffer-read-only)    (let (buffer-read-only)
732      (or shut-up      (or shut-up
733          (message "Parsing archive file..."))          (message "Parsing archive file..."))
# Line 907  using `make-temp-file', and the generate Line 932  using `make-temp-file', and the generate
932                            view-p                            view-p
933                            (string-match file-name-invalid-regexp ename)))                            (string-match file-name-invalid-regexp ename)))
934           (buffer (get-buffer bufname))           (buffer (get-buffer bufname))
935           (just-created nil))           (just-created nil)
936             (file-name-coding archive-file-name-coding-system))
937        (if buffer        (if buffer
938            nil            nil
939          (setq archive (archive-maybe-copy archive))          (setq archive (archive-maybe-copy archive))
# Line 926  using `make-temp-file', and the generate Line 952  using `make-temp-file', and the generate
952            (make-local-variable 'local-write-file-hooks)            (make-local-variable 'local-write-file-hooks)
953            (add-hook 'local-write-file-hooks 'archive-write-file-member)            (add-hook 'local-write-file-hooks 'archive-write-file-member)
954            (setq archive-subfile-mode descr)            (setq archive-subfile-mode descr)
955              (setq archive-file-name-coding-system file-name-coding)
956            (if (and            (if (and
957                 (null                 (null
958                  (let (;; We may have to encode file name arguement for                  (let (;; We may have to encode file name arguement for
959                        ;; external programs.                        ;; external programs.
960                        (coding-system-for-write                        (coding-system-for-write
961                         (and enable-multibyte-characters                         (and enable-multibyte-characters
962                              file-name-coding-system))                              archive-file-name-coding-system))
963                        ;; We read an archive member by no-conversion at                        ;; We read an archive member by no-conversion at
964                        ;; first, then decode appropriately by calling                        ;; first, then decode appropriately by calling
965                        ;; archive-set-buffer-as-visiting-file later.                        ;; archive-set-buffer-as-visiting-file later.
# Line 1116  using `make-temp-file', and the generate Line 1143  using `make-temp-file', and the generate
1143            (if (aref descr 3)            (if (aref descr 3)
1144                ;; Set the file modes, but make sure we can read it.                ;; Set the file modes, but make sure we can read it.
1145                (set-file-modes tmpfile (logior ?\400 (aref descr 3))))                (set-file-modes tmpfile (logior ?\400 (aref descr 3))))
1146            (if enable-multibyte-characters            (setq ename
1147                (setq ename                  (encode-coding-string ename archive-file-name-coding-system))
1148                      (encode-coding-string ename file-name-coding-system)))            (let* ((coding-system-for-write 'no-conversion)
1149            (let ((exitcode (apply 'call-process                   (exitcode (apply 'call-process
1150                                   (car command)                                    (car command)
1151                                   nil                                    nil
1152                                   nil                                    nil
1153                                   nil                                    nil
1154                                   (append (cdr command) (list archive ename)))))                                    (append (cdr command)
1155                                              (list archive ename)))))
1156              (if (equal exitcode 0)              (if (equal exitcode 0)
1157                  nil                  nil
1158                (error "Updating was unsuccessful (%S)" exitcode))))                (error "Updating was unsuccessful (%S)" exitcode))))
# Line 1297  as a relative change like \"g+rw\" as fo Line 1325  as a relative change like \"g+rw\" as fo
1325      (if (fboundp func)      (if (fboundp func)
1326          (progn          (progn
1327            (funcall func (buffer-file-name)            (funcall func (buffer-file-name)
1328                     (if enable-multibyte-characters                     (encode-coding-string newname
1329                         (encode-coding-string newname file-name-coding-system)                                           archive-file-name-coding-system)
                      newname)  
1330                     descr)                     descr)
1331            (archive-resummarize))            (archive-resummarize))
1332        (error "Renaming is not supported for this archive type"))))        (error "Renaming is not supported for this archive type"))))
# Line 1310  as a relative change like \"g+rw\" as fo Line 1337  as a relative change like \"g+rw\" as fo
1337      (setq archive-files nil)      (setq archive-files nil)
1338      (let ((revert-buffer-function nil)      (let ((revert-buffer-function nil)
1339            (coding-system-for-read 'no-conversion))            (coding-system-for-read 'no-conversion))
       (set-buffer-multibyte nil)  
1340        (revert-buffer t t))        (revert-buffer t t))
1341      (archive-mode)      (archive-mode)
1342      (goto-char archive-file-list-start)      (goto-char archive-file-list-start)
# Line 1332  This doesn't recover lost files, it just Line 1358  This doesn't recover lost files, it just
1358          files          files
1359          visual)          visual)
1360      (while (and (< (+ p 29) (point-max))      (while (and (< (+ p 29) (point-max))
1361                  (= (char-after p) ?\C-z)                  (= (byte-after p) ?\C-z)
1362                  (> (char-after (1+ p)) 0))                  (> (byte-after (1+ p)) 0))
1363        (let* ((namefld (buffer-substring (+ p 2) (+ p 2 13)))        (let* ((namefld (buffer-substring (+ p 2) (+ p 2 13)))
1364               (fnlen   (or (string-match "\0" namefld) 13))               (fnlen   (or (string-match "\0" namefld) 13))
1365               (efnname (substring namefld 0 fnlen))               (efnname (decode-coding-string (substring namefld 0 fnlen)
1366                                                archive-file-name-coding-system))
1367               (csize   (archive-l-e (+ p 15) 4))               (csize   (archive-l-e (+ p 15) 4))
1368               (moddate (archive-l-e (+ p 19) 2))               (moddate (archive-l-e (+ p 19) 2))
1369               (modtime (archive-l-e (+ p 21) 2))               (modtime (archive-l-e (+ p 21) 2))
# Line 1383  This doesn't recover lost files, it just Line 1410  This doesn't recover lost files, it just
1410      (save-restriction      (save-restriction
1411        (save-excursion        (save-excursion
1412          (widen)          (widen)
         (set-buffer-multibyte nil)  
1413          (goto-char (+ archive-proper-file-start (aref descr 4) 2))          (goto-char (+ archive-proper-file-start (aref descr 4) 2))
1414          (delete-char 13)          (delete-char 13)
1415          (insert name)))))          (insert-unibyte name)))))
1416  ;; -------------------------------------------------------------------------  ;; -------------------------------------------------------------------------
1417  ;; Section: Lzh Archives  ;; Section: Lzh Archives
1418    
# Line 1398  This doesn't recover lost files, it just Line 1424  This doesn't recover lost files, it just
1424          visual)          visual)
1425      (while (progn (goto-char p)      (while (progn (goto-char p)
1426                    (looking-at "\\(.\\|\n\\)\\(.\\|\n\\)-l[hz][0-9ds]-"))                    (looking-at "\\(.\\|\n\\)\\(.\\|\n\\)-l[hz][0-9ds]-"))
1427        (let* ((hsize   (char-after p))        (let* ((hsize   (byte-after p))
1428               (csize   (archive-l-e (+ p 7) 4))               (csize   (archive-l-e (+ p 7) 4))
1429               (ucsize  (archive-l-e (+ p 11) 4))               (ucsize  (archive-l-e (+ p 11) 4))
1430               (modtime (archive-l-e (+ p 15) 2))               (modtime (archive-l-e (+ p 15) 2))
1431               (moddate (archive-l-e (+ p 17) 2))               (moddate (archive-l-e (+ p 17) 2))
1432               (hdrlvl  (char-after (+ p 20)))               (hdrlvl  (byte-after (+ p 20)))
1433               (fnlen   (char-after (+ p 21)))               (fnlen   (byte-after (+ p 21)))
1434               (efnname (let ((str (buffer-substring (+ p 22) (+ p 22 fnlen))))               (efnname (let ((str (buffer-substring (+ p 22) (+ p 22 fnlen))))
1435                          (if file-name-coding-system                          (decode-coding-string
1436                              (decode-coding-string str file-name-coding-system)                           str archive-file-name-coding-system)))
                           (string-as-multibyte str))))  
1437               (fiddle  (string= efnname (upcase efnname)))               (fiddle  (string= efnname (upcase efnname)))
1438               (ifnname (if fiddle (downcase efnname) efnname))               (ifnname (if fiddle (downcase efnname) efnname))
1439               (width (string-width ifnname))               (width (string-width ifnname))
1440               (p2      (+ p 22 fnlen))               (p2      (+ p 22 fnlen))
1441               (creator (if (>= (- hsize fnlen) 24) (char-after (+ p2 2)) 0))               (creator (if (>= (- hsize fnlen) 24) (byte-after (+ p2 2)) 0))
1442               mode modestr uid gid text path prname               mode modestr uid gid text path prname
1443               )               )
1444          (if (= hdrlvl 0)          (if (= hdrlvl 0)
# Line 1423  This doesn't recover lost files, it just Line 1448  This doesn't recover lost files, it just
1448            (if (= creator ?U)            (if (= creator ?U)
1449                (let* ((p3 (+ p2 3))                (let* ((p3 (+ p2 3))
1450                       (hsize (archive-l-e p3 2))                       (hsize (archive-l-e p3 2))
1451                       (etype (char-after (+ p3 2))))                       (etype (byte-after (+ p3 2))))
1452                  (while (not (= hsize 0))                  (while (not (= hsize 0))
1453                    (cond                    (cond
1454                     ((= etype 2) (let ((i (+ p3 3)))                     ((= etype 2) (let ((i (+ p3 3)))
1455                                    (while (< i (+ p3 hsize))                                    (while (< i (+ p3 hsize))
1456                                      (setq path (concat path                                      (setq path (concat path
1457                                                         (if (= (char-after i)                                                         (if (= (byte-after i)
1458                                                                255)                                                                255)
1459                                                             "/"                                                             "/"
1460                                                           (char-to-string                                                           (char-to-string
1461                                                            (char-after i)))))                                                            (byte-after i)))))
1462                                      (setq i (1+ i)))))                                      (setq i (1+ i)))))
1463                     ((= etype 80) (setq mode (archive-l-e (+ p3 3) 2)))                     ((= etype 80) (setq mode (archive-l-e (+ p3 3) 2)))
1464                     ((= etype 81) (progn (setq uid (archive-l-e (+ p3 3) 2))                     ((= etype 81) (progn (setq uid (archive-l-e (+ p3 3) 2))
# Line 1441  This doesn't recover lost files, it just Line 1466  This doesn't recover lost files, it just
1466                     )                     )
1467                    (setq p3 (+ p3 hsize))                    (setq p3 (+ p3 hsize))
1468                    (setq hsize (archive-l-e p3 2))                    (setq hsize (archive-l-e p3 2))
1469                    (setq etype (char-after (+ p3 2)))))))                    (setq etype (byte-after (+ p3 2)))))))
1470          (setq prname (if path (concat path ifnname) ifnname))          (setq prname (if path (concat path ifnname) ifnname))
1471          (setq modestr (if mode (archive-int-to-mode mode) "??????????"))          (setq modestr (if mode (archive-int-to-mode mode) "??????????"))
1472          (setq text    (if archive-alternate-display          (setq text    (if archive-alternate-display
# Line 1466  This doesn't recover lost files, it just Line 1491  This doesn't recover lost files, it just
1491                            files)                            files)
1492                p (+ p hsize 2 csize))))                p (+ p hsize 2 csize))))
1493      (goto-char (point-min))      (goto-char (point-min))
     (set-buffer-multibyte default-enable-multibyte-characters)  
1494      (let ((dash (concat (if archive-alternate-display      (let ((dash (concat (if archive-alternate-display
1495                              "- --------  -----  -----  "                              "- --------  -----  -----  "
1496                            "- ----------  --------  -----------  --------  ")                            "- ----------  --------  -----------  --------  ")
# Line 1497  This doesn't recover lost files, it just Line 1521  This doesn't recover lost files, it just
1521    (let ((sum 0))    (let ((sum 0))
1522      (while (> count 0)      (while (> count 0)
1523        (setq count (1- count)        (setq count (1- count)
1524              sum (+ sum (char-after p))              sum (+ sum (byte-after p))
1525              p (1+ p)))              p (1+ p)))
1526      (logand sum 255)))      (logand sum 255)))
1527    
# Line 1505  This doesn't recover lost files, it just Line 1529  This doesn't recover lost files, it just
1529    (save-restriction    (save-restriction
1530      (save-excursion      (save-excursion
1531        (widen)        (widen)
       (set-buffer-multibyte nil)  
1532        (let* ((p        (+ archive-proper-file-start (aref descr 4)))        (let* ((p        (+ archive-proper-file-start (aref descr 4)))
1533               (oldhsize (char-after p))               (oldhsize (byte-after p))
1534               (oldfnlen (char-after (+ p 21)))               (oldfnlen (byte-after (+ p 21)))
1535               (newfnlen (length newname))               (newfnlen (length newname))
1536               (newhsize (+ oldhsize newfnlen (- oldfnlen)))               (newhsize (+ oldhsize newfnlen (- oldfnlen)))
1537               buffer-read-only)               buffer-read-only)
# Line 1516  This doesn't recover lost files, it just Line 1539  This doesn't recover lost files, it just
1539              (error "The file name is too long"))              (error "The file name is too long"))
1540          (goto-char (+ p 21))          (goto-char (+ p 21))
1541          (delete-char (1+ oldfnlen))          (delete-char (1+ oldfnlen))
1542          (insert newfnlen newname)          (insert-unibyte newfnlen newname)
1543          (goto-char p)          (goto-char p)
1544          (delete-char 2)          (delete-char 2)
1545          (insert newhsize (archive-lzh-resum p newhsize))))))          (insert-unibyte newhsize (archive-lzh-resum p newhsize))))))
1546    
1547  (defun archive-lzh-ogm (newval files errtxt ofs)  (defun archive-lzh-ogm (newval files errtxt ofs)
1548    (save-restriction    (save-restriction
1549      (save-excursion      (save-excursion
1550        (widen)        (widen)
       (set-buffer-multibyte nil)  
1551        (while files        (while files
1552          (let* ((fil (car files))          (let* ((fil (car files))
1553                 (p (+ archive-proper-file-start (aref fil 4)))                 (p (+ archive-proper-file-start (aref fil 4)))
1554                 (hsize   (char-after p))                 (hsize   (byte-after p))
1555                 (fnlen   (char-after (+ p 21)))                 (fnlen   (byte-after (+ p 21)))
1556                 (p2      (+ p 22 fnlen))                 (p2      (+ p 22 fnlen))
1557                 (creator (if (>= (- hsize fnlen) 24) (char-after (+ p2 2)) 0))                 (creator (if (>= (- hsize fnlen) 24) (byte-after (+ p2 2)) 0))
1558                 buffer-read-only)                 buffer-read-only)
1559            (if (= creator ?U)            (if (= creator ?U)
1560                (progn                (progn
# Line 1540  This doesn't recover lost files, it just Line 1562  This doesn't recover lost files, it just
1562                      (setq newval (funcall newval (archive-l-e (+ p2 ofs) 2))))                      (setq newval (funcall newval (archive-l-e (+ p2 ofs) 2))))
1563                  (goto-char (+ p2 ofs))                  (goto-char (+ p2 ofs))
1564                  (delete-char 2)                  (delete-char 2)
1565                  (insert (logand newval 255) (lsh newval -8))                  (insert-unibyte (logand newval 255) (lsh newval -8))
1566                  (goto-char (1+ p))                  (goto-char (1+ p))
1567                  (delete-char 1)                  (delete-char 1)
1568                  (insert (archive-lzh-resum (1+ p) hsize)))                  (insert-unibyte (archive-lzh-resum (1+ p) hsize)))
1569              (message "Member %s does not have %s field"              (message "Member %s does not have %s field"
1570                       (aref fil 1) errtxt)))                       (aref fil 1) errtxt)))
1571          (setq files (cdr files))))))          (setq files (cdr files))))))
# Line 1571  This doesn't recover lost files, it just Line 1593  This doesn't recover lost files, it just
1593          files          files
1594          visual)          visual)
1595      (while (string= "PK\001\002" (buffer-substring p (+ p 4)))      (while (string= "PK\001\002" (buffer-substring p (+ p 4)))
1596        (let* ((creator (char-after (+ p 5)))        (let* ((creator (byte-after (+ p 5)))
1597               (method  (archive-l-e (+ p 10) 2))               (method  (archive-l-e (+ p 10) 2))
1598               (modtime (archive-l-e (+ p 12) 2))               (modtime (archive-l-e (+ p 12) 2))
1599               (moddate (archive-l-e (+ p 14) 2))               (moddate (archive-l-e (+ p 14) 2))
# Line 1581  This doesn't recover lost files, it just Line 1603  This doesn't recover lost files, it just
1603               (fclen   (archive-l-e (+ p 32) 2))               (fclen   (archive-l-e (+ p 32) 2))
1604               (lheader (archive-l-e (+ p 42) 4))               (lheader (archive-l-e (+ p 42) 4))
1605               (efnname (let ((str (buffer-substring (+ p 46) (+ p 46 fnlen))))               (efnname (let ((str (buffer-substring (+ p 46) (+ p 46 fnlen))))
1606                          (if file-name-coding-system                          (decode-coding-string
1607                              (decode-coding-string str file-name-coding-system)                           str archive-file-name-coding-system)))
                           (string-as-multibyte str))))  
1608               (isdir   (and (= ucsize 0)               (isdir   (and (= ucsize 0)
1609                             (string= (file-name-nondirectory efnname) "")))                             (string= (file-name-nondirectory efnname) "")))
1610               (mode    (cond ((memq creator '(2 3)) ; Unix + VMS               (mode    (cond ((memq creator '(2 3)) ; Unix + VMS
# Line 1592  This doesn't recover lost files, it just Line 1613  This doesn't recover lost files, it just
1613                               (logior ?\444                               (logior ?\444
1614                                       (if isdir (logior 16384 ?\111) 0)                                       (if isdir (logior 16384 ?\111) 0)
1615                                       (if (zerop                                       (if (zerop
1616                                            (logand 1 (char-after (+ p 38))))                                            (logand 1 (byte-after (+ p 38))))
1617                                           ?\222 0)))                                           ?\222 0)))
1618                              (t nil)))                              (t nil)))
1619               (modestr (if mode (archive-int-to-mode mode) "??????????"))               (modestr (if mode (archive-int-to-mode mode) "??????????"))
# Line 1649  This doesn't recover lost files, it just Line 1670  This doesn't recover lost files, it just
1670    (save-restriction    (save-restriction
1671      (save-excursion      (save-excursion
1672        (widen)        (widen)
       (set-buffer-multibyte nil)  
1673        (while files        (while files
1674          (let* ((fil (car files))          (let* ((fil (car files))
1675                 (p (+ archive-proper-file-start (car (aref fil 4))))                 (p (+ archive-proper-file-start (car (aref fil 4))))
1676                 (creator (char-after (+ p 5)))                 (creator (byte-after (+ p 5)))
1677                 (oldmode (aref fil 3))                 (oldmode (aref fil 3))
1678                 (newval  (archive-calc-mode oldmode newmode t))                 (newval  (archive-calc-mode oldmode newmode t))
1679                 buffer-read-only)                 buffer-read-only)
1680            (cond ((memq creator '(2 3)) ; Unix + VMS            (cond ((memq creator '(2 3)) ; Unix + VMS
1681                   (goto-char (+ p 40))                   (goto-char (+ p 40))
1682                   (delete-char 2)                   (delete-char 2)
1683                   (insert (logand newval 255) (lsh newval -8)))                   (insert-unibyte (logand newval 255) (lsh newval -8)))
1684                  ((memq creator '(0 5 6 7 10 11 15)) ; Dos etc.                  ((memq creator '(0 5 6 7 10 11 15)) ; Dos etc.
1685                   (goto-char (+ p 38))                   (goto-char (+ p 38))
1686                   (insert (logior (logand (char-after (point)) 254)                   (insert-unibyte (logior (logand (byte-after (point)) 254)
1687                                   (logand (logxor 1 (lsh newval -7)) 1)))                                           (logand (logxor 1 (lsh newval -7)) 1)))
1688                   (delete-char 1))                   (delete-char 1))
1689                  (t (message "Don't know how to change mode for this member"))))                  (t (message "Don't know how to change mode for this member"))))
1690          (setq files (cdr files))))))          (setq files (cdr files))))))
# Line 1684  This doesn't recover lost files, it just Line 1704  This doesn't recover lost files, it just
1704               (modtime (archive-l-e (+ p 16) 2))               (modtime (archive-l-e (+ p 16) 2))
1705               (ucsize  (archive-l-e (+ p 20) 4))               (ucsize  (archive-l-e (+ p 20) 4))
1706               (namefld (buffer-substring (+ p 38) (+ p 38 13)))               (namefld (buffer-substring (+ p 38) (+ p 38 13)))
1707               (dirtype (char-after (+ p 4)))               (dirtype (byte-after (+ p 4)))
1708               (lfnlen  (if (= dirtype 2) (char-after (+ p 56)) 0))               (lfnlen  (if (= dirtype 2) (byte-after (+ p 56)) 0))
1709               (ldirlen (if (= dirtype 2) (char-after (+ p 57)) 0))               (ldirlen (if (= dirtype 2) (byte-after (+ p 57)) 0))
1710               (fnlen   (or (string-match "\0" namefld) 13))               (fnlen   (or (string-match "\0" namefld) 13))
1711               (efnname (let ((str               (efnname (let ((str
1712                               (concat                               (concat
# Line 1700  This doesn't recover lost files, it just Line 1720  This doesn't recover lost files, it just
1720                                    (buffer-substring (+ p 58)                                    (buffer-substring (+ p 58)
1721                                                      (+ p 58 lfnlen -1))                                                      (+ p 58 lfnlen -1))
1722                                  (substring namefld 0 fnlen)))))                                  (substring namefld 0 fnlen)))))
1723                          (if file-name-coding-system                          (decode-coding-string
1724                              (decode-coding-string str file-name-coding-system)                           str archive-file-name-coding-system)))
                           (string-as-multibyte str))))  
1725               (fiddle  (and (= lfnlen 0) (string= efnname (upcase efnname))))               (fiddle  (and (= lfnlen 0) (string= efnname (upcase efnname))))
1726               (ifnname (if fiddle (downcase efnname) efnname))               (ifnname (if fiddle (downcase efnname) efnname))
1727               (width (string-width ifnname))               (width (string-width ifnname))

Legend:
Removed from v.1.44  
changed lines
  Added in v.1.44.2.1

savannah-hackers-public@gnu.org
ViewVC Help
Powered by ViewVC 1.1.26