comparison lisp/vm/vm-misc.el @ 76:c0c698873ce1 r20-0b33

Import from CVS: tag r20-0b33
author cvs
date Mon, 13 Aug 2007 09:05:10 +0200
parents 131b0175ea99
children 0d2f883870bc
comparison
equal deleted inserted replaced
75:a4e0195b387b 76:c0c698873ce1
68 ((= char ?,) 68 ((= char ?,)
69 (setq s (buffer-substring start (point))) 69 (setq s (buffer-substring start (point)))
70 (if (or (null (string-match "^[\t\f\n\r ]+$" s)) 70 (if (or (null (string-match "^[\t\f\n\r ]+$" s))
71 (not (string= s ""))) 71 (not (string= s "")))
72 (setq list (cons s list))) 72 (setq list (cons s list)))
73 (forward-char 1) 73 (skip-chars-forward ",\t\f\n\r ")
74 (skip-chars-forward "\t\f\n\r ")
75 (setq start (point))) 74 (setq start (point)))
76 ((= char ?\") 75 ((= char ?\")
77 (forward-char 1)
78 (re-search-forward "[^\\]\"" nil 0)) 76 (re-search-forward "[^\\]\"" nil 0))
79 ((= char ?\() 77 ((= char ?\()
80 (let ((parens 1)) 78 (let ((parens 1))
81 (forward-char 1) 79 (forward-char 1)
82 (while (and (not (eobp)) (not (zerop parens))) 80 (while (and (not (eobp)) (not (zerop parens)))
83 (re-search-forward "[^\\][()]" nil 0) 81 (re-search-forward "[()]" nil 0)
84 (cond ((eobp)) 82 (cond ((or (eobp)
83 (= (char-after (- (point) 2)) ?\\)))
85 ((= (preceding-char) ?\() 84 ((= (preceding-char) ?\()
86 (setq parens (1+ parens))) 85 (setq parens (1+ parens)))
87 ((= (preceding-char) ?\)) 86 (t
88 (setq parens (1- parens))))))))) 87 (setq parens (1- parens)))))))))
89 (setq s (buffer-substring start (point))) 88 (setq s (buffer-substring start (point)))
90 (if (and (null (string-match "^[\t\f\n\r ]+$" s)) 89 (if (and (null (string-match "^[\t\f\n\r ]+$" s))
91 (not (string= s ""))) 90 (not (string= s "")))
92 (setq list (cons s list))) 91 (setq list (cons s list)))
138 137
139 (defmacro vm-error-if-folder-read-only () 138 (defmacro vm-error-if-folder-read-only ()
140 '(while vm-folder-read-only 139 '(while vm-folder-read-only
141 (signal 'folder-read-only (list (current-buffer))))) 140 (signal 'folder-read-only (list (current-buffer)))))
142 141
143 ;; XEmacs change 142 (put 'folder-read-only 'error-conditions '(folder-read-only error))
144 (define-error 'folder-read-only "Folder is read-only") 143 (put 'folder-read-only 'error-message "Folder is read-only")
145 144
146 (defmacro vm-error-if-virtual-folder () 145 (defmacro vm-error-if-virtual-folder ()
147 '(and (eq major-mode 'vm-virtual-mode) 146 '(and (eq major-mode 'vm-virtual-mode)
148 (error "%s cannot be applied to virtual folders." this-command))) 147 (error "%s cannot be applied to virtual folders." this-command)))
149 148
290 (let ((values (mapcar 'symbol-value variables))) 289 (let ((values (mapcar 'symbol-value variables)))
291 (save-excursion 290 (save-excursion
292 (set-buffer buffer) 291 (set-buffer buffer)
293 (vm-mapc 'set variables values)))) 292 (vm-mapc 'set variables values))))
294 293
295 ;; XEmacs change 294 (put 'folder-empty 'error-conditions '(folder-empty error))
296 (define-error 'folder-empty "Folder is empty") 295 (put 'folder-empty 'error-message "Folder is empty")
297 (define-error 'unrecognized-folder-type "Unrecognized folder type") 296 (put 'unrecognized-folder-type 'error-conditions
297 '(unrecognized-folder-type error))
298 (put 'unrecognized-folder-type 'error-message "Unrecognized folder type")
298 299
299 (defun vm-error-if-folder-empty () 300 (defun vm-error-if-folder-empty ()
300 (while (null vm-message-list) 301 (while (null vm-message-list)
301 (if vm-folder-type 302 (if vm-folder-type
302 (signal 'unrecognized-folder-type nil) 303 (signal 'unrecognized-folder-type nil)
341 342
342 (defun vm-mouse-support-possible-p () 343 (defun vm-mouse-support-possible-p ()
343 (vm-multiple-frames-possible-p)) 344 (vm-multiple-frames-possible-p))
344 345
345 (defun vm-menu-support-possible-p () 346 (defun vm-menu-support-possible-p ()
346 (or (and (boundp 'window-system) (eq window-system 'x)) 347 (or (and (boundp 'window-system)
348 (or (eq window-system 'x)
349 (eq window-system 'win32)))
347 (and (fboundp 'device-type) (eq (device-type) 'x)))) 350 (and (fboundp 'device-type) (eq (device-type) 'x))))
348 351
349 (defun vm-toolbar-support-possible-p () 352 (defun vm-toolbar-support-possible-p ()
350 (and (vm-xemacs-p) 353 (and (vm-xemacs-p)
351 (vm-multiple-frames-possible-p) 354 (vm-multiple-frames-possible-p)
363 (defun vm-error-free-call (function &rest args) 366 (defun vm-error-free-call (function &rest args)
364 (condition-case nil 367 (condition-case nil
365 (apply function args) 368 (apply function args)
366 (error nil))) 369 (error nil)))
367 370
368 ;; XEmacs change 371 (put 'beginning-of-folder 'error-conditions '(beginning-of-folder error))
369 (define-error 'beginning-of-folder "Beginning of folder") 372 (put 'beginning-of-folder 'error-message "Beginning of folder")
370 (define-error 'end-of-folder "End of folder") 373 (put 'end-of-folder 'error-conditions '(end-of-folder error))
374 (put 'end-of-folder 'error-message "End of folder")
371 375
372 (defun vm-trace (&rest args) 376 (defun vm-trace (&rest args)
373 (save-excursion 377 (save-excursion
374 (set-buffer (get-buffer-create "*vm-trace*")) 378 (set-buffer (get-buffer-create "*vm-trace*"))
375 (apply 'insert args))) 379 (apply 'insert args)))