*** dist/vm-macro.el.dist Tue Sep 5 12:19:40 2000 --- vm-macro.el Sun Nov 5 11:37:56 2000 *************** *** 21,24 **** (list 'or expression ! (list 'progn ! (list 'setq 'debug-on-error t) (list 'error "assertion failed: %S" --- 21,24 ---- (list 'or expression ! (list 'let ! (list (list 'debug-on-error t)) (list 'error "assertion failed: %S" *** dist/vm-mime.el.dist Sun Nov 5 02:08:13 2000 --- vm-mime.el Sun Nov 5 22:34:07 2000 *************** *** 217,219 **** (progn (set-face-font face font) ! (vm-set-extent-property e 'face face)) (error nil))))))) --- 217,222 ---- (progn (set-face-font face font) ! (if vm-fsfemacs-p ! (put-text-property start end 'face face) ! (vm-set-extent-property e 'duplicable t) ! (vm-set-extent-property e 'face face))) (error nil))))))) *************** *** 1040,1043 **** (null (buffer-name vm-presentation-buffer-handle))) ! (setq b (generate-new-buffer (concat (buffer-name) ! " Presentation"))) (save-excursion --- 1043,1047 ---- (null (buffer-name vm-presentation-buffer-handle))) ! (let ((default-enable-multibyte-characters t)) ! (setq b (generate-new-buffer (concat (buffer-name) ! " Presentation")))) (save-excursion *************** *** 1068,1078 **** (set-buffer-file-coding-system (vm-binary-coding-system) t)) ! (cond ((and vm-fsfemacs-p (not vm-fsfemacs-mule-p)) ! ;; need to do this outside the let because ! ;; loading disp-table initializes ! ;; standard-display-table. ! (require 'disp-table) ! (let* ((standard-display-table ! (copy-sequence standard-display-table))) ! (standard-display-european t) ! (setq buffer-display-table standard-display-table)))) (if (and vm-mutable-frames vm-frame-per-folder --- 1072,1074 ---- (set-buffer-file-coding-system (vm-binary-coding-system) t)) ! (vm-fsfemacs-nonmule-display-8bit-chars) (if (and vm-mutable-frames vm-frame-per-folder *** dist/vm-minibuf.el.dist Sun May 31 22:08:06 1998 --- vm-minibuf.el Sun Nov 5 12:40:02 2000 *************** *** 323,325 **** (message "%s%s" prompt ! (vm-truncate-string xxx (buffer-size))) (while (not (memq (setq char (read-char)) '(?\C-m ?\C-j))) --- 323,325 ---- (message "%s%s" prompt ! (vm-truncate-roman-string xxx (buffer-size))) (while (not (memq (setq char (read-char)) '(?\C-m ?\C-j))) *************** *** 339,341 **** (message "%s%s" prompt ! (vm-truncate-string xxx (buffer-size)))) (cond ((and confirm string) --- 339,341 ---- (message "%s%s" prompt ! (vm-truncate-roman-string xxx (buffer-size)))) (cond ((and confirm string) *************** *** 344,346 **** (concat prompt ! (vm-truncate-string xxx (buffer-size)) " [Mismatch... try again.]")) --- 344,347 ---- (concat prompt ! (vm-truncate-roman-string ! xxx (buffer-size)) " [Mismatch... try again.]")) *************** *** 354,356 **** (concat prompt ! (vm-truncate-string xxx (buffer-size)) " [Retype to confirm...]")) --- 355,357 ---- (concat prompt ! (vm-truncate-roman-string xxx (buffer-size)) " [Retype to confirm...]")) *** dist/vm-misc.el.dist Sun Nov 5 02:08:13 2000 --- vm-misc.el Sun Nov 5 18:41:48 2000 *************** *** 760 **** --- 760,771 ---- nil))))) + + (defun vm-fsfemacs-nonmule-display-8bit-chars () + (cond ((and vm-fsfemacs-p (not vm-fsfemacs-mule-p)) + ;; need to do this outside the let because + ;; loading disp-table initializes + ;; standard-display-table. + (require 'disp-table) + (let* ((standard-display-table + (copy-sequence standard-display-table))) + (standard-display-european t) + (setq buffer-display-table standard-display-table))))) *** dist/vm-reply.el.dist Thu Nov 2 09:27:08 2000 --- vm-reply.el Sun Nov 5 12:40:02 2000 *************** *** 1426,1428 **** (if to ! (format "message to %s" (vm-truncate-string to 20)) nil) --- 1426,1429 ---- (if to ! (format "message to %s" ! (vm-truncate-roman-string to 20)) nil) *** dist/vm-startup.el.dist Sun Nov 5 02:08:13 2000 --- vm-startup.el Sun Nov 5 22:39:39 2000 *************** *** 327,329 **** ! This is VM 6.78. --- 327,329 ---- ! This is VM 6.79. *** dist/vm-summary.el.dist Tue Sep 5 12:19:41 2000 --- vm-summary.el Sun Nov 5 18:42:46 2000 *************** *** 65,67 **** (setq vm-summary-buffer ! (get-buffer-create (format "%s Summary" (buffer-name)))) (save-excursion --- 65,68 ---- (setq vm-summary-buffer ! (let ((default-enable-multibyte-characters t)) ! (get-buffer-create (format "%s Summary" (buffer-name))))) (save-excursion *************** *** 70,71 **** --- 71,73 ---- (auto-fill-mode 0) + (vm-fsfemacs-nonmule-display-8bit-chars) (if (fboundp 'buffer-disable-undo) *************** *** 551,587 **** (defun vm-left-justify-string (string width) ! (if (>= (length string) width) ! string ! (concat string (make-string (- width (length string)) ?\ )))) (defun vm-right-justify-string (string width) ! (if (>= (length string) width) ! string ! (concat (make-string (- width (length string)) ?\ ) string))) (defun vm-numeric-left-justify-string (string width) ! (if (>= (length string) width) ! string ! (concat string (make-string (- width (length string)) ?0)))) (defun vm-numeric-right-justify-string (string width) ! (if (>= (length string) width) ! string ! (concat (make-string (- width (length string)) ?0) string))) (defun vm-truncate-string (string width) ! (cond ! ;; doesn't work because the width of wide chars such as the Kanji ! ;; glyphs as not even multiples of the default face's font width. ! ;; ((fboundp 'char-width) ! ;; (let ((i 0) ! ;; (lim (length string)) ! ;; (total 0)) ! ;; (while (and (< i lim) (<= total width)) ! ;; (setq total (+ total (char-width (aref string i))) ! ;; i (1+ i))) ! ;; (if (<= total width) ! ;; string ! ;; (substring string 0 (1- i))))) ! ((<= (length string) (vm-abs width)) string) --- 553,608 ---- + (defun vm-string-width (string) + (if (not (fboundp 'char-width)) + (length string) + (if (fboundp 'string-width) + (string-width string) + (let ((i 0) + (lim (length string)) + (total 0)) + (while (< i lim) + (setq total (+ total (char-width (aref string i))) + i (1+ i))) + total )))) + (defun vm-left-justify-string (string width) ! (let ((sw (vm-string-width string))) ! (if (>= sw width) ! string ! (concat string (make-string (- width sw) ?\ ))))) (defun vm-right-justify-string (string width) ! (let ((sw (vm-string-width string))) ! (if (>= sw width) ! string ! (concat (make-string (- width sw) ?\ ) string)))) + ;; I don't think number glyphs ever have a width > 1 (defun vm-numeric-left-justify-string (string width) ! (let ((sw (length string))) ! (if (>= sw width) ! string ! (concat string (make-string (- width sw) ?0))))) + ;; I don't think number glyphs ever have a width > 1 (defun vm-numeric-right-justify-string (string width) ! (let ((sw (length string))) ! (if (>= sw width) ! string ! (concat (make-string (- width sw) ?0) string)))) (defun vm-truncate-string (string width) ! (cond ((fboundp 'char-width) ! (let ((i 0) ! (lim (length string)) ! (total 0)) ! (while (and (< i lim) (<= total width)) ! (setq total (+ total (char-width (aref string i))) ! i (1+ i))) ! (if (<= total width) ! string ! (substring string 0 (1- i))))) ! (t (vm-truncate-roman-string string width)))) ! ! (defun vm-truncate-roman-string (string width) ! (cond ((<= (length string) (vm-abs width)) string) *** dist/vm-version.el.dist Sun Nov 5 02:08:13 2000 --- vm-version.el Sun Nov 5 22:39:39 2000 *************** *** 4,6 **** ! (defconst vm-version "6.78" "Version number of VM.") --- 4,6 ---- ! (defconst vm-version "6.79" "Version number of VM.")