diff options
Diffstat (limited to 'lisp')
75 files changed, 4681 insertions, 1156 deletions
diff --git a/lisp/ChangeLog b/lisp/ChangeLog index 7eb5e70b23a..8e2b74d5b60 100644 --- a/lisp/ChangeLog +++ b/lisp/ChangeLog @@ -1,3 +1,222 @@ +2004-05-18 Masatake YAMATO <jet@gyve.org> + + * wid-edit.el (widget-radio-button-notify): Don't pass `widget' + to widget-apply. :action method assumes 2 arguments, not 3. + +2004-05-17 Glenn Morris <gmorris@ast.cam.ac.uk> + + * progmodes/f90.el (f90-end-block-re, f90-start-block-re): New + constants. + (hs-special-modes-alist): Add an f90-mode entry. + +2004-05-17 Sam Steingold <sds@gnu.org> + + * emacs-lisp/cl-indent.el (common-lisp-indent-function-1): Indent + "without-" forms just like "with-" and "do-". Use regexp-opt. + +2004-05-16 Kim F. Storm <storm@cua.dk> + + * emacs-lisp/timer.el (timer-event-handler): Fix last change. + +2004-05-15 John Wiegley <johnw@newartisans.com> + + * eshell/esh-io.el (eshell-get-target): whitespace changes. + (eshell-output-object-to-target): Improve output speed 20% by not + calling `eshell-stringify' if something is already known to be a + string. + +2004-05-15 Alex Ott <ott@jet.msk.su> + + * textmodes/ispell.el (ispell-local-dictionary-alist): Add + windows-1251 to the choice of coding systems. + (ispell-dictionary-alist-6): Add support for "russianw.aff", + encoded in cp1251. + +2004-05-15 Dan Nicolaescu <dann@ics.uci.edu> + + * progmodes/compile.el (compilation-warning-face) + (compilation-info-face): Use min-colors. + +2004-05-15 Jan Dj,Ad(Brv <jan.h.d@swipnet.se> + + * toolbar/close.pbm, toolbar/close.xpm + * toolbar/copy.pbm, toolbar/copy.xpm + * toolbar/cut.pbm, toolbar/cut.xpm + * toolbar/help.pbm, toolbar/help.xpm + * toolbar/home.pbm, toolbar/home.xpm + * toolbar/index.pbm, toolbar/index.xpm + * toolbar/jump_to.pbm, toolbar/jump_to.xpm + * toolbar/left_arrow.pbm, toolbar/left_arrow.xpm + * toolbar/new.pbm, toolbar/new.xpm + * toolbar/open.pbm, toolbar/open.xpm + * toolbar/paste.pbm, toolbar/paste.xpm + * toolbar/preferences.pbm, toolbar/preferences.xpm + * toolbar/print.pbm, toolbar/print.xpm + * toolbar/right_arrow.pbm, toolbar/right_arrow.xpm + * toolbar/save.pbm, toolbar/save.xpm + * toolbar/saveas.pbm, toolbar/saveas.xpm + * toolbar/search.pbm, toolbar/search.xpm + * toolbar/spell.pbm, toolbar/spell.xpm + * toolbar/undo.pbm, toolbar/undo.xpm + * toolbar/up_arrow.pbm, toolbar/up_arrow.xpm: New icons from + GTK+ version 2. + + +2004-05-15 Kim F. Storm <storm@cua.dk> + + * emacs-lisp/timer.el (timer-activate): Add optional arg triggered-p. + Use it to set triggered-p element of timer. + (timer-event-handler): Set triggered-p element non-nil while running + the timer function. + +2004-05-14 David Ponce <david@dponce.com> + + * tree-widget.el: New file. + +2004-05-13 Marcelo Toledo <marcelo@marcelotoledo.org> + + * language/european.el ("Brazilian Portuguese"): Added support for + Brazilian Portuguese. + +2004-05-13 John Wiegley <johnw@newartisans.com> + + * iswitchb.el (iswitchb-use-virtual-buffers): Only turn on + `recentf-mode' if this variable has been customized to t. + + * eshell/esh-test.el (eshell-test): Call the function + `emacs-version' rather than trying to build a custom version + string. + +2004-05-13 Stefan Monnier <monnier@iro.umontreal.ca> + + * net/telnet.el (telnet-mode): Use define-derived-mode. + Don't modify the global value of comint-prompt-regexp. + +2004-05-13 John Paul Wallington <jpw@gnu.org> + + * version.el (emacs-version): Check for `gtk' feature before + `x-toolkit' feature. + +2004-05-13 Juanma Barranquero <lektu@terra.es> + + * files.el (file-truename): Don't mention COUNTER and PREV-DIRS + arguments in the docstring, they're used only in recursive calls. + + * help-fns.el (help-arg-highlighting-function) + (help-argument-name): Delete. + (help-default-arg-highlight): New function. + (help-do-arg-highlighting): Use it. + +2004-05-13 Glenn Morris <gmorris@ast.cam.ac.uk> + + * calendar/appt.el (appt-disp-window): + Use `calendar-set-mode-line' for a centered mode-line. + +2004-05-13 Takaaki Ota <Takaaki.Ota@am.sony.com> (tiny change) + + * calendar/appt.el (appt-disp-window): Do not split window + excessively when `split-height-threshold' is low. + +2004-05-12 Nick Roberts <nickrob@gnu.org> + + * progmodes/gud.el (gud-mode): Add gud-kill-buffer-hook to + kill-buffer-hook here and make it local. + (gud-kill-buffer-hook): Use kill-process for a sure kill. + +2004-05-12 Daniel Pfeiffer <occitan@esperanto.org> + + * progmodes/compile.el (compilation-set-window-height): + Use save-excursion to protect against misplaced marker. + +2004-05-12 Jan Dj,Ad(Brv <jan.h.d@swipnet.se> + + * custom.el (defface): Document that type can have value gtk. + + * faces.el (face-spec-set-match-display): Handle type gtk in display. + +2004-05-12 Kenichi Handa <handa@m17n.org> + + * descr-text.el: Require quail at comile time. + (describe-char): If an input method is on and it supports the + character, show how to input it. + + * international/quail.el (quail-install-decode-map): Accept a + char-table whose subtype is `quail-decode-map'. + (quail-store-decode-map-key, quail-gen-decode-map1) + (quail-gen-decode-map, quail-find-key1, quail-find-key) + (quail-show-key): New functions. + +2004-05-12 Juanma Barranquero <lektu@terra.es> + + * generic.el (define-generic-mode): Remove redundant arglist info. + + * help-fns.el (help-split-fundoc, help-add-fundoc-usage): + Make arguments match their use in docstring. + (help-arg-highlighting-function): New variable. + (help-argument-name): Mention it in the docstring. + (help-do-arg-highlight): Use it. Expand regexp to accept also + ARG-xxx and xxx-ARG references. + +2004-05-11 Yoichi NAKAYAMA <yoichi@geiin.org> (tiny change) + + * mail/rfc2368.el (rfc2368-parse-mailto-url): Make the results of + parsing "mailto:addr1%2C%20addr2", "mailto:?to=addr1%2C%20addr2", + and "mailto:addr1?to=addr2" equal. + +2004-05-11 Alexander Pohoyda <alexander.pohoyda@gmx.net> (tiny change) + + * man.el (Man-getpage-in-background): Use shell-file-name + and shell-command-switch variables instead of hard-coded values. + +2004-05-11 Eli Zaretskii <eliz@gnu.org> + + * iimage.el: New file. + +2004-05-11 Juanma Barranquero <lektu@terra.es> + + * custom.el (custom-initialize-default, defcustom): Typo in docstring. + + * files.el (set-visited-file-name, file-expand-wildcards): + Fix docstring. + +2004-05-10 Stefan Monnier <monnier@iro.umontreal.ca> + + * emacs-lisp/lisp-mode.el (prin1-char): Use eventp. + + * subr.el (eventp): Be more discriminating with integers. + +2004-05-10 Daniel Pfeiffer <occitan@esperanto.org> + + * progmodes/compile.el (compile): Add universal prefix arg. + (compilation-error-regexp-alist-alist): Add edg patterns. + +2004-05-10 Sam Steingold <sds@gnu.org> + + * textmodes/ispell.el (ispell-message): + Use `message-cite-prefix-regexp' instead of `message-yank-prefix'. + +2004-05-10 Dave Love <fx@gnu.org> + + * progmodes/python.el (help-buffer): Autoload when compiling. + (python-after-info-look): Don't assume Info-goto-node returns non-nil. + (run-python): Prepend to any existing PYTHONPATH. + +2004-05-10 Nick Roberts <nick@nick.uklinux.net> + + * progmodes/gdb-ui.el (gdb-annotation-rules): Add nquery annotation + for pending breakpoints. + +2004-05-10 Richard M. Stallman <rms@gnu.org> + + * mail/unrmail.el (unrmail): Mostly rewritten. Parses the file + directly without calling any functions in Rmail. + (unrmail-unprune): Function deleted. + +2004-05-10 Stefan Monnier <monnier@iro.umontreal.ca> + + * progmodes/python.el (inferior-python-mode-map): Remove erroneous + C-c C-z binding. + 2004-05-10 Kenichi Handa <handa@m17n.org> * descr-text.el (describe-char): Fix previous change. Don't make @@ -10,12 +229,21 @@ 2004-05-10 Juanma Barranquero <lektu@terra.es> - * subr.el (remove-overlays, read-passwd): Fix docstring. - * help-fns.el (help-argument-name): Default to italic. (help-highlight-arguments): Return always (usage . doc), even when usage is nil. + * ibuf-macs.el (define-ibuffer-column, define-ibuffer-sorter) + (define-ibuffer-filter): Add usage info. + (define-ibuffer-op): Add usage info (but CL-style defaults for + keyword args are not shown). + + * subr.el (remove-overlays, read-passwd): Fix docstring. + (start-process-shell-command): Fix docstring. Put usage info in a + format usable by `describe-function'. + (open-network-stream, open-network-stream-nowait) + (open-network-stream-server): Fix docstring. + 2004-05-09 Jason Rumney <jasonr@gnu.org> * international/code-pages (cp932, cp936, cp949, c950): Remove. @@ -29,24 +257,24 @@ * term/w32-win.el: Require code-pages. - * international/mule-cmds.el (set-locale-environment): On - MS-Windows use ansi code-page for default coding-systems. + * international/mule-cmds.el (set-locale-environment): + On MS-Windows use ansi code-page for default coding-systems. Set up paper sizes for Windows 3 letter languages. - * international/code-pages.el (cp932, cp936, cp949, cp950): Add - aliases. Also add cp125* if not already defined. + * international/code-pages.el (cp932, cp936, cp949, cp950): + Add aliases. Also add cp125* if not already defined. 2004-05-09 Juanma Barranquero <lektu@terra.es> - * net/quickurl.el (quickurl, quickurl-browse-url, quickurl-read): - Don't use CL-style default args. + * help-fns.el (help-highlight-arguments): Don't try to highlight + missing or autoloaded arglists. Accept structured arguments, like + the first ones of `do' and `flet'. * pcvs.el (cvs-mode-run, cvs-is-within-p): Fix typo in docstring. (cvs-get-marked): Remove redundant arglist info. - * help-fns.el (help-highlight-arguments): Don't try to highlight - missing or autoloaded arglists. Accept structured arguments, like - the first ones of `do' and `flet'. + * net/quickurl.el (quickurl, quickurl-browse-url, quickurl-read): + Don't use CL-style default args. 2004-05-08 Andreas Schwab <schwab@suse.de> @@ -62,17 +290,17 @@ 2004-05-08 John Wiegley <johnw@newartisans.com> - * iswitchb.el (iswitchb-use-virtual-buffers): Added support for + * iswitchb.el (iswitchb-use-virtual-buffers): Add support for "virtual buffers" (off by default), which makes it possible to switch to the "virtual" buffers of recently visited files. When a buffer name search fails, and this option is on, iswitchb will look at the list of recently visited files, and permit matching against those names. When the user hits RET on a match, it will revisit that file. - (iswitchb-read-buffer): Added two optional arguments, which makes + (iswitchb-read-buffer): Add two optional arguments, which makes isearchb.el possible. - (iswitchb-completions, iswitchb-set-matches, iswitchb-prev-match, - iswitchb-next-match): Added support for virtual buffers. + (iswitchb-completions, iswitchb-set-matches, iswitchb-prev-match) + (iswitchb-next-match): Add support for virtual buffers. * isearchb.el: This module extends iswitchb to provide "as you type" buffer selection. @@ -108,8 +336,7 @@ * help-fns.el (help-do-arg-highlight): Temporarily set ?\- to be a word constituent so FOO-ARG is not recognized as an arg. - (help-highlight-arguments): Don't skip lists in mandatory - arguments. + (help-highlight-arguments): Don't skip lists in mandatory arguments. * simple.el (next-error): Fix typo in docstring. (open-line): Make argument names match their use in docstring. @@ -127,11 +354,11 @@ Version 2.0.40 of Tramp released. - * net/tramp.el (tramp-completion-mode, tramp-md5-function): Use - symbol-function to invoke functions only known on some Emacs + * net/tramp.el (tramp-completion-mode, tramp-md5-function): + Use symbol-function to invoke functions only known on some Emacs flavors. This avoids byte-compiler warnings. Reported by Kevin Scaldeferri <kevin@scaldeferri.com>. - (tramp-do-copy-or-rename-file-via-buffer): Renamed from + (tramp-do-copy-or-rename-file-via-buffer): Rename from tramp-do-copy-or-rename-via-buffer (without `file'), to make it consistent with the other tramp-do-* functions. (tramp-do-copy-or-rename-file): Calls adjusted. @@ -145,8 +372,7 @@ (tramp-read-passwd): Construct the key for the password cache in a way that works for multi methods, too. (tramp-bug): Add backup-directory-alist and - bkup-backup-directory-info to bug reports, with Tramp - counterparts. + bkup-backup-directory-info to bug reports, with Tramp counterparts. 2004-05-07 Michael Albinus <michael.albinus@gmx.de> @@ -157,8 +383,8 @@ (tramp-do-copy-or-rename-file-out-of-band): Asynchronous process used instead of a synchronous one. Allows password entering. (tramp-action-out-of-band): New defun. - (tramp-open-connection-rsh, tramp-method-out-of-band-p): Remove - restriction with password from doc string. + (tramp-open-connection-rsh, tramp-method-out-of-band-p): + Remove restriction with password from doc string. (tramp-bug): Add variables `tramp-terminal-prompt-regexp', `tramp-out-of-band-prompt-regexp', `tramp-actions-copy-out-of-band', `password-cache' and @@ -172,15 +398,14 @@ Schwab <schwab@suse.de>. (tramp-do-copy-or-rename-file-via-buffer): Set permissions of the new file. - (tramp-handle-file-local-copy, tramp-handle-write-region): The - permissions of the temporary file are set if filename exists. + (tramp-handle-file-local-copy, tramp-handle-write-region): + The permissions of the temporary file are set if filename exists. Reported by Ted Stern <stern@cray.com>. (tramp-backup-directory-alist) (tramp-bkup-backup-directory-info): New defcustoms. - (tramp-file-name-handler-alist): Add entry for - `find-backup-file-name'. - (tramp-handle-find-backup-file-name): New function. Implements - Tramp's find-backup-file-name. + (tramp-file-name-handler-alist): Add entry for `find-backup-file-name'. + (tramp-handle-find-backup-file-name): New function. + Implements Tramp's find-backup-file-name. * net/tramp-smb.el (tramp-smb-file-name-handler-alist): Add entry for `find-backup-file-name'. @@ -197,8 +422,7 @@ * subr.el (lambda): Add arglist description to docstring. (declare): Fix typo in docstring. (open-network-stream): Fix docstring. - (process-kill-without-query): Fix docstring and add obsolescence - info. + (process-kill-without-query): Fix docstring and add obsolescence info. (last, butlast, nbutlast): Make arguments match their use in docstring. (insert-buffer-substring-no-properties): Likewise. (insert-buffer-substring-as-yank): Likewise. @@ -269,13 +493,13 @@ 2004-05-06 Juanma Barranquero <lektu@terra.es> + * ehelp.el (electric-help-command-loop): Check whether the last + character is visible, not (point-max). + * help-fns.el (help-argument-name): Default to bold; don't inherit from font-lock-variable-name-face. (help-do-arg-highlight): Grok also ARGth occurrences in the docstring. - * ehelp.el (electric-help-command-loop): Check whether the last - character is visible, not (point-max). - 2004-05-05 Kenichi Handa <handa@m17n.org> * descr-text.el (describe-char): Copy the character with text @@ -323,6 +547,9 @@ 2004-05-04 Juanma Barranquero <lektu@terra.es> + * ehelp.el (electric-help-command-loop, electric-help-undefined) + (electric-help-help): Check against unmapped commands. + * help-fns.el (help-argument-name): New face, inheriting from font-lock-variable-name-face, to highlight function arguments in `describe-function' and `describe-key'. @@ -333,12 +560,9 @@ (describe-function-1): Use it. Do docstring output via `insert', not 'princ', so text attributes are preserved. - * winner.el (winner-mode-map): Move winner-undo and winner-redo to - C-c <left> and C-c <right>, respectively (the previous bindings - conflict with prev-buffer, next-buffer). - - * ehelp.el (electric-help-command-loop, electric-help-undefined) - (electric-help-help): Check against unmapped commands. + * winner.el (winner-mode-map): Move `winner-undo' and + `winner-redo' to C-c <left> and C-c <right>, respectively (the + previous bindings conflict with `prev-buffer', `next-buffer'). 2004-05-03 Roland Winkler <Roland.Winkler@physik.uni-erlangen.de> @@ -617,7 +841,7 @@ `font-lock-add-keywords'. (sql-send-string): Add function. -2004-04-29 Dave Love <fx@gnu.org> +2004-04-29 Dave Love <fx@gnu.org> * progmodes/cfengine.el (cfengine-beginning-of-defun) (cfengine-end-of-defun): Ensure progress through buffer. @@ -1060,11 +1284,11 @@ 2004-04-21 Juanma Barranquero <lektu@terra.es> - * makefile.w32-in (WINS): Add url/ directory. - * font-lock.el (font-lock-preprocessor-face): Remove spurious quote. (font-lock-warning-face): Fix spacing. + * makefile.w32-in (WINS): Add url/ directory. + 2004-04-21 Lars Hansen <larsh@math.ku.dk> * desktop.el (desktop-buffer-mode-handlers): New variable. @@ -1809,7 +2033,7 @@ 2004-04-05 Vinicius Jose Latorre <viniciusjl@ig.com.br> - * printing.el: Dox fix. + * printing.el: Doc fix. 2004-04-05 Nick Roberts <nick@nick.uklinux.net> @@ -6811,7 +7035,7 @@ 2003-07-10 Vinicius Jose Latorre <viniciusjl@ig.com.br> * ps-print.el: Print line number correctly in a region. Reported by - Tim Allen <timallen@ls83.fsnet.co.uk> + Tim Allen <timallen@ls83.fsnet.co.uk>. (ps-print-version): New version number (6.6.2). (ps-printing-region): Code fix. diff --git a/lisp/calendar/appt.el b/lisp/calendar/appt.el index 002aec878ca..0c911ca8b7d 100644 --- a/lisp/calendar/appt.el +++ b/lisp/calendar/appt.el @@ -449,11 +449,10 @@ NEW-TIME is a string giving the date." (same-window-p (buffer-name appt-disp-buf))) ;; By default, split the bottom window and use the lower part. (appt-select-lowest-window) - (split-window)) - (pop-to-buffer appt-disp-buf)) - (setq mode-line-format - (concat "-------------------- Appointment in " - min-to-app " minutes. " new-time " %-")) + (select-window (split-window))) + (switch-to-buffer appt-disp-buf)) + (calendar-set-mode-line + (format " Appointment in %s minutes. %s " min-to-app new-time)) (erase-buffer) (insert appt-msg) (shrink-window-if-larger-than-buffer (get-buffer-window appt-disp-buf t)) diff --git a/lisp/custom.el b/lisp/custom.el index f5cfd55400a..ae9d86cab00 100644 --- a/lisp/custom.el +++ b/lisp/custom.el @@ -54,7 +54,7 @@ Users should not set it.") "Initialize SYMBOL with VALUE. This will do nothing if symbol already has a default binding. Otherwise, if symbol has a `saved-value' property, it will evaluate -the car of that and used as the default binding for symbol. +the car of that and use it as the default binding for symbol. Otherwise, VALUE will be evaluated and used as the default binding for symbol." (unless (default-boundp symbol) @@ -176,7 +176,7 @@ set to nil, as the value is no longer rogue." "Declare SYMBOL as a customizable variable that defaults to VALUE. DOC is the variable documentation. -Neither SYMBOL nor VALUE needs to be quoted. +Neither SYMBOL nor VALUE need to be quoted. If SYMBOL is not already bound, initialize it to VALUE. The remaining arguments should have the form @@ -298,8 +298,8 @@ following REQ are defined: `type' (the value of `window-system') Under X, in addition to the values `window-system' can take, - `motif', `lucid' and `x-toolkit' are allowed, and match when - the Motif toolkit, Lucid toolkit, or any X toolkit is in use. + `motif', `lucid', `gtk' and `x-toolkit' are allowed, and match when + the Motif toolkit, Lucid toolkit, GTK toolkit or any X toolkit is in use. `class' (the frame's color support) Should be one of `color', `grayscale', or `mono'. diff --git a/lisp/descr-text.el b/lisp/descr-text.el index 6b4f18ff718..75ce294dad6 100644 --- a/lisp/descr-text.el +++ b/lisp/descr-text.el @@ -28,7 +28,7 @@ ;;; Code: -(eval-when-compile (require 'button)) +(eval-when-compile (require 'button) (require 'quail)) (defun describe-text-done () "Delete the current window or bury the current buffer." @@ -183,7 +183,6 @@ otherwise." (defun describe-text-properties-1 (pos output-buffer) (let* ((properties (text-properties-at pos)) (overlays (overlays-at pos)) - overlay (wid-field (get-char-property pos 'field)) (wid-button (get-char-property pos 'button)) (wid-doc (get-char-property pos 'widget-doc)) @@ -225,221 +224,214 @@ otherwise." (widget-insert "There are text properties here:\n") (describe-property-list properties))))) -;;; We cannot use the UnicodeData.txt file as such; it is not free. -;;; We can turn that info a different format and release the result -;;; as free data. When that is done, we could reinstate the code below. -;;; For the mean time, here is a dummy placeholder. -;;; -- rms -(defun describe-char-unicode-data (char) nil) - -;;; (defcustom describe-char-unicodedata-file nil -;;; "Location of Unicode data file. -;;; This is the UnicodeData.txt file from the Unicode consortium, used for -;;; diagnostics. If it is non-nil `describe-char-after' will print data -;;; looked up from it. This facility is mostly of use to people doing -;;; multilingual development. - -;;; This is a fairly large file, not typically present on GNU systems. At -;;; the time of writing it is at -;;; <URL:ftp://www.unicode.org/Public/UNIDATA/UnicodeData.txt>." -;;; :group 'mule -;;; :version "21.5" -;;; :type '(choice (const :tag "None" nil) -;;; file)) - -;;; ;; We could convert the unidata file into a Lispy form once-for-all -;;; ;; and distribute it for loading on demand. It might be made more -;;; ;; space-efficient by splitting strings word-wise and replacing them -;;; ;; with lists of symbols interned in a private obarray, e.g. -;;; ;; "LATIN SMALL LETTER A" => '(LATIN SMALL LETTER A). - -;;; ;; Fixme: Check whether this needs updating for Unicode 4. -;;; (defun describe-char-unicode-data (char) -;;; "Return a list of Unicode data for unicode CHAR. -;;; Each element is a list of a property description and the property value. -;;; The list is null if CHAR isn't found in `describe-char-unicodedata-file'." -;;; (when describe-char-unicodedata-file -;;; (unless (file-exists-p describe-char-unicodedata-file) -;;; (error "`unicodedata-file' %s not found" describe-char-unicodedata-file)) -;;; (save-excursion -;;; ;; Find file in fundamental mode to avoid, e.g. flyspell turned -;;; ;; on for .txt. Don't use RAWFILE arg in case of DOS line endings. -;;; (set-buffer (let ((auto-mode-alist)) -;;; (find-file-noselect describe-char-unicodedata-file))) -;;; (goto-char (point-min)) -;;; (let ((hex (format "%04X" char)) -;;; found first last) -;;; (if (re-search-forward (concat "^" hex) nil t) -;;; (setq found t) -;;; ;; It's not listed explicitly. Look for ranges, e.g. CJK -;;; ;; ideographs, and check whether it's in one of them. -;;; (while (and (re-search-forward "^\\([^;]+\\);[^;]+First>;" nil t) -;;; (>= char (setq first -;;; (string-to-number (match-string 1) 16))) -;;; (progn -;;; (forward-line 1) -;;; (looking-at "^\\([^;]+\\);[^;]+Last>;") -;;; (> char -;;; (setq last -;;; (string-to-number (match-string 1) 16)))))) -;;; (if (and (>= char first) -;;; (<= char last)) -;;; (setq found t))) -;;; (if found -;;; (let ((fields (mapcar (lambda (elt) -;;; (if (> (length elt) 0) -;;; elt)) -;;; (cdr (split-string -;;; (buffer-substring -;;; (line-beginning-position) -;;; (line-end-position)) -;;; ";"))))) -;;; ;; The length depends on whether the last field was empty. -;;; (unless (or (= 13 (length fields)) -;;; (= 14 (length fields))) -;;; (error "Invalid contents in %s" describe-char-unicodedata-file)) -;;; ;; The field names and values lists are slightly -;;; ;; modified from Mule-UCS unidata.el. -;;; (list -;;; (list "Name" (let ((name (nth 0 fields))) -;;; ;; Check for <..., First>, <..., Last> -;;; (if (string-match "\\`\\(<[^,]+\\)," name) -;;; (concat (match-string 1 name) ">") -;;; name))) -;;; (list "Category" -;;; (cdr (assoc -;;; (nth 1 fields) -;;; '(("Lu" . "uppercase letter") -;;; ("Ll" . "lowercase letter") -;;; ("Lt" . "titlecase letter") -;;; ("Mn" . "non-spacing mark") -;;; ("Mc" . "spacing-combining mark") -;;; ("Me" . "enclosing mark") -;;; ("Nd" . "decimal digit") -;;; ("Nl" . "letter number") -;;; ("No" . "other number") -;;; ("Zs" . "space separator") -;;; ("Zl" . "line separator") -;;; ("Zp" . "paragraph separator") -;;; ("Cc" . "other control") -;;; ("Cf" . "other format") -;;; ("Cs" . "surrogate") -;;; ("Co" . "private use") -;;; ("Cn" . "not assigned") -;;; ("Lm" . "modifier letter") -;;; ("Lo" . "other letter") -;;; ("Pc" . "connector punctuation") -;;; ("Pd" . "dash punctuation") -;;; ("Ps" . "open punctuation") -;;; ("Pe" . "close punctuation") -;;; ("Pi" . "initial-quotation punctuation") -;;; ("Pf" . "final-quotation punctuation") -;;; ("Po" . "other punctuation") -;;; ("Sm" . "math symbol") -;;; ("Sc" . "currency symbol") -;;; ("Sk" . "modifier symbol") -;;; ("So" . "other symbol"))))) -;;; (list "Combining class" -;;; (cdr (assoc -;;; (string-to-number (nth 2 fields)) -;;; '((0 . "Spacing") -;;; (1 . "Overlays and interior") -;;; (7 . "Nuktas") -;;; (8 . "Hiragana/Katakana voicing marks") -;;; (9 . "Viramas") -;;; (10 . "Start of fixed position classes") -;;; (199 . "End of fixed position classes") -;;; (200 . "Below left attached") -;;; (202 . "Below attached") -;;; (204 . "Below right attached") -;;; (208 . "Left attached (reordrant around \ -;;; single base character)") -;;; (210 . "Right attached") -;;; (212 . "Above left attached") -;;; (214 . "Above attached") -;;; (216 . "Above right attached") -;;; (218 . "Below left") -;;; (220 . "Below") -;;; (222 . "Below right") -;;; (224 . "Left (reordrant around single base \ -;;; character)") -;;; (226 . "Right") -;;; (228 . "Above left") -;;; (230 . "Above") -;;; (232 . "Above right") -;;; (233 . "Double below") -;;; (234 . "Double above") -;;; (240 . "Below (iota subscript)"))))) -;;; (list "Bidi category" -;;; (cdr (assoc -;;; (nth 3 fields) -;;; '(("L" . "Left-to-Right") -;;; ("LRE" . "Left-to-Right Embedding") -;;; ("LRO" . "Left-to-Right Override") -;;; ("R" . "Right-to-Left") -;;; ("AL" . "Right-to-Left Arabic") -;;; ("RLE" . "Right-to-Left Embedding") -;;; ("RLO" . "Right-to-Left Override") -;;; ("PDF" . "Pop Directional Format") -;;; ("EN" . "European Number") -;;; ("ES" . "European Number Separator") -;;; ("ET" . "European Number Terminator") -;;; ("AN" . "Arabic Number") -;;; ("CS" . "Common Number Separator") -;;; ("NSM" . "Non-Spacing Mark") -;;; ("BN" . "Boundary Neutral") -;;; ("B" . "Paragraph Separator") -;;; ("S" . "Segment Separator") -;;; ("WS" . "Whitespace") -;;; ("ON" . "Other Neutrals"))))) -;;; (list -;;; "Decomposition" -;;; (if (nth 4 fields) -;;; (let* ((parts (split-string (nth 4 fields))) -;;; (info (car parts))) -;;; (if (string-match "\\`<\\(.+\\)>\\'" info) -;;; (setq info (match-string 1 info)) -;;; (setq info nil)) -;;; (if info (setq parts (cdr parts))) -;;; ;; Maybe printing ? for unrepresentable unicodes -;;; ;; here and below should be changed? -;;; (setq parts (mapconcat -;;; (lambda (arg) -;;; (string (or (decode-char -;;; 'ucs -;;; (string-to-number arg 16)) -;;; ??))) -;;; parts " ")) -;;; (concat info parts)))) -;;; (list "Decimal digit value" -;;; (nth 5 fields)) -;;; (list "Digit value" -;;; (nth 6 fields)) -;;; (list "Numeric value" -;;; (nth 7 fields)) -;;; (list "Mirrored" -;;; (if (equal "Y" (nth 8 fields)) -;;; "yes")) -;;; (list "Old name" (nth 9 fields)) -;;; (list "ISO 10646 comment" (nth 10 fields)) -;;; (list "Uppercase" (and (nth 11 fields) -;;; (string (or (decode-char -;;; 'ucs -;;; (string-to-number -;;; (nth 11 fields) 16)) -;;; ??)))) -;;; (list "Lowercase" (and (nth 12 fields) -;;; (string (or (decode-char -;;; 'ucs -;;; (string-to-number -;;; (nth 12 fields) 16)) -;;; ??)))) -;;; (list "Titlecase" (and (nth 13 fields) -;;; (string (or (decode-char -;;; 'ucs -;;; (string-to-number -;;; (nth 13 fields) 16)) -;;; ??))))))))))) +(defcustom describe-char-unicodedata-file nil + "Location of Unicode data file. +This is the UnicodeData.txt file from the Unicode consortium, used for +diagnostics. If it is non-nil `describe-char-after' will print data +looked up from it. This facility is mostly of use to people doing +multilingual development. + +This is a fairly large file, not typically present on GNU systems. At +the time of writing it is at +<URL:http://www.unicode.org/Public/UNIDATA/UnicodeData.txt>." + :group 'mule + :version "21.4" + :type '(choice (const :tag "None" nil) + file)) + +;; We could convert the unidata file into a Lispy form once-for-all +;; and distribute it for loading on demand. It might be made more +;; space-efficient by splitting strings word-wise and replacing them +;; with lists of symbols interned in a private obarray, e.g. +;; "LATIN SMALL LETTER A" => '(LATIN SMALL LETTER A). + +;; Fixme: Check whether this needs updating for Unicode 4. +(defun describe-char-unicode-data (char) + "Return a list of Unicode data for unicode CHAR. +Each element is a list of a property description and the property value. +The list is null if CHAR isn't found in `describe-char-unicodedata-file'." + (when describe-char-unicodedata-file + (unless (file-exists-p describe-char-unicodedata-file) + (error "`unicodedata-file' %s not found" describe-char-unicodedata-file)) + (with-current-buffer + ;; Find file in fundamental mode to avoid, e.g. flyspell turned + ;; on for .txt. Don't use RAWFILE arg in case of DOS line endings. + (let ((auto-mode-alist)) + (find-file-noselect describe-char-unicodedata-file)) + (goto-char (point-min)) + (let ((hex (format "%04X" char)) + found first last) + (if (re-search-forward (concat "^" hex) nil t) + (setq found t) + ;; It's not listed explicitly. Look for ranges, e.g. CJK + ;; ideographs, and check whether it's in one of them. + (while (and (re-search-forward "^\\([^;]+\\);[^;]+First>;" nil t) + (>= char (setq first + (string-to-number (match-string 1) 16))) + (progn + (forward-line 1) + (looking-at "^\\([^;]+\\);[^;]+Last>;") + (> char + (setq last + (string-to-number (match-string 1) 16)))))) + (if (and (>= char first) + (<= char last)) + (setq found t))) + (if found + (let ((fields (mapcar (lambda (elt) + (if (> (length elt) 0) + elt)) + (cdr (split-string + (buffer-substring + (line-beginning-position) + (line-end-position)) + ";"))))) + ;; The length depends on whether the last field was empty. + (unless (or (= 13 (length fields)) + (= 14 (length fields))) + (error "Invalid contents in %s" describe-char-unicodedata-file)) + ;; The field names and values lists are slightly + ;; modified from Mule-UCS unidata.el. + (list + (list "Name" (let ((name (nth 0 fields))) + ;; Check for <..., First>, <..., Last> + (if (string-match "\\`\\(<[^,]+\\)," name) + (concat (match-string 1 name) ">") + name))) + (list "Category" + (cdr (assoc + (nth 1 fields) + '(("Lu" . "uppercase letter") + ("Ll" . "lowercase letter") + ("Lt" . "titlecase letter") + ("Mn" . "non-spacing mark") + ("Mc" . "spacing-combining mark") + ("Me" . "enclosing mark") + ("Nd" . "decimal digit") + ("Nl" . "letter number") + ("No" . "other number") + ("Zs" . "space separator") + ("Zl" . "line separator") + ("Zp" . "paragraph separator") + ("Cc" . "other control") + ("Cf" . "other format") + ("Cs" . "surrogate") + ("Co" . "private use") + ("Cn" . "not assigned") + ("Lm" . "modifier letter") + ("Lo" . "other letter") + ("Pc" . "connector punctuation") + ("Pd" . "dash punctuation") + ("Ps" . "open punctuation") + ("Pe" . "close punctuation") + ("Pi" . "initial-quotation punctuation") + ("Pf" . "final-quotation punctuation") + ("Po" . "other punctuation") + ("Sm" . "math symbol") + ("Sc" . "currency symbol") + ("Sk" . "modifier symbol") + ("So" . "other symbol"))))) + (list "Combining class" + (cdr (assoc + (string-to-number (nth 2 fields)) + '((0 . "Spacing") + (1 . "Overlays and interior") + (7 . "Nuktas") + (8 . "Hiragana/Katakana voicing marks") + (9 . "Viramas") + (10 . "Start of fixed position classes") + (199 . "End of fixed position classes") + (200 . "Below left attached") + (202 . "Below attached") + (204 . "Below right attached") + (208 . "Left attached (reordrant around \ +single base character)") + (210 . "Right attached") + (212 . "Above left attached") + (214 . "Above attached") + (216 . "Above right attached") + (218 . "Below left") + (220 . "Below") + (222 . "Below right") + (224 . "Left (reordrant around single base \ +character)") + (226 . "Right") + (228 . "Above left") + (230 . "Above") + (232 . "Above right") + (233 . "Double below") + (234 . "Double above") + (240 . "Below (iota subscript)"))))) + (list "Bidi category" + (cdr (assoc + (nth 3 fields) + '(("L" . "Left-to-Right") + ("LRE" . "Left-to-Right Embedding") + ("LRO" . "Left-to-Right Override") + ("R" . "Right-to-Left") + ("AL" . "Right-to-Left Arabic") + ("RLE" . "Right-to-Left Embedding") + ("RLO" . "Right-to-Left Override") + ("PDF" . "Pop Directional Format") + ("EN" . "European Number") + ("ES" . "European Number Separator") + ("ET" . "European Number Terminator") + ("AN" . "Arabic Number") + ("CS" . "Common Number Separator") + ("NSM" . "Non-Spacing Mark") + ("BN" . "Boundary Neutral") + ("B" . "Paragraph Separator") + ("S" . "Segment Separator") + ("WS" . "Whitespace") + ("ON" . "Other Neutrals"))))) + (list + "Decomposition" + (if (nth 4 fields) + (let* ((parts (split-string (nth 4 fields))) + (info (car parts))) + (if (string-match "\\`<\\(.+\\)>\\'" info) + (setq info (match-string 1 info)) + (setq info nil)) + (if info (setq parts (cdr parts))) + ;; Maybe printing ? for unrepresentable unicodes + ;; here and below should be changed? + (setq parts (mapconcat + (lambda (arg) + (string (or (decode-char + 'ucs + (string-to-number arg 16)) + ??))) + parts " ")) + (concat info parts)))) + (list "Decimal digit value" + (nth 5 fields)) + (list "Digit value" + (nth 6 fields)) + (list "Numeric value" + (nth 7 fields)) + (list "Mirrored" + (if (equal "Y" (nth 8 fields)) + "yes")) + (list "Old name" (nth 9 fields)) + (list "ISO 10646 comment" (nth 10 fields)) + (list "Uppercase" (and (nth 11 fields) + (string (or (decode-char + 'ucs + (string-to-number + (nth 11 fields) 16)) + ??)))) + (list "Lowercase" (and (nth 12 fields) + (string (or (decode-char + 'ucs + (string-to-number + (nth 12 fields) 16)) + ??)))) + (list "Titlecase" (and (nth 13 fields) + (string (or (decode-char + 'ucs + (string-to-number + (nth 13 fields) 16)) + ??))))))))))) ;; Return information about how CHAR is displayed at the buffer ;; position POS. If the selected frame is on a graphic display, @@ -466,7 +458,6 @@ as well as widgets, buttons, overlays, and text properties." (error "No character follows specified position")) (let* ((char (char-after pos)) (charset (char-charset char)) - (buffer (current-buffer)) (composition (find-composition pos nil nil t)) (component-chars nil) (display-table (or (window-display-table) @@ -524,6 +515,13 @@ as well as widgets, buttons, overlays, and text properties." (push (format "%s:" (pop props)) ps) (push (format "%s;" (pop props)) ps)) (list (cons "Properties" (nreverse ps))))) + ("to input" + ,@(let ((key-list (and current-input-method + (quail-find-key char)))) + (if (consp key-list) + (list "type" + (mapconcat #'(lambda (x) (concat "\"" x "\"")) + key-list " or "))))) ("buffer code" ,(encoded-string-description (string-as-unibyte (char-to-string char)) nil)) diff --git a/lisp/emacs-lisp/cl-indent.el b/lisp/emacs-lisp/cl-indent.el index 2e6265d4dfd..c5e13a4c00f 100644 --- a/lisp/emacs-lisp/cl-indent.el +++ b/lisp/emacs-lisp/cl-indent.el @@ -216,8 +216,12 @@ If nil, indent backquoted lists as data, i.e., like quoted lists." (cond ((string-match "\\`def" function) (setq tentative-defun t)) - ((string-match "\\`\\(with\\|do\\)-" - function) + ((string-match + (eval-when-compile + (concat "\\`\\(" + (regexp-opt '("with" "without" "do")) + "\\)-")) + function) (setq method '(&lambda &body)))))) ;; backwards compatibility. Bletch. ((eq method 'defun) diff --git a/lisp/emacs-lisp/lisp-mode.el b/lisp/emacs-lisp/lisp-mode.el index 853498b0c8c..4057fe2968e 100644 --- a/lisp/emacs-lisp/lisp-mode.el +++ b/lisp/emacs-lisp/lisp-mode.el @@ -448,7 +448,7 @@ alternative printed representations that can be displayed." "Return a string representing CHAR as a character rather than as an integer. If CHAR is not a character, return nil." (and (integerp char) - (char-valid-p (event-basic-type char)) + (eventp char) (let ((c (event-basic-type char))) (concat "?" diff --git a/lisp/emacs-lisp/timer.el b/lisp/emacs-lisp/timer.el index 4ab2ac8e0d4..336a1ff82d0 100644 --- a/lisp/emacs-lisp/timer.el +++ b/lisp/emacs-lisp/timer.el @@ -161,7 +161,7 @@ fire repeatedly that many seconds apart." (aset timer 6 args) timer) -(defun timer-activate (timer) +(defun timer-activate (timer &optional triggered-p) "Put TIMER on the list of active timers." (if (and (timerp timer) (integerp (aref timer 1)) @@ -184,7 +184,7 @@ fire repeatedly that many seconds apart." (if last (setcdr last (cons timer timers)) (setq timer-list (cons timer timers))) - (aset timer 0 nil) + (aset timer 0 triggered-p) (aset timer 7 nil) nil) (error "Invalid or uninitialized timer"))) @@ -270,7 +270,7 @@ This function is called, by name, directly by the C code." (setq timer-event-last timer) (let ((inhibit-quit t)) (if (timerp timer) - (progn + (let (retrigger) ;; Delete from queue. (cancel-timer timer) ;; Re-schedule if requested. @@ -287,13 +287,16 @@ This function is called, by name, directly by the C code." (aref timer 4)))) (if (> repeats timer-max-repeats) (timer-inc-time timer (* (aref timer 4) repeats))))) - (timer-activate timer))) + (timer-activate timer t) + (setq retrigger t))) ;; Run handler. ;; We do this after rescheduling so that the handler function ;; can cancel its own timer successfully with cancel-timer. (condition-case nil (apply (aref timer 5) (aref timer 6)) - (error nil))) + (error nil)) + (if retrigger + (aset timer 0 nil))) (error "Bogus timer event")))) ;; This function is incompatible with the one in levents.el. diff --git a/lisp/eshell/.gitignore b/lisp/eshell/.gitignore index 16ccfcc8c0c..e1d7683a723 100644 --- a/lisp/eshell/.gitignore +++ b/lisp/eshell/.gitignore @@ -1 +1,14 @@ +COPYING +FEATURES +INSTALL +Makefile +NEWS +README +_darcs +_pkg.el +auto-autoloads.el esh-groups.el +esh-toggle.el +eshell-auto.el +eshell.info +eshell.texi diff --git a/lisp/eshell/esh-io.el b/lisp/eshell/esh-io.el index 8d1036b736e..d832fa9cd03 100644 --- a/lisp/eshell/esh-io.el +++ b/lisp/eshell/esh-io.el @@ -333,22 +333,23 @@ it defaults to `insert'." (cond ((stringp target) (let ((redir (assoc target eshell-virtual-targets))) - (if redir - (if (nth 2 redir) - (funcall (nth 1 redir) mode) - (nth 1 redir)) - (let* ((exists (get-file-buffer target)) - (buf (find-file-noselect target t))) - (with-current-buffer buf - (if buffer-read-only - (error "Cannot write to read-only file `%s'" target)) - (set (make-local-variable 'eshell-output-file-buffer) - (if (eq exists buf) 0 t)) - (cond ((eq mode 'overwrite) - (erase-buffer)) - ((eq mode 'append) - (goto-char (point-max)))) - (point-marker)))))) + (if redir + (if (nth 2 redir) + (funcall (nth 1 redir) mode) + (nth 1 redir)) + (let* ((exists (get-file-buffer target)) + (buf (find-file-noselect target t))) + (with-current-buffer buf + (if buffer-read-only + (error "Cannot write to read-only file `%s'" target)) + (set (make-local-variable 'eshell-output-file-buffer) + (if (eq exists buf) 0 t)) + (cond ((eq mode 'overwrite) + (erase-buffer)) + ((eq mode 'append) + (goto-char (point-max)))) + (point-marker)))))) + ((or (bufferp target) (and (boundp 'eshell-buffer-shorthand) (symbol-value 'eshell-buffer-shorthand) @@ -363,15 +364,18 @@ it defaults to `insert'." ((eq mode 'append) (goto-char (point-max)))) (point-marker)))) - ((functionp target) - nil) + + ((functionp target) nil) + ((symbolp target) (if (eq mode 'overwrite) (set target nil)) target) + ((or (eshell-processp target) (markerp target)) target) + (t (error "Illegal redirection target: %s" (eshell-stringify target))))) @@ -481,7 +485,8 @@ Returns what was actually sent, or nil if nothing was sent." (let ((moving (= (point) target))) (save-excursion (goto-char target) - (setq object (eshell-stringify object)) + (unless (stringp object) + (setq object (eshell-stringify object))) (insert-and-inherit object) (set-marker target (point-marker))) (if moving @@ -489,7 +494,8 @@ Returns what was actually sent, or nil if nothing was sent." ((eshell-processp target) (when (eq (process-status target) 'run) - (setq object (eshell-stringify object)) + (unless (stringp object) + (setq object (eshell-stringify object))) (process-send-string target object))) ((consp target) diff --git a/lisp/eshell/esh-test.el b/lisp/eshell/esh-test.el index 54edf5e35ab..076505da14e 100644 --- a/lisp/eshell/esh-test.el +++ b/lisp/eshell/esh-test.el @@ -167,13 +167,7 @@ (local-set-key [(control ?m)] 'eshell-test-goto-func) (local-set-key [return] 'eshell-test-goto-func) - (insert "Testing Eshell under " - (format "GNU Emacs %s (%s%s)" - emacs-version - system-configuration - (cond ((featurep 'motif) ", Motif") - ((featurep 'x-toolkit) ", X toolkit") - (t "")))) + (insert "Testing Eshell under " (emacs-version)) (switch-to-buffer test-buffer) (delete-other-windows)) (eshell-for funcname (sort (all-completions "eshell-test--" diff --git a/lisp/faces.el b/lisp/faces.el index 47dab153dba..7bcaf7b6f01 100644 --- a/lisp/faces.el +++ b/lisp/faces.el @@ -1309,9 +1309,12 @@ If FRAME is nil, the current FRAME is used." (memq 'tty options)) (and (memq 'motif options) (featurep 'motif)) + (and (memq 'gtk options) + (featurep 'gtk)) (and (memq 'lucid options) (featurep 'x-toolkit) - (not (featurep 'motif))) + (not (featurep 'motif)) + (not (featurep 'gtk))) (and (memq 'x-toolkit options) (featurep 'x-toolkit)))) ((eq req 'min-colors) diff --git a/lisp/files.el b/lisp/files.el index ca24de2862d..91da8a4c2c7 100644 --- a/lisp/files.el +++ b/lisp/files.el @@ -663,13 +663,12 @@ The truename of a file name is found by chasing symbolic links both at the level of the file and at the level of the directories containing it, until no links are left at any level. -The arguments COUNTER and PREV-DIRS are used only in recursive calls. -Do not specify them in other calls." - ;; COUNTER can be a cons cell whose car is the count of how many more links - ;; to chase before getting an error. +\(fn FILENAME)" + ;; COUNTER and PREV-DIRS are only used in recursive calls. + ;; COUNTER can be a cons cell whose car is the count of how many + ;; more links to chase before getting an error. ;; PREV-DIRS can be a cons cell whose car is an alist ;; of truenames we've just recently computed. - (cond ((or (string= filename "") (string= filename "~")) (setq filename (expand-file-name filename)) (if (string= filename "") @@ -2330,7 +2329,7 @@ However, the mode will not be changed if (defun set-visited-file-name (filename &optional no-query along-with-file) "Change name of file visited in current buffer to FILENAME. The next time the buffer is saved it will go in the newly specified file. -nil or empty string as argument means make buffer not be visiting any file. +FILENAME nil or an empty string means make buffer not be visiting any file. Remember to delete the initial contents of the minibuffer if you wish to pass an empty string as the argument. @@ -4024,7 +4023,7 @@ by `sh' are supported." "Expand wildcard pattern PATTERN. This returns a list of file names which match the pattern. -If PATTERN is written as an absolute relative file name, +If PATTERN is written as an absolute file name, the values are absolute also. If PATTERN is written as a relative file name, it is interpreted diff --git a/lisp/generic.el b/lisp/generic.el index bd6fa0608aa..ca4b47ff4b1 100644 --- a/lisp/generic.el +++ b/lisp/generic.el @@ -1,6 +1,6 @@ ;;; generic.el --- defining simple major modes with comment and font-lock ;; -;; Copyright (C) 1997, 1999 Free Software Foundation, Inc. +;; Copyright (C) 1997, 1999, 2004 Free Software Foundation, Inc. ;; ;; Author: Peter Breton <pbreton@cs.umb.edu> ;; Created: Fri Sep 27 1996 @@ -188,9 +188,6 @@ regexp in `generic-find-file-regexp'. If the value is nil, &optional description) "Create a new generic mode with NAME. -Args: (NAME COMMENT-LIST KEYWORD-LIST FONT-LOCK-LIST AUTO-MODE-LIST - FUNCTION-LIST &optional DESCRIPTION) - NAME should be a symbol; its string representation is used as the function name. If DESCRIPTION is provided, it is used as the docstring for the new function. diff --git a/lisp/gnus/ChangeLog b/lisp/gnus/ChangeLog index e2cea8301ec..00a2634ee8c 100644 --- a/lisp/gnus/ChangeLog +++ b/lisp/gnus/ChangeLog @@ -1,3 +1,8 @@ +2004-05-18 Stefan Monnier <monnier@iro.umontreal.ca> + + * gnus-win.el (gnus-all-windows-visible-p): Don't consider + non-visible windows. + 2004-05-07 Stefan Monnier <monnier@iro.umontreal.ca> * rfc2047.el (rfc2047-encode-message-header): Don't encode non-address diff --git a/lisp/gnus/gnus-win.el b/lisp/gnus/gnus-win.el index fa082e7c1d0..4d0c18a8daf 100644 --- a/lisp/gnus/gnus-win.el +++ b/lisp/gnus/gnus-win.el @@ -1,5 +1,5 @@ ;;; gnus-win.el --- window configuration functions for Gnus -;; Copyright (C) 1996, 1997, 1998, 1999, 2000, 2002 +;; Copyright (C) 1996, 97, 98, 1999, 2000, 02, 2004 ;; Free Software Foundation, Inc. ;; Author: Lars Magne Ingebrigtsen <larsi@gnus.org> @@ -516,7 +516,7 @@ should have point." (unless buffer (error "Invalid buffer type: %s" type)) (if (and (setq buf (get-buffer (gnus-window-to-buffer-helper buffer))) - (setq win (get-buffer-window buf t))) + (setq win (get-buffer-window buf 0))) (if (memq 'point split) (setq all-visible win)) (setq all-visible nil))) diff --git a/lisp/help-fns.el b/lisp/help-fns.el index df8f9359853..e0692119a21 100644 --- a/lisp/help-fns.el +++ b/lisp/help-fns.el @@ -158,31 +158,31 @@ and the file name is displayed in the echo area." ;; Return the text we displayed. (buffer-string)))))) -(defun help-split-fundoc (doc def) - "Split a function docstring DOC into the actual doc and the usage info. +(defun help-split-fundoc (docstring def) + "Split a function DOCSTRING into the actual doc and the usage info. Return (USAGE . DOC) or nil if there's no usage info. -DEF is the function whose usage we're looking for in DOC." +DEF is the function whose usage we're looking for in DOCSTRING." ;; Functions can get the calling sequence at the end of the doc string. ;; In cases where `function' has been fset to a subr we can't search for ;; function's name in the doc string so we use `fn' as the anonymous ;; function name instead. - (when (and doc (string-match "\n\n(fn\\(\\( .*\\)?)\\)\\'" doc)) + (when (and docstring (string-match "\n\n(fn\\(\\( .*\\)?)\\)\\'" docstring)) (cons (format "(%s%s" ;; Replace `fn' with the actual function name. (if (consp def) "anonymous" def) - (match-string 1 doc)) - (substring doc 0 (match-beginning 0))))) - -(defun help-add-fundoc-usage (doc arglist) - "Add the usage info to the docstring DOC. -If DOC already has a usage info, then just return DOC unchanged. -The usage info is built from ARGLIST. DOC can be nil. -ARGLIST can also be t or a string of the form \"(fun ARG1 ARG2 ...)\"." - (unless (stringp doc) (setq doc "Not documented")) - (if (or (string-match "\n\n(fn\\(\\( .*\\)?)\\)\\'" doc) (eq arglist t)) - doc - (format "%s%s%S" doc - (if (string-match "\n?\n\\'" doc) + (match-string 1 docstring)) + (substring docstring 0 (match-beginning 0))))) + +(defun help-add-fundoc-usage (docstring arglist) + "Add the usage info to DOCSTRING. +If DOCSTRING already has a usage info, then just return it unchanged. +The usage info is built from ARGLIST. DOCSTRING can be nil. +ARGLIST can also be t or a string of the form \"(FUN ARG1 ARG2 ...)\"." + (unless (stringp docstring) (setq docstring "Not documented")) + (if (or (string-match "\n\n(fn\\(\\( .*\\)?)\\)\\'" docstring) (eq arglist t)) + docstring + (format "%s%s%S" docstring + (if (string-match "\n?\n\\'" docstring) (if (< (- (match-end 0) (match-beginning 0)) 2) "\n" "") "\n\n") (if (and (stringp arglist) @@ -237,8 +237,14 @@ KIND should be `var' for a variable or `subr' for a subroutine." (concat "src/" file) file))))) -(defface help-argument-name '((t (:slant italic))) - "Face to highlight function arguments in docstrings.") +(defun help-default-arg-highlight (arg) + "Default function to highlight arguments in *Help* buffers. +It returns ARG in lowercase italics, if the display supports it; +else ARG is returned in uppercase normal." + (let ((attrs '(:slant italic))) + (if (display-supports-face-attributes-p attrs) + (propertize (downcase arg) 'face attrs) + arg))) (defun help-do-arg-highlight (doc args) (with-syntax-table (make-syntax-table emacs-lisp-mode-syntax-table) @@ -246,8 +252,17 @@ KIND should be `var' for a variable or `subr' for a subroutine." (while args (let ((arg (prog1 (car args) (setq args (cdr args))))) (setq doc (replace-regexp-in-string - (concat "\\<\\(" arg "\\)\\(?:es\\|s\\|th\\)?\\>") - (propertize arg 'face 'help-argument-name) + ;; This is heuristic, but covers all common cases + ;; except ARG1-ARG2 + (concat "\\<" ; beginning of word + "\\(?:[a-z-]+-\\)?" ; for xxx-ARG + "\\(" + arg + "\\)" + "\\(?:es\\|s\\|th\\)?" ; for ARGth, ARGs + "\\(?:-[a-z-]+\\)?" ; for ARG-xxx + "\\>") ; end of word + (help-default-arg-highlight arg) doc t t 1)))) doc)) diff --git a/lisp/ibuf-macs.el b/lisp/ibuf-macs.el index d6b4c2e1da8..effcafd9240 100644 --- a/lisp/ibuf-macs.el +++ b/lisp/ibuf-macs.el @@ -93,7 +93,9 @@ Note that this macro expands into a `defun' for a function named ibuffer-make-column-NAME. If INLINE is non-nil, then the form will be inlined into the compiled format versions. This means that if you change its definition, you should explicitly call -`ibuffer-recompile-formats'." +`ibuffer-recompile-formats'. + +\(fn SYMBOL (&key NAME INLINE PROPS SUMMARIZER) &rest BODY)" (let* ((sym (intern (concat "ibuffer-make-column-" (symbol-name symbol)))) (bod-1 `(with-current-buffer buffer @@ -135,7 +137,9 @@ DESCRIPTION is a short string describing the sorting method. For sorting, the forms in BODY will be evaluated with `a' bound to one buffer object, and `b' bound to another. BODY should return a non-nil -value if and only if `a' is \"less than\" `b'." +value if and only if `a' is \"less than\" `b'. + +\(fn NAME DOCUMENTATION (&key DESCRIPTION) &rest BODY)" `(progn (defun ,(intern (concat "ibuffer-do-sort-by-" (symbol-name name))) () ,(or documentation "No :documentation specified for this sorting method.") @@ -189,7 +193,9 @@ ACTIVE-OPSTRING is a string which will be displayed to the user in a confirmation message, in the form: \"Really ACTIVE-OPSTRING x buffers?\" COMPLEX means this function is special; see the source code of this -macro for exactly what it does." +macro for exactly what it does. + +\(fn OP ARGS DOCUMENTATION (&key INTERACTIVE MARK MODIFIER-P DANGEROUS OPSTRING ACTIVE-OPSTRING COMPLEX) &rest BODY)" `(progn (defun ,(intern (concat (if (string-match "^ibuffer-do" (symbol-name op)) "" "ibuffer-do-") (symbol-name op))) @@ -265,7 +271,9 @@ DESCRIPTION is a short string describing the filter. BODY should contain forms which will be evaluated to test whether or not a particular buffer should be displayed or not. The forms in BODY will be evaluated with BUF bound to the buffer object, and QUALIFIER -bound to the current value of the filter." +bound to the current value of the filter. + +\(fn NAME DOCUMENTATION (&key READER DESCRIPTION) &rest BODY)" (let ((fn-name (intern (concat "ibuffer-filter-by-" (symbol-name name))))) `(progn (defun ,fn-name (qualifier) diff --git a/lisp/iimage.el b/lisp/iimage.el new file mode 100644 index 00000000000..d138498ca3a --- /dev/null +++ b/lisp/iimage.el @@ -0,0 +1,134 @@ +;;; iimage.el --- Inline image minor mode. + +;; Copyright (C) 2004 Free Software Foundation + +;; Author: KOSEKI Yoshinori <kose@meadowy.org> +;; Maintainer: KOSEKI Yoshinori <kose@meadowy.org> +;; Keywords: multimedia + +;; This file is part of GNU Emacs. + +;; GNU Emacs is free software; you can redistribute it and/or modify +;; it under the terms of the GNU General Public License as published by +;; the Free Software Foundation; either version 2, or (at your option) +;; any later version. + +;; GNU Emacs is distributed in the hope that it will be useful, +;; but WITHOUT ANY WARRANTY; without even the implied warranty of +;; MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +;; GNU General Public License for more details. + +;; You should have received a copy of the GNU General Public License +;; along with GNU Emacs; see the file COPYING. If not, write to the +;; Free Software Foundation, Inc., 59 Temple Place - Suite 330, +;; Boston, MA 02111-1307, USA. + +;;; Commentary: + +;; Iimage is a minor mode that display a images, when image-filename +;; exists in buffer. +;; http://www.netlaputa.ne.jp/~kose/Emacs/iimage.html +;; +;; Add to your `~/.emacs': +;; (autoload 'iimage-mode "iimage" "SUpport Inline image minor mode." t) +;; +;; ** Display images in *Info* buffer. +;; +;; (add-hook 'info-mode-hook 'turn-on-iimage-mode) +;; +;; .texinfo: @file{file://foo.png} +;; .info: `file://foo.png' +;; +;; ** Display images in Wiki buffer. +;; +;; (add-hook 'wiki-mode-hook 'turn-on-iimage-mode) +;; +;; wiki-file: [[foo.png]] + +;;; Code: + +(eval-when-compile + (require 'image-file)) + +(defconst iimage-version "1.0") +(defvar iimage-mode nil) +(defvar iimage-mode-map nil) + +;; Set up key map. +(unless iimage-mode-map + (setq iimage-mode-map (make-sparse-keymap)) + (define-key iimage-mode-map "\C-l" 'iimage-recenter)) + +(defun iimage-recenter (&optional arg) +"Re-draw images and recenter." + (interactive "P") + (iimage-mode-buffer 0) + (iimage-mode-buffer 1) + (recenter arg)) + +(defvar iimage-mode-image-filename-regex + (concat "[-+./_0-9a-zA-Z]+\\." + (regexp-opt (nconc (mapcar #'upcase + image-file-name-extensions) + image-file-name-extensions) + t))) + +(defvar iimage-mode-image-regex-alist + `((,(concat "\\(`?file://\\|\\[\\[\\|<\\|`\\)?" + "\\(" iimage-mode-image-filename-regex "\\)" + "\\(\\]\\]\\|>\\|'\\)?") . 2)) +"*Alist of filename REGEXP vs NUM. +Each element looks like (REGEXP . NUM). +NUM specifies which parenthesized expression in the regexp. + +image filename regex exsamples: + file://foo.png + `file://foo.png' + \\[\\[foo.gif]] + <foo.png> + foo.JPG +") + +(defun turn-on-iimage-mode () +"Unconditionally turn on iimage mode." + (interactive) + (iimage-mode 1)) + +(defun turn-off-iimage-mode () +"Unconditionally turn off iimage mode." + (interactive) + (iimage-mode 0)) + +(defun iimage-mode-buffer (arg) +"Display/Undisplay Images. +With numeric ARG, display the images if and only if ARG is positive." + (interactive) + (let ((ing (if (numberp arg) + (> arg 0) + iimage-mode)) + (modp (buffer-modified-p (current-buffer))) + file buffer-read-only) + (save-excursion + (goto-char (point-min)) + (dolist (pair iimage-mode-image-regex-alist) + (while (re-search-forward (car pair) nil t) + (if (and (setq file (match-string (cdr pair))) + (setq file (expand-file-name file default-directory)) + (file-exists-p file)) + (if ing + (add-text-properties (match-beginning 0) (match-end 0) + (list 'display (create-image file))) + (remove-text-properties (match-beginning 0) (match-end 0) + '(display))))))) + (set-buffer-modified-p modp))) + +(define-minor-mode iimage-mode + "Toggle inline image minor mode." + nil " iImg" iimage-mode-map + (run-hooks 'iimage-mode-hook) + (iimage-mode-buffer iimage-mode)) + +(provide 'iimage) + +;;; arch-tag: f6f8e29a-08f6-4a12-9496-51e67441ce65 +;;; iimage.el ends here diff --git a/lisp/international/quail.el b/lisp/international/quail.el index 9e289c300d9..d10e215881b 100644 --- a/lisp/international/quail.el +++ b/lisp/international/quail.el @@ -1043,9 +1043,13 @@ which to install MAP. The installed decode map can be referred by the function `quail-decode-map'." (if (null quail-current-package) (error "No current Quail package")) - (if (not (and (consp decode-map) (eq (car decode-map) 'decode-map))) - (error "Invalid Quail decode map `%s'" decode-map)) - (setcar (nthcdr 10 quail-current-package) decode-map)) + (if (if (consp decode-map) + (eq (car decode-map) 'decode-map) + (if (char-table-p decode-map) + (eq (char-table-subtype decode-map) 'quail-decode-map))) + (setcar (nthcdr 10 quail-current-package) decode-map) + (error "Invalid Quail decode map `%s'" decode-map))) + ;;;###autoload (defun quail-defrule (key translation &optional name append) @@ -2590,6 +2594,143 @@ KEY BINDINGS FOR CONVERSION (quail-update-guidance) )))) +;; Add KEY (string) to the element of TABLE (char-table) for CHAR if +;; it is not yet stored. As a result, the element is a string or a +;; list of strings. + +(defsubst quail-store-decode-map-key (table char key) + (let ((elt (aref table char))) + (if elt + (if (consp elt) + (or (member key elt) + (aset table char (cons key elt))) + (or (string= key elt) + (aset table char (list key elt)))) + (aset table char key)))) + +;; Helper function for quail-gen-decode-map. Store key strings to +;; type each character under MAP in TABLE (char-table). MAP is an +;; element of the current Quail map reached by typing keys in KEY +;; (string). + +(defun quail-gen-decode-map1 (map key table) + (when (and (consp map) (listp (cdr map))) + (let ((trans (car map))) + (cond ((integerp trans) + (quail-store-decode-map-key table trans key)) + ((stringp trans) + (dotimes (i (length trans)) + (quail-store-decode-map-key table (aref trans i) key))) + ((or (vectorp trans) + (and (consp trans) + (setq trans (cdr trans)))) + (dotimes (i (length trans)) + (let ((elt (aref trans i))) + (if (stringp elt) + (if (= (length elt) 1) + (quail-store-decode-map-key table (aref elt 0) key)) + (quail-store-decode-map-key table elt key))))))) + (if (> (length key) 1) + (dolist (elt (cdr map)) + (quail-gen-decode-map1 (cdr elt) key table)) + (dolist (elt (cdr map)) + (quail-gen-decode-map1 (cdr elt) (format "%s%c" key (car elt)) + table))))) + +(put 'quail-decode-map 'char-table-extra-slots 0) + +;; Generate a halfly-cooked decode map (char-table) for the current +;; Quail map. An element for a character C is a key string or a list +;; of a key strings to type to input C. The lenth of key string is at +;; most 2. If it is 2, more keys may be required to input C. + +(defun quail-gen-decode-map () + (let ((table (make-char-table 'quail-decode-map nil))) + (dolist (elt (cdr (quail-map))) + (quail-gen-decode-map1 (cdr elt) (string (car elt)) table)) + table)) + +;; Helper function for quail-find-key. Prepend key strings to type +;; for inputting CHAR by the current input method to KEY-LIST and +;; return the result. MAP is an element of the current Quail map +;; reached by typing keys in KEY. + +(defun quail-find-key1 (map key char key-list) + (let ((trans (car map)) + (found-here nil)) + (cond ((stringp trans) + (setq found-here + (and (= (length trans) 1) (= (aref trans 0) char)))) + ((or (vectorp trans) (consp trans)) + (if (consp trans) + (setq trans (cdr trans))) + (setq found-here + (catch 'tag + (dotimes (i (length trans)) + (let ((target (aref trans i))) + (if (integerp target) + (if (= target char) + (throw 'tag t)) + (if (and (= (length target) 1) + (= (aref target 0) char)) + (throw 'tag t)))))))) + ((integerp trans) + (if (= trans char) + (setq found-here t)))) + (if found-here + (setq key-list (cons key key-list))) + (if (> (length key) 1) + (dolist (elt (cdr map)) + (setq key-list + (quail-find-key1 (cdr elt) (format "%s%c" key (car elt)) + char key-list)))) + key-list)) + +(defun quail-find-key (char) + "Return a list of keys to type to input CHAR in the current input method. +If CHAR is an ASCII character and can be input by typing itself, return t." + (let ((decode-map (or (quail-decode-map) + (setcar (nthcdr 10 quail-current-package) + (quail-gen-decode-map)))) + (key-list nil)) + (if (consp decode-map) + (let ((str (string char))) + (mapc #'(lambda (elt) + (if (string= str (car elt)) + (setq key-list (cons (cdr elt) key-list)))) + (cdr decode-map))) + (let ((key-head (aref decode-map char))) + (if (stringp key-head) + (setq key-list (quail-find-key1 + (quail-lookup-key key-head nil t) + key-head char nil)) + (mapc #'(lambda (elt) + (setq key-list + (quail-find-key1 + (quail-lookup-key elt nil t) elt char key-list))) + key-head)))) + (or key-list + (and (< char 128) + (not (quail-lookup-key (string char) 1)))))) + +(defun quail-show-key () + "Show a list of key strings to type for inputting a character at point." + (interactive) + (or current-input-method + (error "No input method is activated")) + (let* ((char (following-char)) + (key-list (quail-find-key char))) + (cond ((consp key-list) + (message "To input `%c', type \"%s\"" + char + (mapconcat 'identity key-list "\", \""))) + ((eq key-list t) + (message "To input `%s', just type it" + (single-key-description char))) + (t + (message "%c can't be input by the current input method" char))))) + + ;; Quail map generator from state transition table. (defun quail-map-from-table (table) diff --git a/lisp/iswitchb.el b/lisp/iswitchb.el index 9b124848b18..bda0ce4fddc 100644 --- a/lisp/iswitchb.el +++ b/lisp/iswitchb.el @@ -315,7 +315,7 @@ enabled if this variable is configured to a non-nil value." :require 'recentf :set (function (lambda (sym value) - (recentf-mode value) + (if value (recentf-mode 1)) (set sym value))) :group 'iswitchb) diff --git a/lisp/language/european.el b/lisp/language/european.el index 0719244b950..7c51ec4d556 100644 --- a/lisp/language/european.el +++ b/lisp/language/european.el @@ -451,6 +451,19 @@ and it selects the Spanish tutorial.")) (unibyte-display . iso-8859-2) (documentation . "Support for Croatian with Latin-2 encoding.")) '("European")) + +(set-language-info-alist + "Brazilian Portuguese" '((tutorial . "TUTORIAL.pt_BR") + (charset ascii latin-iso8859-1) + (coding-system iso-latin-1 iso-latin-9) + (coding-priority iso-latin-1) + (nonascii-translation . latin-iso8859-1) + (unibyte-syntax . "latin-1") + (unibyte-display . iso-latin-1) + (input-method . "latin-1-prefix") + (sample-text . "Oi") + (documentation . "Support for Brazilian Portuguese.")) + '("European")) ;; Definitions for the Mac Roman character sets and coding system. ;; The Mac Roman encoding uses all 128 code points in the range 128 to diff --git a/lisp/mail/rfc2368.el b/lisp/mail/rfc2368.el index 07ea44cef04..5d603d7be26 100644 --- a/lisp/mail/rfc2368.el +++ b/lisp/mail/rfc2368.el @@ -120,12 +120,13 @@ calling this function." ;; deal w/ multiple 'To' recipients (if prequery (progn + (setq prequery (rfc2368-unhexify-string prequery)) (if (assoc "To" headers-alist) (let* ((our-cons-cell (assoc "To" headers-alist)) (our-cdr (cdr our-cons-cell))) - (setcdr our-cons-cell (concat our-cdr ", " prequery))) + (setcdr our-cons-cell (concat prequery ", " our-cdr))) (setq headers-alist (cons (cons "To" prequery) headers-alist))))) diff --git a/lisp/mail/unrmail.el b/lisp/mail/unrmail.el index 55f611b53ad..db6990d625b 100644 --- a/lisp/mail/unrmail.el +++ b/lisp/mail/unrmail.el @@ -51,43 +51,71 @@ For example, invoke `emacs -batch -f batch-unrmail RMAIL'." (defun unrmail (file to-file) "Convert Rmail file FILE to system inbox format file TO-FILE." (interactive "fUnrmail (rmail file): \nFUnrmail into (new mailbox file): ") - (let ((message-count 1) - ;; Prevent rmail from making, or switching to, a summary buffer. - (rmail-display-summary nil) - (rmail-delete-after-output nil) - (temp-buffer (get-buffer-create " unrmail"))) - (rmail file) + (with-temp-buffer + ;; Read in the old Rmail file with no decoding. + (let ((coding-system-for-read 'raw-text)) + (insert-file-contents file)) + ;; But make it multibyte. + (set-buffer-multibyte t) + + (if (not (looking-at "BABYL OPTIONS")) + (error "This file is not in Babyl format")) + + ;; Decode the file contents just as Rmail did. + (let ((modifiedp (buffer-modified-p)) + (coding-system rmail-file-coding-system) + from to) + (goto-char (point-min)) + (search-forward "\n\^_" nil t) ; Skip BABYL header. + (setq from (point)) + (goto-char (point-max)) + (search-backward "\n\^_" from 'mv) + (setq to (point)) + (unless (and coding-system + (coding-system-p coding-system)) + (setq coding-system + ;; Emacs 21.1 and later writes RMAIL files in emacs-mule, but + ;; earlier versions did that with the current buffer's encoding. + ;; So we want to favor detection of emacs-mule (whose normal + ;; priority is quite low), but still allow detection of other + ;; encodings if emacs-mule won't fit. The call to + ;; detect-coding-with-priority below achieves that. + (car (detect-coding-with-priority + from to + '((coding-category-emacs-mule . emacs-mule)))))) + (unless (memq coding-system + '(undecided undecided-unix)) + (set-buffer-modified-p t) ; avoid locking when decoding + (let ((buffer-undo-list t)) + (decode-coding-region from to coding-system)) + (setq coding-system last-coding-system-used)) + + (setq buffer-file-coding-system nil) + + ;; We currently don't use this value, but maybe we should. + (setq save-buffer-coding-system + (or coding-system 'undecided))) + ;; Default the directory of TO-FILE based on where FILE is. (setq to-file (expand-file-name to-file default-directory)) (condition-case () (delete-file to-file) (file-error nil)) (message "Writing messages to %s..." to-file) - (save-restriction - (widen) - (while (<= message-count rmail-total-messages) - (let ((beg (rmail-msgbeg message-count)) - (end (rmail-msgbeg (1+ message-count))) - (from-buffer (current-buffer)) - (coding (or rmail-file-coding-system 'raw-text)) + (goto-char (point-min)) + + (let ((temp-buffer (get-buffer-create " unrmail")) + (from-buffer (current-buffer))) + + ;; Process the messages one by one. + (while (search-forward "\^_\^l" nil t) + (let ((beg (point)) + (end (save-excursion + (if (search-forward "\^_" nil t) + (1- (point)) (point-max)))) + (coding 'raw-text) label-line attrs keywords - header-beginning mail-from) - (save-excursion - (goto-char (rmail-msgbeg message-count)) - (setq header-beginning (point)) - (search-forward "\n*** EOOH ***\n") - (forward-line -1) - (search-forward "\n\n") - (save-restriction - (narrow-to-region header-beginning (point)) - (setq mail-from - (or (mail-fetch-field "Mail-From") - (concat "From " - (mail-strip-quoted-names (or (mail-fetch-field "from") - (mail-fetch-field "really-from") - (mail-fetch-field "sender") - "unknown")) - " " (current-time-string)))))) + mail-from reformatted) (with-current-buffer temp-buffer (setq buffer-undo-list t) (erase-buffer) @@ -95,11 +123,15 @@ For example, invoke `emacs -batch -f batch-unrmail RMAIL'." (insert-buffer-substring from-buffer beg end) (goto-char (point-min)) (forward-line 1) + ;; Record whether the header is reformatted. + (setq reformatted (= (following-char) ?1)) + + ;; Collect the label line, then get the attributes + ;; and the keywords from it. (setq label-line (buffer-substring (point) - (progn (forward-line 1) - (point)))) - (forward-line -1) + (save-excursion (forward-line 1) + (point)))) (search-forward ",,") (unless (eolp) (setq keywords @@ -118,9 +150,61 @@ For example, invoke `emacs -batch -f batch-unrmail RMAIL'." (if (string-match ", resent," label-line) ?R ?-) (if (string-match ", unseen," label-line) ?\ ?-) (if (string-match ", stored," label-line) ?S ?-))) - (unrmail-unprune) + + ;; Delete the special Babyl lines at the start, + ;; and the ***EOOH*** line, and the reformatted header if any. + (goto-char (point-min)) + (if reformatted + (progn + (forward-line 2) + ;; Delete Summary-Line headers. + (let ((case-fold-search t)) + (while (looking-at "Summary-Line:") + (forward-line 1))) + (delete-region (point-min) (point)) + ;; Delete the old reformatted header. + (re-search-forward "^[*][*][*] EOOH [*][*][*]\n") + (forward-line -1) + (let ((start (point))) + (search-forward "\n\n") + (delete-region start (point)))) + ;; Not reformatted. Delete the special + ;; lines before the real header. + (re-search-forward "^[*][*][*] EOOH [*][*][*]\n") + (delete-region (point-min) (point))) + + ;; Some operations on the message header itself. (goto-char (point-min)) + (save-restriction + (narrow-to-region + (point-min) + (save-excursion (search-forward "\n\n" nil 'move) (point))) + + ;; Fetch or construct what we should use in the `From ' line. + (setq mail-from + (or (mail-fetch-field "Mail-From") + (concat "From " + (mail-strip-quoted-names (or (mail-fetch-field "from") + (mail-fetch-field "really-from") + (mail-fetch-field "sender") + "unknown")) + " " (current-time-string)))) + + ;; If the message specifies a coding system, use it. + (let ((maybe-coding (mail-fetch-field "X-Coding-System"))) + (if maybe-coding + (setq coding (intern maybe-coding)))) + + ;; Delete the Mail-From: header field if any. + (when (re-search-forward "^Mail-from:" nil t) + (beginning-of-line) + (delete-region (point) + (progn (forward-line 1) (point))))) + + (goto-char (point-min)) + ;; Insert the `From ' line. (insert mail-from "\n") + ;; Record the keywords and attributes in our special way. (insert "X-BABYL-V6-ATTRIBUTES: " (apply 'string attrs) "\n") (when keywords (insert "X-BABYL-V6-KEYWORDS: " keywords "\n")) @@ -132,43 +216,12 @@ For example, invoke `emacs -batch -f batch-unrmail RMAIL'." (while (search-forward "\nFrom " nil t) (forward-char -5) (insert ?>))) + ;; Write it to the output file. (write-region (point-min) (point-max) to-file t - 'nomsg))) - (setq message-count (1+ message-count)))) + 'nomsg)))) + (kill-buffer temp-buffer)) (message "Writing messages to %s...done" to-file))) -(defun unrmail-unprune () - (let* ((pruned - (save-excursion - (goto-char (point-min)) - (forward-line 1) - (= (following-char) ?1)))) - (if pruned - (progn - (goto-char (point-min)) - (forward-line 2) - ;; Delete Summary-Line headers. - (let ((case-fold-search t)) - (while (looking-at "Summary-Line:") - (forward-line 1))) - (delete-region (point-min) (point)) - ;; Delete the old reformatted header. - (re-search-forward "^[*][*][*] EOOH [*][*][*]\n") - (forward-line -1) - (let ((start (point))) - (search-forward "\n\n") - (delete-region start (point)))) - ;; Delete everything up to the real header. - (goto-char (point-min)) - (re-search-forward "^[*][*][*] EOOH [*][*][*]\n") - (delete-region (point-min) (point))) - (goto-char (point-min)) - (when (re-search-forward "^Mail-from:") - (beginning-of-line) - (delete-region (point) - (progn (forward-line 1) (point)))))) - - (provide 'unrmail) ;;; unrmail.el ends here diff --git a/lisp/man.el b/lisp/man.el index 7222c1bad15..983be4a91cc 100644 --- a/lisp/man.el +++ b/lisp/man.el @@ -732,11 +732,13 @@ all sections related to a subject, put something appropriate into the (setenv "GROFF_NO_SGR" "1") (if (fboundp 'start-process) (set-process-sentinel - (start-process manual-program buffer "sh" "-c" + (start-process manual-program buffer + shell-file-name shell-command-switch (format (Man-build-man-command) man-args)) 'Man-bgproc-sentinel) (let ((exit-status - (call-process shell-file-name nil (list buffer nil) nil "-c" + (call-process shell-file-name nil (list buffer nil) nil + shell-command-switch (format (Man-build-man-command) man-args))) (msg "")) (or (and (numberp exit-status) diff --git a/lisp/net/telnet.el b/lisp/net/telnet.el index d42c4335daa..40a28494774 100644 --- a/lisp/net/telnet.el +++ b/lisp/net/telnet.el @@ -1,6 +1,6 @@ ;;; telnet.el --- run a telnet session from within an Emacs buffer -;; Copyright (C) 1985, 1988, 1992, 1994 Free Software Foundation, Inc. +;; Copyright (C) 1985, 88, 1992, 94, 2004 Free Software Foundation, Inc. ;; Author: William F. Schelter ;; Maintainer: FSF @@ -240,22 +240,13 @@ Normally input is edited in Emacs and sent a line at a time." (put 'telnet-mode 'mode-class 'special) -(defun telnet-mode () +(define-derived-mode telnet-mode comint-mode "Telnet" "This mode is for using telnet (or rsh) from a buffer to another host. It has most of the same commands as comint-mode. There is a variable ``telnet-interrupt-string'' which is the character sent to try to stop execution of a job on the remote host. -Data is sent to the remote host when RET is typed. - -\\{telnet-mode-map} -" - (interactive) - (comint-mode) - (setq major-mode 'telnet-mode - mode-name "Telnet" - comint-prompt-regexp telnet-prompt-pattern) - (use-local-map telnet-mode-map) - (run-hooks 'telnet-mode-hook)) +Data is sent to the remote host when RET is typed." + (set (make-local-variable 'comint-prompt-regexp) telnet-prompt-pattern)) ;;;###autoload (add-hook 'same-window-regexps "\\*rsh-[^-]*\\*\\(\\|<[0-9]*>\\)") diff --git a/lisp/progmodes/compile.el b/lisp/progmodes/compile.el index ec381ad8a15..da43b7b7098 100644 --- a/lisp/progmodes/compile.el +++ b/lisp/progmodes/compile.el @@ -171,8 +171,15 @@ of[ \t]+\"?\\([a-zA-Z]?:?[^\":\n]+\\)\"?:" 3 2 nil (1)) "^\"\\([^,\" \n\t]+\\)\", line \\([0-9]+\\)\ \\(?:[(. pos]+\\([0-9]+\\))?\\)?[:.,; (-]\\( warning:\\|[-0-9 ]*(W)\\)?" 1 2 3 (4)) + (edg-1 + "^\\([^ \n]+\\)(\\([0-9]+\\)): \\(?:error\\|warnin\\(g\\)\\|remar\\(k\\)\\)" + 1 2 nil (3 . 4)) + (edg-2 + "at line \\([0-9]+\\) of \"\\([^ \n]+\\)\"$" + 2 1 nil 0) + (epc - "^Error [0-9]+ at (\\([0-9]*\\):\\([^)\n]+\\))" 2 1) + "^Error [0-9]+ at (\\([0-9]+\\):\\([^)\n]+\\))" 2 1) (iar "^\"\\(.*\\)\",\\([0-9]+\\)\\s-+\\(?:Error\\|Warnin\\(g\\)\\)\\[[0-9]+\\]:" @@ -265,10 +272,6 @@ File = \\(.+\\), Line = \\([0-9]+\\)\\(?:, Column = \\([0-9]+\\)\\)?" (sun-ada "^\\([^, \n\t]+\\), line \\([0-9]+\\), char \\([0-9]+\\)[:., \(-]" 1 2 3) - ;; Redundant with `mips' -;; (ultrix -;; "^\\(?:cfe\\|fort\\): \\(Warning\\)?[^:\n]*: \\([^ \n]*\\), line \\([0-9]+\\):" 2 3 nil (1)) - (4bsd "\\(?:^\\|:: \\|\\S ( \\)\\(/[^ \n\t()]+\\)(\\([0-9]+\\))\ \\(?:: \\(warning:\\)?\\|$\\| ),\\)" 1 2 nil (3))) @@ -445,17 +448,19 @@ starting the compilation process.") (defvar compile-history nil) (defface compilation-warning-face - '((((type tty) (class color)) (:foreground "cyan" :weight bold)) - (((class color)) (:foreground "Orange" :weight bold)) + '((((class color) (min-colors 16)) (:foreground "Orange" :weight bold)) + (((class color)) (:foreground "cyan" :weight bold)) (t (:weight bold))) "Face used to highlight compiler warnings." :group 'font-lock-highlighting-faces :version "21.4") (defface compilation-info-face - '((((type tty) (class color)) (:foreground "green" :weight bold)) - (((class color) (background light)) (:foreground "Green3" :weight bold)) - (((class color) (background dark)) (:foreground "Green" :weight bold)) + '((((class color) (min-colors 16) (background light)) + (:foreground "Green3" :weight bold)) + (((class color) (min-colors 16) (background dark)) + (:foreground "Green" :weight bold)) + (((class color)) (:foreground "green" :weight bold)) (t (:weight bold))) "Face used to highlight compiler warnings." :group 'font-lock-highlighting-faces @@ -749,6 +754,8 @@ and move to the source code that caused it. Interactively, prompts for the command if `compilation-read-command' is non-nil; otherwise uses `compile-command'. With prefix arg, always prompts. +Additionally, with universal prefix arg, compilation buffer will be in +comint mode, i.e. interactive. To run more than one compilation at once, start one and rename the \`*compilation*' buffer to some other name with @@ -760,11 +767,13 @@ The name used for the buffer is actually whatever is returned by the function in `compilation-buffer-name-function', so you can set that to a function that generates a unique name." (interactive - (if (or compilation-read-command current-prefix-arg) - (list (read-from-minibuffer "Compile command: " - (eval compile-command) nil nil - '(compile-history . 1))) - (list (eval compile-command)))) + (list + (if (or compilation-read-command current-prefix-arg) + (read-from-minibuffer "Compile command: " + (eval compile-command) nil nil + '(compile-history . 1)) + (eval compile-command)) + (consp current-prefix-arg))) (unless (equal command (eval compile-command)) (setq compile-command command)) (save-some-buffers (not compilation-ask-about-save) nil) @@ -983,8 +992,9 @@ exited abnormally with code %d\n" ;; buffer, which might not be the same as the selected window's buffer. (save-current-buffer (save-selected-window - (select-window window) - (enlarge-window (- height (window-height)))))))) + (save-excursion + (select-window window) + (enlarge-window (- height (window-height))))))))) (defvar compilation-menu-map (let ((map (make-sparse-keymap "Errors"))) diff --git a/lisp/progmodes/f90.el b/lisp/progmodes/f90.el index aada9be16dc..53165fbecb7 100644 --- a/lisp/progmodes/f90.el +++ b/lisp/progmodes/f90.el @@ -153,7 +153,7 @@ ;;; Code: ;; TODO -;; Support for hideshow, align. +;; Support for align. ;; OpenMP, preprocessor highlighting. (defvar comment-auto-fill-only-comments) @@ -589,6 +589,53 @@ characters long.") (make-variable-buffer-local 'f90-cache-position) +;; Hideshow support. +(defconst f90-end-block-re + (concat "^[ \t0-9]*\\<end\\>[ \t]*" + (regexp-opt '("do" "if" "forall" "function" "interface" + "module" "program" "select" "subroutine" + "type" "where" ) t) + "[ \t]*\\sw*") + "Regexp matching the end of a \"block\" of F90 code. +Used in the F90 entry in `hs-special-modes-alist'.") + +;; Ignore the fact that FUNCTION, SUBROUTINE, WHERE, FORALL have a +;; following "(". DO, CASE, IF can have labels; IF must be +;; accompanied by THEN. +;; A big problem is that many of these statements can be broken over +;; lines, even with embedded comments. We only try to handle this for +;; IF ... THEN statements, assuming and hoping it will be less common +;; for other constructs. We match up to one new-line, provided ") +;; THEN" appears on one line. Matching on just ") THEN" is no good, +;; since that includes ELSE branches. +;; For a fully accurate solution, hideshow would probably have to be +;; modified to allow functions as well as regexps to be used to +;; specify block start and end positions. +(defconst f90-start-block-re + (concat + "^[ \t0-9]*" ; statement number + "\\(\\(" + "\\(\\sw+[ \t]*:[ \t]*\\)?" ; structure label + "\\(do\\|select[ \t]*case\\|if[ \t]*(.*\n?.*)[ \t]*then\\|" + ;; Distinguish WHERE block from isolated WHERE. + "\\(where\\|forall\\)[ \t]*(.*)[ \t]*\\(!\\|$\\)\\)\\)" + "\\|" + "program\\|interface\\|module\\|type\\|function\\|subroutine" + ;; ") THEN" at line end. Problem - also does ELSE. +;;; "\\|.*)[ \t]*then[ \t]*\\($\\|!\\)" + "\\)" + "[ \t]*") + "Regexp matching the start of a \"block\" of F90 code. +A simple regexp cannot do this in fully correct fashion, so this +tries to strike a compromise between complexity and flexibility. +Used in the F90 entry in `hs-special-modes-alist'.") + +;; hs-special-modes-alist is autoloaded. +(add-to-list 'hs-special-modes-alist + `(f90-mode ,f90-start-block-re ,f90-end-block-re + "!" f90-end-of-block nil)) + + ;; Imenu support. (defvar f90-imenu-generic-expression (let ((good-char "[^!\"\&\n \t]") (not-e "[^e!\n\"\& \t]") diff --git a/lisp/progmodes/gdb-ui.el b/lisp/progmodes/gdb-ui.el index fc3196cdb4f..19c57979130 100644 --- a/lisp/progmodes/gdb-ui.el +++ b/lisp/progmodes/gdb-ui.el @@ -664,6 +664,7 @@ This filter may simply queue output for a later time." ("commands" gdb-subprompt) ("overload-choice" gdb-subprompt) ("query" gdb-subprompt) + ("nquery" gdb-subprompt) ("prompt-for-continue" gdb-subprompt) ("post-prompt" gdb-post-prompt) ("source" gdb-source) diff --git a/lisp/progmodes/gud.el b/lisp/progmodes/gud.el index 035b5da875a..84dec78d895 100644 --- a/lisp/progmodes/gud.el +++ b/lisp/progmodes/gud.el @@ -2339,7 +2339,8 @@ comint mode, which see." ;; Don't put repeated commands in command history many times. (set (make-local-variable 'comint-input-ignoredups) t) (make-local-variable 'paragraph-start) - (set (make-local-variable 'gud-delete-prompt-marker) (make-marker))) + (set (make-local-variable 'gud-delete-prompt-marker) (make-marker)) + (add-hook 'kill-buffer-hook 'gud-kill-buffer-hook nil t)) ;; Cause our buffers to be displayed, by default, ;; in the selected window. @@ -2546,10 +2547,10 @@ It is saved for when this flag is not set.") (set-buffer obuf)))))) (defun gud-kill-buffer-hook () - (if gud-minor-mode - (setq gud-minor-mode-type gud-minor-mode))) - -(add-hook 'kill-buffer-hook 'gud-kill-buffer-hook) + (setq gud-minor-mode-type gud-minor-mode) + (condition-case nil + (kill-process (get-buffer-process gud-comint-buffer)) + (error nil))) (defun gud-reset () (dolist (buffer (buffer-list)) diff --git a/lisp/progmodes/python.el b/lisp/progmodes/python.el index 214b6f0e24c..cee59a6e3e1 100644 --- a/lisp/progmodes/python.el +++ b/lisp/progmodes/python.el @@ -297,10 +297,9 @@ comments and strings, or that the bracket/paren nesting depth is nonzero." (syntax-ppss (line-beginning-position))))))) (defun python-comment-line-p () - "Return non-nil if current line has only a comment or is blank." + "Return non-nil iff current line has only a comment." (save-excursion (end-of-line) - ;; FIXME: This looks wrong because it returns nil for empty lines. --Stef (when (eq 'comment (syntax-ppss-context (syntax-ppss))) (back-to-indentation) (looking-at (rx (or (syntax comment-start) line-end)))))) @@ -1025,7 +1024,6 @@ et al.") (let ((map (make-sparse-keymap))) ;; This will inherit from comint-mode-map. (define-key map "\C-c\C-l" 'python-load-file) - (define-key map "\C-c\C-z" 'python-switch-to-python) ;What for? --Stef (define-key map "\C-c\C-v" 'python-check) ;; Note that we _can_ still use these commands which send to the ;; Python process even at the prompt iff we have a normal prompt, @@ -1140,10 +1138,12 @@ to this as appropriate. Runs the hook `inferior-python-mode-hook' ;; (not a name) in Python buffers from which `run-python' &c is ;; invoked. Would support multiple processes better. (unless (comint-check-proc python-buffer) - (let ((cmdlist (append (python-args-to-list cmd) '("-i"))) - (process-environment ; to import emacs.py - (push (concat "PYTHONPATH=" data-directory) - process-environment))) + (let* ((cmdlist (append (python-args-to-list cmd) '("-i"))) + (path (getenv "PYTHONPATH")) + (process-environment ; to import emacs.py + (push (concat "PYTHONPATH=" data-directory + (if path (concat ":" path))) + process-environment))) (set-buffer (apply 'make-comint "Python" (car cmdlist) nil (cdr cmdlist))) (setq python-buffer "*Python*")) @@ -1278,7 +1278,6 @@ module-qualified names." ;; Fixme: I'm not convinced by this logic from python-mode.el. (python-send-command (if (string-match "\\.py\\'" file-name) - ;; Fixme: make sure the directory is in the path list (let ((module (file-name-sans-extension (file-name-nondirectory file-name)))) (format "emacs.eimport(%S,%S)" @@ -1309,6 +1308,7 @@ See variable `python-buffer'. Starts a new process if necessary." Otherwise inherits from `python-mode-syntax-table'.") (defvar view-return-to-alist) +(eval-when-compile (autoload 'help-buffer "help-fns")) ;; Fixme: Should this actually be used instead of info-look, i.e. be ;; bound to C-h S? Can we use other pydoc stuff before python 2.2? @@ -1394,7 +1394,8 @@ Used with `eval-after-load'." ;; Don't use `info' because it would pop-up a *info* buffer. (with-no-warnings (Info-goto-node (format "(python%s-lib)Miscellaneous Index" - version))) + version)) + t) (error nil))))) (info-lookup-maybe-add-help :mode 'python-mode diff --git a/lisp/subr.el b/lisp/subr.el index 5453ee2e45b..5302558d834 100644 --- a/lisp/subr.el +++ b/lisp/subr.el @@ -629,7 +629,11 @@ The normal global definition of the character C-x indirects to this keymap.") (defsubst eventp (obj) "True if the argument is an event object." - (or (integerp obj) + (or (and (integerp obj) + ;; Filter out integers too large to be events. + ;; M is the biggest modifier. + (zerop (logand obj (lognot (1- (lsh ?\M-\^@ 1))))) + (char-valid-p (event-basic-type obj))) (and (symbolp obj) (get obj 'event-symbol-elements)) (and (consp obj) @@ -1119,14 +1123,14 @@ Input and output work as for subprocesses; `delete-process' closes it. Args are NAME BUFFER HOST SERVICE. NAME is name for process. It is modified if necessary to make it unique. -BUFFER is the buffer (or buffer-name) to associate with the process. +BUFFER is the buffer (or buffer name) to associate with the process. Process output goes at end of that buffer, unless you specify an output stream or filter function to handle the output. BUFFER may be also nil, meaning that this process is not associated - with any buffer -Third arg is name of the host to connect to, or its IP address. -Fourth arg SERVICE is name of the service desired, or an integer -specifying a port number to connect to." + with any buffer. +HOST is name of the host to connect to, or its IP address. +SERVICE is name of the service desired, or an integer specifying + a port number to connect to." (make-network-process :name name :buffer buffer :host host :service service)) @@ -1135,14 +1139,14 @@ specifying a port number to connect to." It returns nil if non-blocking connects are not supported; otherwise, it returns a subprocess-object to represent the connection. -This function is similar to `open-network-stream', except that this -function returns before the connection is established. When the -connection is completed, the sentinel function will be called with -second arg matching `open' (if successful) or `failed' (on error). +This function is similar to `open-network-stream', except that it +returns before the connection is established. When the connection +is completed, the sentinel function will be called with second arg +matching `open' (if successful) or `failed' (on error). Args are NAME BUFFER HOST SERVICE SENTINEL FILTER. NAME, BUFFER, HOST, and SERVICE are as for `open-network-stream'. -Optional args, SENTINEL and FILTER specifies the sentinel and filter +Optional args SENTINEL and FILTER specify the sentinel and filter functions to be used for this network stream." (if (featurep 'make-network-process '(:nowait t)) (make-network-process :name name :buffer buffer :nowait t @@ -1160,17 +1164,17 @@ is called for the new process. Args are NAME BUFFER SERVICE SENTINEL FILTER. NAME is name for the server process. Client processes are named by -appending the ip-address and port number of the client to NAME. -BUFFER is the buffer (or buffer-name) to associate with the server -process. Client processes will not get a buffer if a process filter -is specified or BUFFER is nil; otherwise, a new buffer is created for -the client process. The name is similar to the process name. + appending the ip-address and port number of the client to NAME. +BUFFER is the buffer (or buffer name) to associate with the server + process. Client processes will not get a buffer if a process filter + is specified or BUFFER is nil; otherwise, a new buffer is created for + the client process. The name is similar to the process name. Third arg SERVICE is name of the service desired, or an integer -specifying a port number to connect to. It may also be t to selected -an unused port number for the server. -Optional args, SENTINEL and FILTER specifies the sentinel and filter -functions to be used for the client processes; the server process -does not use these function." + specifying a port number to connect to. It may also be t to select + an unused port number for the server. +Optional args SENTINEL and FILTER specify the sentinel and filter + functions to be used for the client processes; the server process + does not use these function." (if (featurep 'make-network-process '(:server t)) (make-network-process :name name :buffer buffer :service service :server t :noquery t @@ -1725,16 +1729,17 @@ Strip text properties from the inserted text according to (defun start-process-shell-command (name buffer &rest args) "Start a program in a subprocess. Return the process object for it. -Args are NAME BUFFER COMMAND &rest COMMAND-ARGS. NAME is name for process. It is modified if necessary to make it unique. -BUFFER is the buffer or (buffer-name) to associate with the process. +BUFFER is the buffer (or buffer name) to associate with the process. Process output goes at end of that buffer, unless you specify an output stream or filter function to handle the output. BUFFER may be also nil, meaning that this process is not associated with any buffer -Third arg is command name, the name of a shell command. +COMMAND is the name of a shell command. Remaining arguments are the arguments for the command. -Wildcards and redirection are handled as usual in the shell." +Wildcards and redirection are handled as usual in the shell. + +\(fn NAME BUFFER COMMAND &rest COMMAND-ARGS)" (cond ((eq system-type 'vax-vms) (apply 'start-process name buffer args)) diff --git a/lisp/textmodes/ispell.el b/lisp/textmodes/ispell.el index 39fe89bdaaa..77c63379e2b 100644 --- a/lisp/textmodes/ispell.el +++ b/lisp/textmodes/ispell.el @@ -501,7 +501,8 @@ and then re-start emacs." (choice :tag "Coding system" (const iso-8859-1) (const iso-8859-2) - (const koi8-r)))) + (const koi8-r) + (const windows-1251)))) :group 'ispell) @@ -630,6 +631,10 @@ and then re-start emacs." "[\341\342\367\347\344\345\263\366\372\351\352\353\354\355\356\357\360\362\363\364\365\346\350\343\376\373\375\370\371\377\374\340\361\301\302\327\307\304\305\243\326\332\311\312\313\314\315\316\317\320\322\323\324\325\306\310\303\336\333\335\330\331\337\334\300\321]" "[^\341\342\367\347\344\345\263\366\372\351\352\353\354\355\356\357\360\362\363\364\365\346\350\343\376\373\375\370\371\377\374\340\361\301\302\327\307\304\305\243\326\332\311\312\313\314\315\316\317\320\322\323\324\325\306\310\303\336\333\335\330\331\337\334\300\321]" "" nil nil nil koi8-r) + ("russianw" ; russianw.aff (CP1251 charset) + "[\300\301\302\303\304\305\250\306\307\310\311\312\313\314\315\316\317\320\321\322\323\324\325\326\327\330\331\334\333\332\335\336\337\340\341\342\343\344\345\270\346\347\350\351\352\353\354\355\356\357\360\361\362\363\364\365\366\367\370\371\374\373\372\375\376\377]" + "[^\300\301\302\303\304\305\250\306\307\310\311\312\313\314\315\316\317\320\321\322\323\324\325\326\327\330\331\334\333\332\335\336\337\340\341\342\343\344\345\270\346\347\350\351\352\353\354\355\356\357\360\361\362\363\364\365\366\367\370\371\374\373\372\375\376\377]" + "" nil nil nil windows-1251) ("slovak" ; Slovakian "[A-Za-z\301\304\311\315\323\332\324\300\305\245\335\256\251\310\317\253\322\341\344\351\355\363\372\364\340\345\265\375\276\271\350\357\273\362]" "[^A-Za-z\301\304\311\315\323\332\324\300\305\245\335\256\251\310\317\253\322\341\344\351\355\363\372\364\340\345\265\375\276\271\350\357\273\362]" @@ -3274,7 +3279,7 @@ You can bind this to the key C-c i in GNUS or mail by adding to (equal major-mode 'message-mode)) ;GNUS 5 (concat "In article <" "\\|" "[^,;&+=\n]+ <[^,;&+=]+> writes:" "\\|" - message-yank-prefix "\\|" + message-cite-prefix-regexp "\\|" default-prefix)) ((equal major-mode 'mh-letter-mode) ; mh mail message (concat "[^,;&+=\n]+ writes:" "\\|" diff --git a/lisp/toolbar/close.pbm b/lisp/toolbar/close.pbm Binary files differindex 04633c9d1d6..d0eccb1b16d 100644 --- a/lisp/toolbar/close.pbm +++ b/lisp/toolbar/close.pbm diff --git a/lisp/toolbar/close.xpm b/lisp/toolbar/close.xpm index ff364d57044..498843be6e2 100644 --- a/lisp/toolbar/close.xpm +++ b/lisp/toolbar/close.xpm @@ -1,32 +1,29 @@ /* XPM */ -static char *magick[] = { -/* columns rows colors chars-per-pixel */ +static char * close_xpm[] = { "24 24 2 1", -" c Gray0", -". c None", -/* pixels */ -"........................", -"........................", -"........................", -"........................", -"........................", -"........................", -"....... .... ..........", -"....... .. .........", -"........ . ..........", -"........ ...........", -"......... ............", -"......... ...........", -"........ ..........", -"........ . .........", -"....... ... ........", -"....... ..... .........", -"........................", -"........................", -"........................", -"........................", -"........................", -"........................", -"........................", -"........................" -}; +" c None", +". c #000000", +" ", +" ", +" ", +" ", +" ", +" ", +" . . ", +" . ... ", +" .. .... ", +" .. ... ", +" ..... ", +" ... ", +" ..... ", +" ....... ", +" ... .... ", +" ... .... ", +" ... .. ", +" ", +" ", +" ", +" ", +" ", +" ", +" "}; diff --git a/lisp/toolbar/copy.pbm b/lisp/toolbar/copy.pbm Binary files differindex 155be369266..7c19d5c2961 100644 --- a/lisp/toolbar/copy.pbm +++ b/lisp/toolbar/copy.pbm diff --git a/lisp/toolbar/copy.xpm b/lisp/toolbar/copy.xpm index 06efceae29d..6262a95bc39 100644 --- a/lisp/toolbar/copy.xpm +++ b/lisp/toolbar/copy.xpm @@ -1,37 +1,53 @@ /* XPM */ -static char *magick[] = { -/* columns rows colors chars-per-pixel */ -"24 24 7 1", -" c Gray0", -". c #424242423a3a", -"X c #68e968e96363", -"o c #a8b1a8b1992b", -"O c #d3d3d3d3bdbd", -"+ c #e419e419cd6b", -"@ c None", -/* pixels */ -"@@@@@@@@@@@@@@@@@@@@@@@@", -"@@@@@@@@@@@@@@@@@@@@@@@@", -"@@@@@@@@@@@@@@@@@@@@@@@@", -"@@@@@@@@@@@@@@@@@@@@@@@@", -"@@@@@@@@@@@@@@@@@@@@@@@@", -"@@@@@@@@ @@@@@@@@@@@@@@", -"@@@@@@ Oo @@@@@@@@@@@@@", -"@@@@ .ooOO @@@@ @@@@@@@", -"@@@@ +XoOOo @ Oo @@@@@@", -"@@@@ +.oO++ .ooOO @@@@@@", -"@@@@ XoO+++ +XoOOo @@@@@", -"@@@@ oOO+++ +.oO++ @@@@@", -"@@@@ oO++++ XoOO++o @@@@", -"@@@@@ +++++ oOO++++o @@@", -"@@@@@ o++++ oO++++++ @@@", -"@@@@@@ ++o +++++++o @@", -"@@@@@@ o @@ o++++o @@@", -"@@@@@@@ @@@@@ ++o @@@@@", -"@@@@@@@@@@ @@ o @@@@@@@", -"@@@@@@@ @@ @@@@@@@@@", -"@@@@@@@ @@@@@@@@@@@@", -"@@@@@@@@@@ @@@@@@@@@@@@@", -"@@@@@@@@@@@@@@@@@@@@@@@@", -"@@@@@@@@@@@@@@@@@@@@@@@@" -}; +static char * copy_xpm[] = { +"24 24 26 1", +" c None", +". c #000000", +"+ c #B4B4B4", +"@ c #F8F8F8", +"# c #F6F6F6", +"$ c #C3C3C3", +"% c #E9E9E9", +"& c #989898", +"* c #828282", +"= c #8A8A8A", +"- c #E8E8E8", +"; c #636363", +"> c #5A5A5A", +", c #6B6B6B", +"' c #B3B3B3", +") c #FFFFFF", +"! c #D6D6D6", +"~ c #818181", +"{ c #A7A7A7", +"] c #8F8F8F", +"^ c #C6C6C6", +"/ c #808080", +"( c #E7E7E7", +"_ c #6D6D6D", +": c #767676", +"< c #F5F5F5", +" ", +" ............. ", +" .+@@@@@@@@@#$. ", +" .@%%%%%%%%%%%. ", +" .@&**=%+*%*+%. ", +" .@%%%%%%%%---. ", +" .@;>%,*+-............ ", +" .@%%%%%%.'))))))))))!. ", +" .@&**%*~.)))))))))))). ", +" .@%%%%%-.){]]&)^])]^). ", +" .@;>>%,/.)))))))))))). ", +" .@%%%%%(.)_;):]^)^])). ", +" .@&**%*~.)))))))))))). ", +" .<%%%%%-.){]])]]^)&]). ", +" .$%%%%%-.)))))))))))). ", +" ........)_;;):]^)^]). ", +" .)))))))))))). ", +" .){]])]]^)&]). ", +" .)))))))))))). ", +" .!))))))))))!. ", +" .............. ", +" ", +" ", +" "}; diff --git a/lisp/toolbar/cut.pbm b/lisp/toolbar/cut.pbm Binary files differindex 570260767cb..5a80e5b96c8 100644 --- a/lisp/toolbar/cut.pbm +++ b/lisp/toolbar/cut.pbm diff --git a/lisp/toolbar/cut.xpm b/lisp/toolbar/cut.xpm index 563d64ec343..3f8e71d22ce 100644 --- a/lisp/toolbar/cut.xpm +++ b/lisp/toolbar/cut.xpm @@ -1,32 +1,67 @@ /* XPM */ -static char *magick[] = { -/* columns rows colors chars-per-pixel */ -"24 24 2 1", -" c Gray0", -". c None", -/* pixels */ -"........................", -"........................", -"........................", -"........................", -"........................", -".................. .....", -"................ ......", -"............... .......", -".............. ........", -"............. .........", -".... .... ..... ..", -"... ... .. ... ....", -"... ... ......", -".... ... .........", -".......... ............", -"......... ............", -"........ .. ............", -"....... ... ............", -"....... .. .............", -"....... ..............", -"........................", -"........................", -"........................", -"........................" -}; +static char * cut_xpm[] = { +"24 24 40 1", +" c None", +". c #000000", +"+ c #C9C7C2", +"@ c #E6E4E0", +"# c #EFEEED", +"$ c #494946", +"% c #73726E", +"& c #F0EEED", +"* c #7F7D75", +"= c #F2F1EF", +"- c #D2CFC8", +"; c #E7E7E4", +"> c #BAB5AB", +", c #565653", +"' c #EDECE9", +") c #A4A097", +"! c #817F7E", +"~ c #4E4C48", +"{ c #F6F5F4", +"] c #474541", +"^ c #EFEEEC", +"/ c #8C8B8A", +"( c #F3F2F0", +"_ c #77746D", +": c #323232", +"< c #EBEBEA", +"[ c #605D58", +"} c #F5F4F3", +"| c #CECCC7", +"1 c #363634", +"2 c #6F6E6D", +"3 c #BEBDBB", +"4 c #EAE7E4", +"5 c #B8B5B1", +"6 c #474747", +"7 c #DAD8D4", +"8 c #9B9996", +"9 c #161615", +"0 c #6D6B6A", +"a c #3A3837", +" ", +" ", +" . . ", +" . . ", +" .+. .@. ", +" .#$ %@. ", +" .&*. .=-. ", +" .;>, %'). ", +" !#*. .=-~ ", +" .{>] ~^>. ", +" /(_.:<-[ ", +" .}|123>. ", +" .456>. ", +" .78.. ", +" .90a. ", +" ............. ", +" . ... ... ... ", +" .. .. .. .. ", +" . . . . ", +" .. .. .. .. ", +" .... .. . ", +" .... .... ", +" ", +" "}; diff --git a/lisp/toolbar/help.pbm b/lisp/toolbar/help.pbm Binary files differindex 562cc6137b5..2abea9be95f 100644 --- a/lisp/toolbar/help.pbm +++ b/lisp/toolbar/help.pbm diff --git a/lisp/toolbar/help.xpm b/lisp/toolbar/help.xpm index bca0bf8e4fc..1d65ce03b53 100644 --- a/lisp/toolbar/help.xpm +++ b/lisp/toolbar/help.xpm @@ -1,36 +1,271 @@ /* XPM */ -static char *magick[] = { -/* columns rows colors chars-per-pixel */ -"24 24 6 1", -" c Gray0", -". c #65658b8b5e5e", -"X c #934ab2448dfb", -"o c #b35dc8c8afaf", -"O c #e0b2e944df83", -"+ c None", -/* pixels */ -"++++++++++++++++++++++++", -"++++++++++++++++++++++++", -"++++++++++++++++++++++++", -"++++++++++++++++++++++++", -"+++++++++ ++++++++++", -"++++++++ oOOOO +++++++++", -"+++++++ OOOOOOO ++++++++", -"++++++ oOo oOo +++++++", -"+++++++ O +++ OO +++++++", -"+++++++O ++++ Oo +++++++", -"++++++++++++ OO. +++++++", -"+++++++++++ OOX ++++++++", -"++++++++++ OOX +++++++++", -"+++++++++ XOX ++++++++++", -"+++++++++ OX +++++++++++", -"+++++++++ +++++++++++", -"++++++++++++++++++++++++", -"++++++++++ ++++++++++++", -"+++++++++ Oo +++++++++++", -"+++++++++ oX +++++++++++", -"++++++++++ ++++++++++++", -"++++++++++++++++++++++++", -"++++++++++++++++++++++++", -"++++++++++++++++++++++++" -}; +static char * help_xpm[] = { +"24 24 244 2", +" c None", +". c #000000", +"+ c #454442", +"@ c #1D1D1C", +"# c #040404", +"$ c #1B1B1B", +"% c #3D3C3A", +"& c #4D4C4B", +"* c #2F2F2D", +"= c #C1BFBB", +"- c #ECEAE7", +"; c #F5F3F0", +"> c #F2F0EC", +", c #E1DFDC", +"' c #AFADAA", +") c #272726", +"! c #020202", +"~ c #3F3E3E", +"{ c #36302D", +"] c #181818", +"^ c #FBF8F5", +"/ c #FEFCF8", +"( c #FAF8F5", +"_ c #F5F4F1", +": c #F2F1ED", +"< c #F1EFEB", +"[ c #F1EEEB", +"} c #EAE9E6", +"| c #DAD8D4", +"1 c #100E0E", +"2 c #1F100E", +"3 c #AF3A1E", +"4 c #FBAB93", +"5 c #FAE9E3", +"6 c #F0EFEB", +"7 c #E9E8E5", +"8 c #EAE8E6", +"9 c #ECEAE8", +"0 c #EDEBE9", +"a c #EDEBE8", +"b c #EACFC6", +"c c #D5340A", +"d c #751904", +"e c #100806", +"f c #34160D", +"g c #AF3C20", +"h c #FCCCBD", +"i c #F7BEAD", +"j c #E67554", +"k c #DFDDDB", +"l c #DBD9D6", +"m c #D8D7D3", +"n c #DBDAD6", +"o c #E3E2DE", +"p c #ECEBE8", +"q c #E5572D", +"r c #E33A0B", +"s c #D4340A", +"t c #691504", +"u c #100504", +"v c #582C22", +"w c #0F0F0F", +"x c #FDD4C8", +"y c #F7BFAF", +"z c #E87554", +"A c #D5512B", +"B c #C68270", +"C c #BEBDBA", +"D c #A5A3A0", +"E c #9C9A95", +"F c #B9B7B2", +"G c #D7D6D2", +"H c #E7E5E2", +"I c #E79A85", +"J c #E53C0B", +"K c #E43C0B", +"L c #E23A0B", +"M c #C93009", +"N c #010000", +"O c #040100", +"P c #FAB19C", +"Q c #FACCBE", +"R c #EB8264", +"S c #D8532D", +"T c #C0340F", +"U c #932006", +"V c #141412", +"W c #857974", +"X c #DA370B", +"Y c #EC7C5B", +"Z c #E95B32", +"` c #DE380B", +" . c #9D2306", +".. c #626261", +"+. c #FEF1ED", +"@. c #F09479", +"#. c #DC532B", +"$. c #C0350F", +"%. c #942006", +"&. c #621404", +"*. c #E2522B", +"=. c #F2A690", +"-. c #E74E21", +";. c #E23B0B", +">. c #C99181", +",. c #454342", +"'. c #E5E4E2", +"). c #FCFBFA", +"!. c #E2D8D3", +"~. c #C34C2A", +"{. c #B02B07", +"]. c #9E2D12", +"^. c #EF8D71", +"/. c #F09B83", +"(. c #EADDD7", +"_. c #272724", +":. c #F0EEEC", +"<. c #F3F2EF", +"[. c #D7D6D3", +"}. c #BFBEBB", +"|. c #9E6153", +"1. c #3F0D02", +"2. c #F0B9A9", +"3. c #F6F5F4", +"4. c #E8E7E4", +"5. c #DAD8D5", +"6. c #585652", +"7. c #F6F4F0", +"8. c #DAD8D6", +"9. c #C2C1BE", +"0. c #989691", +"a. c #0A0A08", +"b. c #F6F4F2", +"c. c #F4F3F1", +"d. c #E4E3E0", +"e. c #D3D2CE", +"f. c #63625D", +"g. c #DCDAD8", +"h. c #C7C6C2", +"i. c #ABAAA5", +"j. c #0A0A0A", +"k. c #FAF8F6", +"l. c #EFEDEA", +"m. c #DDDCD8", +"n. c #C6C4C2", +"o. c #3E3E39", +"p. c #1B1B19", +"q. c #F0EEEA", +"r. c #E0DFDD", +"s. c #CCCBC9", +"t. c #C0BFBB", +"u. c #131311", +"v. c #676663", +"w. c #FCFAF8", +"x. c #D6D4D2", +"y. c #BCBAB7", +"z. c #3C3C3A", +"A. c #DEDCD9", +"B. c #7E4B3E", +"C. c #232323", +"D. c #CC9385", +"E. c #FAFAF7", +"F. c #E6E6E2", +"G. c #CDCCCA", +"H. c #B0B0AC", +"I. c #EDE3DF", +"J. c #E78468", +"K. c #DF5D3A", +"L. c #631909", +"M. c #282828", +"N. c #B46E5E", +"O. c #FCC3B2", +"P. c #F1A691", +"Q. c #DCD2CC", +"R. c #C8C6C3", +"S. c #7E7C78", +"T. c #E8AD9C", +"U. c #E96139", +"V. c #EB7452", +"W. c #EF8E72", +"X. c #EA8063", +"Y. c #9E2E13", +"Z. c #3F1811", +"`. c #121212", +" + c #6B433B", +".+ c #E0A191", +"++ c #FDD3C7", +"@+ c #F4AD98", +"#+ c #DE532B", +"$+ c #C83409", +"%+ c #B48274", +"&+ c #383534", +"*+ c #D6340A", +"=+ c #E43D0F", +"-+ c #E8582E", +";+ c #ED7957", +">+ c #F4B6A4", +",+ c #F4B09D", +"'+ c #F0E5E0", +")+ c #F4F3EF", +"!+ c #FDF8F6", +"~+ c #FBCEC1", +"{+ c #F28B6E", +"]+ c #E44E23", +"^+ c #D3370A", +"/+ c #BF2F09", +"(+ c #260800", +"_+ c #190F0B", +":+ c #D5350A", +"<+ c #E43D0C", +"[+ c #E74C1F", +"}+ c #EFBBAB", +"|+ c #F5F4F3", +"1+ c #F5F3F1", +"2+ c #EAB1A0", +"3+ c #DE4316", +"4+ c #C5310A", +"5+ c #591202", +"6+ c #0E0504", +"7+ c #C83009", +"8+ c #E0532B", +"9+ c #E7E6E3", +"0+ c #E7E6E2", +"a+ c #DDDCD9", +"b+ c #CFCECA", +"c+ c #C14724", +"d+ c #AE2907", +"e+ c #290800", +"f+ c #0F0705", +"g+ c #9B2205", +"h+ c #C1A89F", +"i+ c #D1D0CC", +"j+ c #CFCDCA", +"k+ c #C7C6C3", +"l+ c #BBBAB7", +"m+ c #B5B4B1", +"n+ c #A7A6A2", +"o+ c #66564F", +"p+ c #0B0908", +"q+ c #010100", +"r+ c #222221", +"s+ c #51504B", +"t+ c #5D5C57", +"u+ c #3B3B37", +" . . + @ # # $ % ", +" . . . . & # * = - ; > , ' ) ! ~ . . . . ", +". . { ] ^ / ( _ : > < [ } | . 1 . . ", +" . 2 3 4 5 6 - 7 8 9 0 0 a b c d e . ", +" . f g h i j k l m n o } p a q r s t u . . ", +" v w x y z A B C D E F G H I J K L M . N ", +" O P Q R S T U . . . . V W X Y Z K ` .. ", +" ..+.@.#.$.%.. . . &.*.=.-.;.>.! . ", +",.'.).!.~.{.. . . ].^./.(.n _.. ", +"@ :.<.[.}.|.. 1.2.3.4.5.6.. ", +"# 7.6 8.9.0.. a.b.c.d.e.f.. ", +"# > < g.h.i.. j.k.l.m.n.o.. ", +"p., q.r.s.t.u. v.w.9 x.y.. . ", +"z.' [ 7 A.[.B.. C.D.E.F.G.H.. . ", +" ) } 0 I.J.K.L.. M.N.O.P.Q.R.S.. . ", +" ! | T.U.V.W.X.Y.Z.a.`. +.+++@+#+$+%+. . ", +" &+. *+=+-+;+>+,+'+)+k.!+~+{+]+^+/+(+. . ", +" . _+d :+L <+[+}+|+l.1+|+2+3+^+4+5+. . . ", +" . 6+t 7+` 8+9+0+o a+[.b+c+d+e+. . . ", +" . f+. g+h+i+j+k+l+m+n+o+. . . . ", +" . . . p+. q+r+s+t+u+. . . . . . . ", +" . . . . . . . . . . . . ", +" ", +" "}; diff --git a/lisp/toolbar/home.pbm b/lisp/toolbar/home.pbm Binary files differindex 117955f2a74..707f0ccce6b 100644 --- a/lisp/toolbar/home.pbm +++ b/lisp/toolbar/home.pbm diff --git a/lisp/toolbar/home.xpm b/lisp/toolbar/home.xpm index 33d02aaf387..57e8f9cc25a 100644 --- a/lisp/toolbar/home.xpm +++ b/lisp/toolbar/home.xpm @@ -1,36 +1,128 @@ /* XPM */ static char * home_xpm[] = { -"24 24 9 1", -" c None", -". c #020202", -"+ c #6C7962", -"@ c #7A8A6E", -"# c #FEFEFE", -"$ c #7E8E76", -"% c #82927A", -"& c #C8CEC4", -"* c #E3E7E1", -" ", -" ", -" ", -" ", -" . ... ", -" .#. .&. ", -" .#*%..&. ", -" .##&&$.&. ", -" .##&&&&$&. ", -" .*#&&&&&&@. ", -" .##&&&&&&&&+. ", -" .###&&&&&&&&&+. ", -" ...##&&&&&&&&+... ", -" .##&&&&&&&&+. ", -" .##....&&&&+. ", -" .##.&&.&&&&+. ", -" .##.&&.&&&&+. ", -" .#*.&&.&&&&+. ", -" .&+.++.+++++. ", -" ............. ", -" ", -" ", -" ", -" "}; +"24 24 101 2", +" c None", +". c #000000", +"+ c #212121", +"@ c #2C2C2C", +"# c #C1665A", +"$ c #924B37", +"% c #2A2A2A", +"& c #333333", +"* c #343434", +"= c #242424", +"- c #944D3A", +"; c #A05443", +"> c #181818", +", c #474747", +"' c #555555", +") c #8D8D8D", +"! c #383838", +"~ c #191919", +"{ c #974F3C", +"] c #222222", +"^ c #313131", +"/ c #A1A1A1", +"( c #676767", +"_ c #ACACAC", +": c #BCBCBC", +"< c #585858", +"[ c #141414", +"} c #1C1C1C", +"| c #464646", +"1 c #666666", +"2 c #BABABA", +"3 c #7E7E7E", +"4 c #D2D2D2", +"5 c #FFFFFF", +"6 c #4F4F4F", +"7 c #262626", +"8 c #232323", +"9 c #505050", +"0 c #B2B2B2", +"a c #909090", +"b c #9A9A9A", +"c c #838383", +"d c #171717", +"e c #202020", +"f c #717171", +"g c #A6A6A6", +"h c #616161", +"i c #1D1D1D", +"j c #1F1F1F", +"k c #C4C4C4", +"l c #CACACA", +"m c #AEAEAE", +"n c #D1D1D1", +"o c #7C7C7C", +"p c #BFBFBF", +"q c #6C6C6C", +"r c #EEEEEE", +"s c #949494", +"t c #C7C7C7", +"u c #EBEBEB", +"v c #7D7D7D", +"w c #6E6E6E", +"x c #A9A9A9", +"y c #E99E8F", +"z c #DD806D", +"A c #9B5343", +"B c #CECECE", +"C c #626262", +"D c #858585", +"E c #ECA292", +"F c #D0533A", +"G c #934F3E", +"H c #6D6D6D", +"I c #ECA291", +"J c #CF543C", +"K c #371D16", +"L c #5D5D5D", +"M c #868686", +"N c #787878", +"O c #ECA696", +"P c #C95C49", +"Q c #E17C66", +"R c #924E3D", +"S c #888888", +"T c #A0A0A0", +"U c #3D1208", +"V c #D15137", +"W c #919191", +"X c #879981", +"Y c #82947C", +"Z c #8A9B85", +"` c #6E8467", +" . c #5D7555", +".. c #4C6042", +"+. c #3F4F37", +"@. c #303D2A", +"#. c #7F8F7A", +"$. c #64785E", +"%. c #44563E", +"&. c #657460", +"*. c #40503A", +" ", +" . . ", +" . . . . . + @ . ", +" . # $ . . % & * = . ", +" . - ; . > , ' ) ! ~ . ", +" . { . ] ^ / ( _ : < [ . ", +" . . } | 1 2 3 4 : 5 6 7 . ", +" . 8 9 0 a 4 b 5 : 5 : c d . ", +" . e f g 4 b 5 : 5 : 5 : 5 h i . ", +" . j k k l 5 m 5 2 5 2 5 : 5 n o } . ", +" . 8 m p p p p p p p p . . . . . a q = . ", +" . . . . r 5 5 5 5 5 5 5 . s t u . v . . . . ", +" . 4 5 . . . . . 5 . : 5 5 . w . ", +" . x 5 . y z A . 5 . B 5 5 . C . ", +" . D 5 . E F G . 5 . . . . . H . ", +" . . 5 . I J K . k s L L M N . . ", +" . . r . O P G . 5 5 5 5 5 2 . ", +" . 2 . Q # R . : : : : : S . ", +" . T U V # A . 5 5 5 5 5 W . ", +" . . . . . . . . . . . . . . . . . . . . . ", +" } X Y Z X ` ...+.@.. Y #.$.%.&.*.. ", +" . . . . . . . . . . . . . . . . . ", +" . . . ", +" "}; diff --git a/lisp/toolbar/index.pbm b/lisp/toolbar/index.pbm Binary files differindex 5411d49f071..044c835c393 100644 --- a/lisp/toolbar/index.pbm +++ b/lisp/toolbar/index.pbm diff --git a/lisp/toolbar/index.xpm b/lisp/toolbar/index.xpm index 154e4286083..7e1de12121b 100644 --- a/lisp/toolbar/index.xpm +++ b/lisp/toolbar/index.xpm @@ -1,39 +1,201 @@ /* XPM */ -static char *magick[] = { -/* columns rows colors chars-per-pixel */ -"24 24 9 1", -" c Gray0", -". c #4646424233b4", -"X c #6f4d67895151", -"o c #911b871c69df", -"O c #b3d8a9b58836", -"+ c #c280b9779c39", -"@ c #cd0cc646ae2e", -"# c #e0e0e4e4e0e0", -"$ c None", -/* pixels */ -"$$$$$$$$$$$$$$$$$$$$$$$$", -"$$$$$$$$$$$$$$$$$$$$$$$$", -"$$$$$$$$$$$$$$$$$$$$$$$$", -"$$$$ $$", -"$$$$ ################ $$", -"$$$$ ##### O######## $$", -"$$$$ #### oX O####### $$", -"$$$$ @o $$", -"$$$$ #### @o O####### $$", -"$$$$ #### @o O##### $$", -"$$$$ #### @o X. O## $$", -"$$$$ +o OX oX $$", -"$$$$ ## X +o Oo Oo oX $$", -"$$$$ ## o +OoOOoOOOOo $$", -"$$$$ ## O +++OOOOOOOX $$", -"$$$$ O O++O+OOOOOX $$", -"$$$$ ## ooO+++O+OOOOX $$", -"$$$$ ### oO++++OOOOo. $$", -"$$$$ ### XOO++O+OOOo $$$", -"$$$$ o++++OOOoX $$$", -"$$$$$$$$$ XOO+++OOoX $$$", -"$$$$$$$$$$ oO++OOOX $$$$", -"$$$$$$$$$$$ OO++OOX $$$$", -"$$$$$$$$$$$$$$$$$$$$$$$$" -}; +static char * index_xpm[] = { +"24 24 174 2", +" c None", +". c #000000", +"+ c #FDFDFD", +"@ c #F5F5F5", +"# c #F6F6F6", +"$ c #D0D0D0", +"% c #C1C1C1", +"& c #C3C3C3", +"* c #C6C6C6", +"= c #C8C8C8", +"- c #8D8D8D", +"; c #CACACA", +"> c #919191", +", c #EFEFEF", +"' c #878787", +") c #8A8A8A", +"! c #5C5C5C", +"~ c #F8F8F8", +"{ c #EAEAEA", +"] c #CCCCCC", +"^ c #CECECE", +"/ c #979797", +"( c #CDCDCD", +"_ c #A1A1A1", +": c #090600", +"< c #A3A3A3", +"[ c #C5C5C5", +"} c #C4C4C4", +"| c #D1D1D1", +"1 c #D2D2D1", +"2 c #D2D2D2", +"3 c #9A9A9A", +"4 c #E8E8E8", +"5 c #949494", +"6 c #939393", +"7 c #574F4F", +"8 c #FDFDFC", +"9 c #777777", +"0 c #7E7E7E", +"a c #9D9D9D", +"b c #6B6B6B", +"c c #F1F1F1", +"d c #ECECEC", +"e c #CFCFCF", +"f c #575050", +"g c #FDFAF8", +"h c #A5A5A5", +"i c #B9B9B9", +"j c #EEEEEE", +"k c #EDEDED", +"l c #D5D5D5", +"m c #BABABA", +"n c #6D6767", +"o c #F9F1EA", +"p c #9E9E9E", +"q c #B5B5B5", +"r c #D9D9D9", +"s c #D7D7D7", +"t c #BCBCBC", +"u c #625C5B", +"v c #F9EEE4", +"w c #4F4D4A", +"x c #646464", +"y c #747474", +"z c #D6D6D5", +"A c #DFDFDF", +"B c #A0A0A0", +"C c #615C5B", +"D c #F9F0E4", +"E c #746C67", +"F c #FEFDFC", +"G c #FFFEFD", +"H c #131210", +"I c #636363", +"J c #7C7C7C", +"K c #F3F2F2", +"L c #98948F", +"M c #F9EFE3", +"N c #A09489", +"O c #FEFDFD", +"P c #766D68", +"Q c #736961", +"R c #A3A3A2", +"S c #A6A6A6", +"T c #DBDBDB", +"U c #C7C7C7", +"V c #E8E5E2", +"W c #97938E", +"X c #F6E9D8", +"Y c #84817A", +"Z c #FBF3EA", +"` c #908C86", +" . c #F1EDE7", +".. c #7B7975", +"+. c #878786", +"@. c #070000", +"#. c #FAFAFA", +"$. c #DDDDDD", +"%. c #E2DFDC", +"&. c #A8A199", +"*. c #F0E0CE", +"=. c #C8BFB4", +"-. c #D5CCBF", +";. c #DFD7CD", +">. c #DAD3C9", +",. c #DDCFC4", +"'. c #928C84", +"). c #A8A8A8", +"!. c #959595", +"~. c #040000", +"{. c #D9D5D2", +"]. c #D9CABB", +"^. c #D7C8B8", +"/. c #DECFBF", +"(. c #D8C9B9", +"_. c #E3D3C2", +":. c #C9BBAC", +"<. c #D9CEC2", +"[. c #7F766D", +"}. c #909090", +"|. c #D3D3D3", +"1. c #060100", +"2. c #C0BDBA", +"3. c #8C8782", +"4. c #C2B5A7", +"5. c #BFB4A6", +"6. c #B8AB9D", +"7. c #BAAD9E", +"8. c #BEB0A2", +"9. c #948A7F", +"0. c #716860", +"a. c #E2E2E2", +"b. c #A9A9A8", +"c. c #332C2B", +"d. c #5D5954", +"e. c #79736C", +"f. c #958C80", +"g. c #8D8379", +"h. c #988D82", +"i. c #706760", +"j. c #787878", +"k. c #E4E4E4", +"l. c #C2C2C2", +"m. c #201A1A", +"n. c #57514F", +"o. c #625C59", +"p. c #625A53", +"q. c #6B625A", +"r. c #585251", +"s. c #696764", +"t. c #080000", +"u. c #989898", +"v. c #B0B0B0", +"w. c #AFAFAF", +"x. c #999999", +"y. c #9D9897", +"z. c #050000", +"A. c #0C0303", +"B. c #080100", +"C. c #030000", +"D. c #282523", +"E. c #5A5A5A", +"F. c #868686", +"G. c #ECE4E2", +"H. c #DED7D5", +"I. c #D8D1D0", +"J. c #E0DBD7", +"K. c #E9E6E3", +"L. c #FCFBFA", +"M. c #030500", +"N. c #0B0505", +"O. c #14100F", +"P. c #090806", +"Q. c #000100", +" ", +" . . . . . . . . . . . . . . . . . . . . ", +" . + @ @ @ @ @ @ @ # # # # # # # # # $ . ", +" . @ % % % & & & & * * * * * = = = = - . ", +" . # & & & * * * * = = = = = ; ; ; ; > . ", +" . , ' ' ' ) ) ) ) - - - - - > > > > ! . ", +" . ~ { { { { { { { { { { { { { { { { ; . ", +" . # ; ; ; ] ] ] ] ] ^ ^ ^ ^ $ $ $ $ / . ", +" . # ] ] ] ( ^ ^ ^ _ : < [ } | 1 | 2 3 . ", +" . 4 5 5 5 / / / 6 7 8 . 9 0 - a a a b . ", +" . ~ c d d d d d e f g . h i $ j j k * . ", +" . ~ 2 2 2 2 l l m n o . > p q r r r < . ", +" . ~ l l l l s s t u v w . x . y p z < . ", +" . A B B B B < 9 . C D E F . G H . I J . ", +" . ~ @ , , , j . K L M N O P F Q R . S . ", +" . ~ T T T T U . V W X Y Z ` ...+.@.< . ", +" . #.$.$.$.$.& . %.&.*.=.-.;.>.,.'.@.p . ", +" . { ).).).).!.~.{.].^./.(._.:.<.[.@.}.. ", +" . #.@ c c c |.1.2.3.4.5.6.7.8.9.0.@.] . ", +" . #.a.a.a.a.l b.c.d.e.f.g.9.h.i.. j.q . ", +" . #.a.a.a.a.k.l.j.m.n.o.p.q.r.s.t.u.q . ", +" . a.v.v.v.v.v.w.x.y.z.A.t.B.C.D.E.F.m . ", +" . . . . . . . . . ~.G.H.I.J.K.L.M.. . . ", +" ~.N.z.O.C.P.. Q. "}; diff --git a/lisp/toolbar/jump_to.pbm b/lisp/toolbar/jump_to.pbm Binary files differindex effcdcc8bfd..2939a6c4a66 100644 --- a/lisp/toolbar/jump_to.pbm +++ b/lisp/toolbar/jump_to.pbm diff --git a/lisp/toolbar/jump_to.xpm b/lisp/toolbar/jump_to.xpm index 2106d015285..8f9897974ab 100644 --- a/lisp/toolbar/jump_to.xpm +++ b/lisp/toolbar/jump_to.xpm @@ -1,39 +1,171 @@ /* XPM */ -static char *magick[] = { -/* columns rows colors chars-per-pixel */ -"24 24 9 1", -" c #011b011b011b", -". c #5e0868be52d3", -"X c #7c7c8b8b6e6e", -"o c #8d4d97577838", -"O c #ae51c17b9b26", -"+ c #cedcabd6996e", -"@ c #d305cecebaba", -"# c #e38de39ed709", -"$ c None", -/* pixels */ -"$$$$$$$$$$$$$$$$$$$$$$$$", -"$$$$$$$$$$$$$$$$$$$$$$$$", -"$$$$$$$$$$$$$$$$$$$$$$$$", -"$$$$$$$$$$$$$$$$$$$$$$$$", -"$$$$$$$$$$$$$$$$$$$$$$$$", -"$$$$$$$$$$$$$$$$$$$$$$$$", -"$$$$$$$$$$$$$ $$$$$$$$", -"$$$$$$$$$$$ #@+ $$$$$$", -"$$$$$$$$$$$ ###@+ $$$$$$", -"$$$$$$$ #+++ $$$$$", -"$$$$$$$ o@##O ++++ $$$$$", -"$$$$$$$$ .OO. +++o $$$$$", -"$$$$$$ #@O.. +++ $$$$$$", -"$$$$ #@@Oo.. ++ $$$$$$", -"$$$ #@@OOo. . $$$$$$$$", -"$$$$ #OOO. $ $$$$$$$$$$", -"$$$$$ #OX. $$$$$$$$$$$$$", -"$$$$$$ O. $$$$$$$$$$$$$$", -"$$$$$$$ . $$$$$$$$$$$$$$", -"$$$$$$$$ $$$$$$$$$$$$$$$", -"$$$$$$$$$$$$$$$$$$$$$$$$", -"$$$$$$$$$$$$$$$$$$$$$$$$", -"$$$$$$$$$$$$$$$$$$$$$$$$", -"$$$$$$$$$$$$$$$$$$$$$$$$" -}; +static char * jump_to_xpm[] = { +"24 24 144 2", +" c None", +". c #000000", +"+ c #9ABC82", +"@ c #C1E3AA", +"# c #A0C487", +"$ c #8F6508", +"% c #AD671D", +"& c #D6AF41", +"* c #E1B744", +"= c #B86F20", +"- c #7E5907", +"; c #D8E7CD", +"> c #D9E7CF", +", c #DDEAD2", +"' c #E4EFDA", +") c #EBF6DF", +"! c #C8EBB0", +"~ c #A2C688", +"{ c #986F26", +"] c #E2B946", +"^ c #EFCD64", +"/ c #F4D268", +"( c #F6D469", +"_ c #E7C24A", +": c #D5B044", +"< c #BC8C31", +"[ c #1A0700", +"} c #D7E6CD", +"| c #B2D29C", +"1 c #B6D69F", +"2 c #BDDEA5", +"3 c #C4E7AC", +"4 c #CAEEB1", +"5 c #A1C387", +"6 c #CBB86E", +"7 c #EDD97E", +"8 c #FEE882", +"9 c #FEE77E", +"0 c #FDDF60", +"a c #FBD14F", +"b c #E4BF49", +"c c #BB8C31", +"d c #CFE2C3", +"e c #B2D19C", +"f c #B5D59F", +"g c #BBDBA4", +"h c #C1E3A9", +"i c #C6E9AE", +"j c #C3E6AB", +"k c #A9CE8D", +"l c #DCBA5C", +"m c #FBE46B", +"n c #FFEB64", +"o c #FFE054", +"p c #FED952", +"q c #F8CF4E", +"r c #C4A13E", +"s c #8BA27B", +"t c #618249", +"u c #628349", +"v c #64864B", +"w c #66894D", +"x c #688B4E", +"y c #678B4D", +"z c #6B9251", +"A c #719755", +"B c #55833A", +"C c #ECC75E", +"D c #FFED59", +"E c #FFE757", +"F c #FFDF54", +"G c #FBD44F", +"H c #E1BD48", +"I c #B36C1F", +"J c #608148", +"K c #628449", +"L c #63854A", +"M c #65894C", +"N c #6C9151", +"O c #527E39", +"P c #B39237", +"Q c #F0C248", +"R c #FFF25B", +"S c #FFEB58", +"T c #FFE155", +"U c #FBD450", +"V c #E3BD49", +"W c #BC983B", +"X c #618349", +"Y c #628549", +"Z c #65884B", +"` c #4D7735", +" . c #907934", +".. c #DCB444", +"+. c #FCDB52", +"@. c #FFEF5A", +"#. c #FFE957", +"$. c #FEDF54", +"%. c #F9D24F", +"&. c #E0BA48", +"*. c #B08F37", +"=. c #52743B", +"-. c #456A2F", +";. c #608248", +">. c #628448", +",. c #476F31", +"'. c #7F6B32", +"). c #D0AF4B", +"!. c #F5CF4E", +"~. c #FFE255", +"{. c #FEDA52", +"]. c #EAC54B", +"^. c #D0AC42", +"/. c #9C5D1A", +"(. c #5A7B42", +"_. c #456C2F", +":. c #6F5C23", +"<. c #A78833", +"[. c #F0C54A", +"}. c #FFDA52", +"|. c #FFDE53", +"1. c #C39032", +"2. c #886423", +"3. c #BC9D3B", +"4. c #F0C84E", +"5. c #FFD551", +"6. c #FED751", +"7. c #FDD550", +"8. c #EDC74C", +"9. c #E5BF49", +"0. c #CCA941", +"a. c #AB7727", +"b. c #B1822D", +"c. c #DCB746", +"d. c #DFBA47", +"e. c #EDC64C", +"f. c #E9C34B", +"g. c #D6B144", +"h. c #C19D3D", +"i. c #AB7C2B", +"j. c #BC7222", +"k. c #BB983B", +"l. c #B09638", +"m. c #A2621B", +" ", +" ", +" . ", +" . . ", +" . + . . . . . . . ", +" . . . . . . @ # . . $ % & * = - . . ", +" . ; > , ' ) ! ! ~ . { ] ^ / ( _ : < [ . ", +" . } | 1 2 3 4 4 3 5 . 6 7 8 9 0 a b c . ", +" . d e f g h i i h j k . l m n o p q r - . ", +" . s t u v w x x y z A B . C D E F G H I . ", +" . s J t K L v v M N O . P Q R S T U V W . ", +" . s J J t X u Y Z ` . ...+.@.#.$.%.&.*.. ", +" . =.-.-.-.-.;.>.,.. '.).!.E E ~.{.].^./.. ", +" . . . . . . (._.. :.<.[.}.|.|.{.%.V 1.$ . ", +" . -.. . 2.3.4.5.6.7.8.9.0.a.. ", +" . . . . b.c.d.e.f.g.h.i.. . ", +" . . $ j.k.l.m.$ . . ", +" . . . . . . ", +" ", +" ", +" ", +" ", +" ", +" "}; diff --git a/lisp/toolbar/left_arrow.pbm b/lisp/toolbar/left_arrow.pbm Binary files differindex 6d6f07f0983..044ec82a588 100644 --- a/lisp/toolbar/left_arrow.pbm +++ b/lisp/toolbar/left_arrow.pbm diff --git a/lisp/toolbar/left_arrow.xpm b/lisp/toolbar/left_arrow.xpm index b3f0ae4ab9a..586fe4489c0 100644 --- a/lisp/toolbar/left_arrow.xpm +++ b/lisp/toolbar/left_arrow.xpm @@ -1,35 +1,69 @@ /* XPM */ static char * left_arrow_xpm[] = { -"24 24 9 1", +"24 24 43 1", " c None", -". c #020202", -"+ c #121A12", -"@ c #78A16E", -"# c #86AD7D", -"$ c #B2C6AE", -"% c #263222", -"& c #E7EDE6", -"* c #497241", +". c #000000", +"+ c #B9D0B9", +"@ c #CDDECB", +"# c #B6C7B6", +"$ c #B1C9B0", +"% c #B3C4B3", +"& c #B4CBB2", +"* c #B5CEB5", +"= c #B7CCB5", +"- c #B9CEB7", +"; c #BAD1BA", +"> c #BBCFBA", +", c #BBD0B9", +"' c #B2C9B0", +") c #7EAB78", +"! c #AAC7A8", +"~ c #B3CAB1", +"{ c #B0C9B0", +"] c #B0C9AE", +"^ c #AEC7AC", +"/ c #AAC5A8", +"( c #A9C4A7", +"_ c #698267", +": c #2D2D2D", +"< c #CFDFCC", +"[ c #ADC8AB", +"} c #B0C7AE", +"| c #ADC6AB", +"1 c #678C63", +"2 c #9BAD9A", +"3 c #85AE81", +"4 c #87AF84", +"5 c #87B083", +"6 c #88AF84", +"7 c #88B085", +"8 c #86AF82", +"9 c #547150", +"0 c #3C5235", +"a c #5B7950", +"b c #4A6342", +"c c #3B5035", +"d c #415639", " ", " ", " ", -" ", -" ", -" .. ", -" ..$. ", -" ..&&$. ", -" ..&&&&$. ", -" ..&&&&&&$. ", -" .+&&&&&&&&$. ", -" ..$&&&&&&&&&$% ", -" ..**@@@#####@. ", -" ..**@#@###@. ", -" ..**@#@#@. ", -" ..**@@@. ", -" ..*@*. ", -" ..*. ", -" .. ", -" ", +" . ", +" .. ", +" .+. ", +" .@#. ", +" .@$%........ ", +" .@&*=-;->,'). ", +" .@!~{]^///^(_. ", +" :<[}||[!^^}^[1. ", +" .23444445645789. ", +" .0aaaaaaaaaaab. ", +" .0aaaaaaaaaab. ", +" .0aabccccccd. ", +" .0ab........ ", +" .0b. ", +" .b. ", +" .. ", +" . ", " ", " ", " ", diff --git a/lisp/toolbar/new.pbm b/lisp/toolbar/new.pbm Binary files differindex 93415bf901e..2c2ee9de87c 100644 --- a/lisp/toolbar/new.pbm +++ b/lisp/toolbar/new.pbm diff --git a/lisp/toolbar/new.xpm b/lisp/toolbar/new.xpm index bd45e8962a8..2d4690edd3c 100644 --- a/lisp/toolbar/new.xpm +++ b/lisp/toolbar/new.xpm @@ -1,37 +1,154 @@ /* XPM */ -static char *magick[] = { -/* columns rows colors chars-per-pixel */ -"24 24 7 1", -" c Gray0", -". c #61b761b7600a", -"X c #828282827474", -"o c #a5d8a5d89550", -"O c #d305d305bc3c", -"+ c #ea03ea03d271", -"@ c None", -/* pixels */ -"@@@@@@@@@@@@@@@@@@@@@@@@", -"@@@@@@@@@@@@@@@@@@@@@@@@", -"@@@@@@@@@@@@@ @@@@@@@@@@", -"@@@@@@@@@@@ o @@@@@@@@@", -"@@@@@@@@@ oO+ @@@@@@@@@", -"@@@@@@@ oOOOO+ @@@@@@@@", -"@@@@@ oOOOOOO+o @@@@@@@", -"@@@@ ..OOOOOO+++.@@@@@@@", -"@@@@ +.OOOOO+++++ @@@@@@", -"@@@@ ++.OOO++++++o @@@@@", -"@@@@ ++.oOO+++++++ @@@@@", -"@@@@ +.oOO+++++++++ @@@@", -"@@@@ oOO++++++++++O @@@", -"@@@@ .OOO+++++++++++O @@", -"@@@@ oOO++++++++++++X @@", -"@@@@@ +++++++++++++ @@@", -"@@@@@ O++++++++++O @@@@@", -"@@@@@@.+++++++++X @@@@@@", -"@@@@@@ +++++++O @@@@@@@@", -"@@@@@@@ +++++o @@@@@@@@@", -"@@@@@@@ O++O. @@@@@@@@@@", -"@@@@@@@@ +o @@@@@@@@@@@@", -"@@@@@@@@@ @@@@@@@@@@@@@", -"@@@@@@@@@@@@@@@@@@@@@@@@" -}; +static char * new_xpm[] = { +"24 24 127 2", +" c None", +". c #000000", +"+ c #D3D3D3", +"@ c #F6F6F6", +"# c #FFFFFF", +"$ c #F9F9F9", +"% c #DADADA", +"& c #585858", +"* c #C7C7C7", +"= c #D1D1D1", +"- c #D6D6D6", +"; c #FEFEFE", +"> c #FDFDFD", +", c #C0C0C0", +"' c #E1E1E1", +") c #F0F0F0", +"! c #9B9B9B", +"~ c #FCFCFB", +"{ c #FBFBFB", +"] c #AFAFAE", +"^ c #E9E9E9", +"/ c #DFDFDF", +"( c #8F8F8F", +"_ c #FAFAF9", +": c #F9F9F8", +"< c #A4A4A3", +"[ c #F4F4F4", +"} c #CFCFCF", +"| c #A2A2A2", +"1 c #F8F8F7", +"2 c #F8F7F6", +"3 c #9E9E9E", +"4 c #F7F6F5", +"5 c #F6F6F4", +"6 c #F4F3F2", +"7 c #DEDDDC", +"8 c #D3D2D0", +"9 c #B7B7B5", +"0 c #9F9E9D", +"a c #706F6F", +"b c #65625A", +"c c #F5F4F3", +"d c #F2F2F0", +"e c #E4E4E2", +"f c #DAD9D7", +"g c #D8D8D6", +"h c #CDCCCA", +"i c #AFAEAC", +"j c #88847B", +"k c #F3F3F1", +"l c #EFEFED", +"m c #EEEDEB", +"n c #EDECEA", +"o c #E9E8E6", +"p c #D5D4D3", +"q c #C4C3C2", +"r c #8F8A81", +"s c #F6F5F4", +"t c #F5F5F3", +"u c #F1F1EF", +"v c #F1F0EE", +"w c #ECEBE9", +"x c #EAE9E7", +"y c #E5E4E2", +"z c #E4E3E0", +"A c #D2D1CE", +"B c #8D887E", +"C c #F3F2F1", +"D c #F0F0EE", +"E c #F0EFED", +"F c #EFEEEC", +"G c #E8E7E5", +"H c #E5E4E1", +"I c #E2E1DE", +"J c #E1DFDC", +"K c #979288", +"L c #A49E93", +"M c #E8E7E4", +"N c #E7E6E3", +"O c #E3E2DF", +"P c #E2E0DD", +"Q c #E1E0DC", +"R c #E0DFDB", +"S c #A19C90", +"T c #EDEDEB", +"U c #EBEAE8", +"V c #E9E8E5", +"W c #E6E4E1", +"X c #E3E2DE", +"Y c #DFDEDA", +"Z c #DEDDD9", +"` c #DDDCD8", +" . c #A19B90", +".. c #E7E5E2", +"+. c #E4E3DF", +"@. c #DCDBD7", +"#. c #E6E5E2", +"$. c #E5E4E0", +"%. c #E2E1DD", +"&. c #DBD9D5", +"*. c #D9D7D3", +"=. c #9F998D", +"-. c #E4E2DF", +";. c #DDDBD7", +">. c #DCDAD6", +",. c #D8D6D2", +"'. c #9E988D", +"). c #EDEDED", +"!. c #E1E0DD", +"~. c #E0DEDA", +"{. c #D8D6D1", +"]. c #D7D5D1", +"^. c #9D978B", +"/. c #E1DFDB", +"(. c #DEDCD8", +"_. c #D7D6D1", +":. c #D5D3CE", +"<. c #9B958A", +"[. c #999891", +"}. c #A39E92", +"|. c #A39D92", +"1. c #A39D91", +"2. c #A29C90", +"3. c #A19B8F", +"4. c #9D978C", +"5. c #9B968A", +"6. c #676359", +" ", +" . . . . . . . . . . . . . ", +" . + @ # # # # # # # # $ % & . ", +" . @ # # # # # # # # # # * = - . ", +" . # # # # # # # ; # ; > , ' ) ! . ", +" . # # # # # ; > ~ > ~ { ] ^ # / ( . ", +" . # # # ; > ~ { _ { _ : < ) # [ } | . ", +" . # ; > ~ { _ : 1 : 1 2 3 . . . . . . . ", +" . # ~ { _ : 1 2 4 2 4 5 6 7 8 9 0 a b . ", +" . # _ : 1 2 4 5 c 5 c 6 d e f g h i j . ", +" . # 1 2 4 5 c 6 k 6 k d l m n o p q r . ", +" . # s t 6 6 k d u d u v m w x y z A B . ", +" . # 6 C d D l v E v E F w G H z I J K . ", +" . # 6 C d D l v E v E F w G H z I J L . ", +" . # D l l F m n n n n w M N O P Q R S . ", +" . # T n w w w U V U V V H W X Y Z ` .. ", +" . # U o o G M M N M N ..+.X R Z ` @. .. ", +" . # N #.#.#.H W $.W $.+.%.R Z @.&.*.=.. ", +" . $ z O X -.+.%.X %.X Q Q Z ;.>.*.,.'.. ", +" . ).!.J Q R %.R Q R Q Y ~.;.>.*.{.].^.. ", +" . = /.~.Y Z R Z ~.Z ~.(.(.>.>.,._.:.<.. ", +" . [.}.L |.1.|.S 2.S 2.3. .=.=.4.4.5.6.. ", +" . . . . . . . . . . . . . . . . . . ", +" "}; diff --git a/lisp/toolbar/open.pbm b/lisp/toolbar/open.pbm Binary files differindex 3d2be258a67..d1ddfc51eab 100644 --- a/lisp/toolbar/open.pbm +++ b/lisp/toolbar/open.pbm diff --git a/lisp/toolbar/open.xpm b/lisp/toolbar/open.xpm index 62b70e7468b..6b95c7e476d 100644 --- a/lisp/toolbar/open.xpm +++ b/lisp/toolbar/open.xpm @@ -1,34 +1,200 @@ /* XPM */ -static char *magick[] = { -/* columns rows colors chars-per-pixel */ -"24 24 4 1", -" c Gray0", -". c #999990907b7b", -"X c #fffffefef7f7", -"o c None", -/* pixels */ -"oooooooooooooooooooooooo", -"oooooooooooooooooooooooo", -"oooooooooooooooooooooooo", -"oooooooooooooooooooooooo", -"oooooooooooooooooooooooo", -"oooooooooooooo oooooooo", -"ooooooooooo .. ooooooo", -"oooo oo ....XXo ooo", -"ooo .. ....XXXX .. ooo", -"ooo .....XXXXX .... ooo", -"oooo ..XXXXX ...... ooo", -"oooo ..XXX ........ ooo", -"ooooo .XX .......... ooo", -"ooooo ..X .......... ooo", -"oooooo .X .......... ooo", -"oooooo .. ........ oooo", -"ooooooo . ...... oooooo", -"ooooooo . ..... oooooooo", -"oooooooo ... ooooooooo", -"oooooooo . ooooooooooo", -"ooooooooo ooooooooooooo", -"oooooooooooooooooooooooo", -"oooooooooooooooooooooooo", -"oooooooooooooooooooooooo" -}; +static char * open_xpm[] = { +"24 24 173 2", +" c None", +". c #000000", +"+ c #010100", +"@ c #B5B8A5", +"# c #E4E7D2", +"$ c #878A76", +"% c #33342B", +"& c #0B0B0B", +"* c #E2E5CF", +"= c #CFD4AF", +"- c #CED3AE", +"; c #B2B696", +"> c #2D2D25", +", c #23241D", +"' c #9D9F90", +") c #C6CAA6", +"! c #C4C9A5", +"~ c #C6CBA7", +"{ c #C7CCA8", +"] c #C9CEA9", +"^ c #555847", +"/ c #1A1B15", +"( c #20201A", +"_ c #D4D6C2", +": c #BEC2A0", +"< c #B3B896", +"[ c #B0B595", +"} c #B3B797", +"| c #B6BB99", +"1 c #BBC09E", +"2 c #BCC19F", +"3 c #81856C", +"4 c #3E3F32", +"5 c #010101", +"6 c #DADDC8", +"7 c #AFB494", +"8 c #AAAF8F", +"9 c #A3A789", +"0 c #A6AA8B", +"a c #A9AD8E", +"b c #A7AB8D", +"c c #A4A88A", +"d c #A1A588", +"e c #AAAD96", +"f c #B3B5A5", +"g c #B8BBAA", +"h c #BABCAB", +"i c #C1C3B2", +"j c #C7CAB7", +"k c #CACDBB", +"l c #BABDA8", +"m c #0C0C09", +"n c #DDDFCB", +"o c #969B7E", +"p c #9DA286", +"q c #95987C", +"r c #96997E", +"s c #9A9D81", +"t c #999D80", +"u c #9DA184", +"v c #A5AA8B", +"w c #A4A98A", +"x c #A3A889", +"y c #A2A588", +"z c #A2A587", +"A c #9FA386", +"B c #9B9E83", +"C c #898D74", +"D c #D8DBC9", +"E c #84866E", +"F c #7D8169", +"G c #151612", +"H c #D7DAC9", +"I c #797D67", +"J c #3D3F34", +"K c #E0E0D9", +"L c #EBEDDD", +"M c #E8EBD9", +"N c #E7EAD8", +"O c #E3E6D4", +"P c #DEE1D0", +"Q c #DADCCC", +"R c #DADCD1", +"S c #2B2C28", +"T c #D7DAC6", +"U c #6F735E", +"V c #0D0D0D", +"W c #F4F4EC", +"X c #CACFAB", +"Y c #C6CBA8", +"Z c #C2C6A4", +"` c #ABB091", +" . c #23251E", +".. c #494B3D", +"+. c #DCDCD4", +"@. c #EAECDD", +"#. c #CDD2AD", +"$. c #CCD1AC", +"%. c #CACFAA", +"&. c #BABF9D", +"*. c #B5B999", +"=. c #81836C", +"-. c #070806", +";. c #D5D8C4", +">. c #161616", +",. c #F2F2EA", +"'. c #C9CEAA", +"). c #C8CDA9", +"!. c #C4C9A6", +"~. c #C1C5A3", +"{. c #BCC09F", +"]. c #B6BB9A", +"^. c #B0B494", +"/. c #9DA185", +"(. c #535445", +"_. c #B6B8A7", +":. c #747470", +"<. c #ECECE2", +"[. c #C3C8A5", +"}. c #C2C7A4", +"|. c #C0C5A2", +"1. c #BFC4A1", +"2. c #BDC2A0", +"3. c #B9BD9C", +"4. c #B9BE9D", +"5. c #A9AD8F", +"6. c #A3A78A", +"7. c #80836D", +"8. c #020201", +"9. c #A6A998", +"0. c #B8BC9B", +"a. c #AFB394", +"b. c #ACB091", +"c. c #A8AC8E", +"d. c #A6AA8C", +"e. c #9FA286", +"f. c #9B9F83", +"g. c #9A9D82", +"h. c #8A8D75", +"i. c #4F5243", +"j. c #070705", +"k. c #9E9F91", +"l. c #E5E6DA", +"m. c #ADB192", +"n. c #A5A98C", +"o. c #9FA387", +"p. c #999D81", +"q. c #95987E", +"r. c #92957B", +"s. c #8C8F76", +"t. c #8A8D74", +"u. c #71735F", +"v. c #080908", +"w. c #E3E5D9", +"x. c #C0C3AF", +"y. c #94987C", +"z. c #8F9379", +"A. c #8B8F75", +"B. c #8A8E74", +"C. c #888C73", +"D. c #858970", +"E. c #868971", +"F. c #82866E", +"G. c #80836C", +"H. c #7D8069", +"I. c #797C66", +"J. c #727560", +"K. c #717460", +"L. c #71745F", +"M. c #6A6D59", +"N. c #434538", +"O. c #080907", +"P. c #050504", +" ", +" ", +" ", +" . . . . . . . ", +" + @ # # # # # $ % ", +" & * = = = - - ; > ", +", ' * ) ! ~ { ] ] ^ / ", +"( _ : < [ } | 1 2 3 4 5 . . . . . . . ", +", 6 7 8 9 0 8 a b c d e f g h i j k l . ", +"m n o p q r s t r u v w x y 9 z A B C . ", +". D E F G . . . . . . . . . . . . . . . 5 5 ", +". H I J K L M M M M M M M M M M M N O P Q R S ", +". T U V W = = = = = = = = = - - - X Y Z 1 ` . ", +". T ..+.@.#.- - #.- #.#.#.#.#.$.%.Y Z &.*.=.-. ", +". ;.>.,.X %.X %.'.%.'.{ ).).Y !.~.{.].^./.(.m ", +". _.:.<.[.}.}.Z |.Z 1.2.|.2.3.4.} [ 5.6.7.8. ", +". 9.+.0.0.*.} } [ [ a.a.a.b.c.d.e.f.g.h.i.j. ", +". k.l.m.5.d.n.6.6.d o.e.f.p.q.r.s.t.t.u.v. ", +". w.x.y.z.A.B.C.C.D.E.F.G.H.I.J.K.L.M.N.O. ", +" . . . . . . . . . . . . . . . . . . P. ", +" ", +" ", +" ", +" "}; diff --git a/lisp/toolbar/paste.pbm b/lisp/toolbar/paste.pbm Binary files differindex e51819c682a..e91a80b25d8 100644 --- a/lisp/toolbar/paste.pbm +++ b/lisp/toolbar/paste.pbm diff --git a/lisp/toolbar/paste.xpm b/lisp/toolbar/paste.xpm index bc4fc3b965e..cdd86366d66 100644 --- a/lisp/toolbar/paste.xpm +++ b/lisp/toolbar/paste.xpm @@ -1,35 +1,116 @@ /* XPM */ -static char *magick[] = { -/* columns rows colors chars-per-pixel */ -"24 24 5 1", -" c Gray0", -". c #62ee62ee62ee", -"X c Gray68", -"o c Gray82", -"O c None", -/* pixels */ -"OOOOOOOOOOOOOOOOOOOOOOOO", -"OOOOOOOOOOOOOOOOOOOOOOOO", -"OOOOOOOOOOOOOOOOOOOOOOOO", -"OOOOOOOOO OOOOOOOOOOOO", -"OOOOOOO ooo OOOOOO OOOO", -"OOOOO ooooo OOO OOO", -"OOO oo. .Xoo OO OOO", -"OO ooo.oX..oo OOOOO OOOO", -"OO ooo.X..oooo OOOOOOOOO", -"OOO oo..Xooooo O OOOOOO", -"OOO oooooooooo oX OOOOO", -"OOOO ooooooo XXoo OOOOO", -"OOOO ooooooo o.XooX OOOO", -"OOOOO oooooo o.Xooo OOOO", -"OOOOO oooooo .XooooX OOO", -"OOOOOO ooooX XooooooX OO", -"OOOOOO XXOXX Xooooooo OO", -"OOOOOOO XXXX oooooooX O", -"OOOOOOO XX O XooooX OO", -"OOOOOOOO OOOO ooX OOOO", -"OOOOOOOOOOOOOO X OOOOOO", -"OOOOOOOOOOOOOOO OOOOOOOO", -"OOOOOOOOOOOOOOOOOOOOOOOO", -"OOOOOOOOOOOOOOOOOOOOOOOO" -}; +static char * paste_xpm[] = { +"24 24 89 1", +" c None", +". c #000000", +"+ c #B9B9B9", +"@ c #FEFEFE", +"# c #F9F9F9", +"$ c #757575", +"% c #F5F5E8", +"& c #565651", +"* c #FFFFFF", +"= c #A0A0A0", +"- c #939393", +"; c #7C7C7C", +"> c #C5C5BB", +", c #CFC6A0", +"' c #D7CEAA", +") c #ADA689", +"! c #4B483C", +"~ c #6D6D6D", +"{ c #6C6C6C", +"] c #A9A9A9", +"^ c #3D3A30", +"/ c #979178", +"( c #C1B898", +"_ c #8A793D", +": c #C3BB9A", +"< c #AFA78A", +"[ c #444236", +"} c #FAFAFA", +"| c #EFEFEF", +"1 c #C7C7C7", +"2 c #D8D8D8", +"3 c #D2D2D2", +"4 c #7B7B7B", +"5 c #302E26", +"6 c #89846C", +"7 c #C4BC9A", +"8 c #847235", +"9 c #C5C5C5", +"0 c #A7A7A7", +"a c #ADADAD", +"b c #9A9A9A", +"c c #9B9B9B", +"d c #868686", +"e c #424242", +"f c #847033", +"g c #C9C09E", +"h c #464337", +"i c #35332A", +"j c #2D2B23", +"k c #C6BE9D", +"l c #826F33", +"m c #7F7964", +"n c #4C493C", +"o c #171612", +"p c #13120F", +"q c #3E3B31", +"r c #282210", +"s c #474438", +"t c #B3B3B3", +"u c #D6D6D6", +"v c #B7AE90", +"w c #B1AA8C", +"x c #37352B", +"y c #151410", +"z c #8F8F8F", +"A c #989898", +"B c #C6C6C6", +"C c #B9B293", +"D c #11100D", +"E c #434035", +"F c #636363", +"G c #767676", +"H c #AAA48B", +"I c #A5A086", +"J c #A19A7F", +"K c #312F26", +"L c #AFA88C", +"M c #050403", +"N c #12110E", +"O c #A9A489", +"P c #A39E85", +"Q c #EBE7D0", +"R c #D2C9A5", +"S c #A29053", +"T c #8E7C3D", +"U c #88793B", +"V c #806C2F", +"W c #78652B", +"X c #251F0C", +" .... ", +" ......+@#$...... ", +".%%%%%&*=-;&>%%%,. ", +".%''')!*~{]^/(''_. ", +".%::<[}|123456<78. ", +".%''!900abcde!)'f. ", +".%g:6hijjjjj56<kl. ", +".%'''////////(''l. ", +".%g::::mnopppp^qr.... ", +".%'''''st***********u. ", +".%vwwwwx*************. ", +".%'''''y*0zzA**Bz*zB*. ", +".%CwwwwD*************. ", +".%'''''E*~F*GzzB*Bz**. ", +".%HIJJJK*************. ", +".%'''''E*0zz*zzzB*Az*. ", +".%LIJJJM*************. ", +".%'''''N*~F*GzzB*Bz**. ", +".%OPJJJK*************. ", +".Q'''''E*0zz*zzzB*Az*. ", +".RSTUVWX*************. ", +" .......u***********u. ", +" ............. ", +" "}; diff --git a/lisp/toolbar/preferences.pbm b/lisp/toolbar/preferences.pbm Binary files differindex 08819766ec0..e266d368559 100644 --- a/lisp/toolbar/preferences.pbm +++ b/lisp/toolbar/preferences.pbm diff --git a/lisp/toolbar/preferences.xpm b/lisp/toolbar/preferences.xpm index e9a7656bcdc..3cdc884dd4d 100644 --- a/lisp/toolbar/preferences.xpm +++ b/lisp/toolbar/preferences.xpm @@ -1,35 +1,114 @@ /* XPM */ static char * preferences_xpm[] = { -"24 24 8 1", +"24 24 87 1", " c None", ". c #000000", -"+ c #E1E0E0", -"@ c #D7C99B", -"# c #9A6C4E", -"$ c #A4A199", -"% c #858579", -"& c #AD8E30", -" ", -" ", -" ", -" .. ", -" ..++. . ", -" ..++++. .@. ", -" ...+++++++. .@#. ", -" ..++++++++++. .@#. ", -" .++++++#++++++.@#. ", -" .+++++#++++++.@#. ", -" .++#+#+++++.@#. ", -" .++#$#++++.@#.+. ", -" .++##+++.@#.++@. ", -" .++++++.@#.+++@%. ", -" .++++&+..@$$$$%. ", -" .++++..$$$$$$@. ", -" .+$%%$+++++.. ", -" .+++++++++. ", -" .++++++.. ", -" .++++@. ", -" .++.. ", -" .. ", -" ", +"+ c #BAB5AB", +"@ c #D0CDC6", +"# c #88857D", +"$ c #C9C6BE", +"% c #CCC8C1", +"& c #E5E3E0", +"* c #FFFFFF", +"= c #757575", +"- c #2E2E2E", +"; c #F6F5F5", +"> c #CCCCCC", +", c #AFAFAF", +"' c #D3D1CB", +") c #C1C0BF", +"! c #F0EFED", +"~ c #797772", +"{ c #DCDCDC", +"] c #A5A19C", +"^ c #EAE9E5", +"/ c #F3F1F0", +"( c #EDEDED", +"_ c #A19D96", +": c #C1BDB4", +"< c #DBD8D3", +"[ c #D9D6D1", +"} c #89857E", +"| c #FCFCFC", +"1 c #EAE9E6", +"2 c #F5F4F3", +"3 c #C6C2BA", +"4 c #F0EFEE", +"5 c #F4F4F3", +"6 c #CBC7C0", +"7 c #ECECEB", +"8 c #676560", +"9 c #54524D", +"0 c #777676", +"a c #797978", +"b c #85827E", +"c c #79756F", +"d c #7590AE", +"e c #A4BAD0", +"f c #90A6BE", +"g c #9F9F9E", +"h c #BEBDBC", +"i c #B8B4AD", +"j c #87837C", +"k c #D3DFEA", +"l c #A2AEBC", +"m c #9DB6CE", +"n c #637B95", +"o c #E2E2E2", +"p c #EEEEED", +"q c #849CB6", +"r c #D7E2ED", +"s c #8D98A5", +"t c #9DB8D2", +"u c #607791", +"v c #EDEDEC", +"w c #99ADC3", +"x c #DFE7F0", +"y c #8193A9", +"z c #586D84", +"A c #5B7189", +"B c #F1F1F1", +"C c #EEEDEB", +"D c #A7A6A5", +"E c #726F6A", +"F c #A1B4C8", +"G c #EEF3F6", +"H c #60768F", +"I c #DEDDDC", +"J c #787776", +"K c #4E4E4D", +"L c #91A6BE", +"M c #F0F4F7", +"N c #97A5B6", +"O c #BFBEBD", +"P c #AAAAA9", +"Q c #ACACAB", +"R c #B0C6DB", +"S c #EDF2F6", +"T c #818A95", +"U c #6C85A1", +"V c #C0D1E2", +" .. ", +" .+@#. ", +" .$%+. .. ", +" .&$. .*=. ", +" .. -;$. .*>,. ", +" .' ..)!+~. .{,. ", +" .]%%^/+++. .(.. ", +" ._:%$<[+}. .|. ", +" .....123}..>. ", +" .456.,. ", +" .7.,.. ", +" .,.89. ", +" ....,.0abc. ", +" .def.. .ghij. ", +" .dklmn. .op6}. ", +" .qrsntu. .v/$}. ", +" .wxyztdA. .BCDE..", +" .FGyHtdA. .IJK,.", +" .LMNHtdA. .OPQ.", +" .RSTtdA.. ... ", +" .UtVLA.. ", +" .UUn.. ", +" ... ", " "}; diff --git a/lisp/toolbar/print.pbm b/lisp/toolbar/print.pbm Binary files differindex 63cea6d84d2..be20a9142cd 100644 --- a/lisp/toolbar/print.pbm +++ b/lisp/toolbar/print.pbm diff --git a/lisp/toolbar/print.xpm b/lisp/toolbar/print.xpm index 06dee7c26bf..95f2f400800 100644 --- a/lisp/toolbar/print.xpm +++ b/lisp/toolbar/print.xpm @@ -1,36 +1,202 @@ /* XPM */ -static char *magick[] = { -/* columns rows colors chars-per-pixel */ -"24 24 6 1", -" c #043904390439", -". c #40403f3f3f3f", -"X c #5a1a5a0458f3", -"o c #a74da686a5ec", -"O c #e88de7c9e66c", -"+ c None", -/* pixels */ -"++++++++++++++++++++++++", -"++++++++++++++++++++++++", -"++++++++++++++++++++++++", -"++++++++++++ ++++++++++", -"+++++++++++ OOX +++++++", -"++++++++++ OOOOOO. +++", -"+++++++++ OOOOOOOOOo +++", -"+++++++++.OOOOOOOOO ++++", -"+++++++ oOOOOOOOOX+++++", -"+++++ OooXOOOOOOo ++++", -"+++ OOOOOoXXooOO.XX ++", -"++ ooOOOOOOOOoXXX.X.. ++", -"++ ooooOOOOOOOOOO.... ++", -"++ ooooooOOOOOOO..... ++", -"++ XooooooooOOO...... ++", -"++ X.XoooooooX....... ++", -"++ XX...XooooX...... ++", -"+++ XXXX...XX..... ++++", -"+++++ .XXXXX... +++++", -"++++++++ .XX.. +++++++", -"+++++++++++ ++++++++", -"++++++++++++++++++++++++", -"++++++++++++++++++++++++", -"++++++++++++++++++++++++" -}; +static char * print_xpm[] = { +"24 24 175 2", +" c None", +". c #000000", +"+ c #C7C7C7", +"@ c #FAFAFA", +"# c #FCFCFC", +"$ c #FBFBFB", +"% c #F8F8F8", +"& c #AFAFAF", +"* c #F9F9F9", +"= c #E5E5E5", +"- c #E3E3E3", +"; c #E2E2E2", +"> c #E0E0E0", +", c #DFDFDF", +"' c #DCDCDC", +") c #DBDBDB", +"! c #B6B6B6", +"~ c #6B6B6B", +"{ c #676767", +"] c #818181", +"^ c #E7E7E7", +"/ c #606060", +"( c #A0A0A0", +"_ c #DADADA", +": c #E1E1E1", +"< c #B7B7B7", +"[ c #FDFDFD", +"} c #EFEFEF", +"| c #EEEEEE", +"1 c #EDEDED", +"2 c #ECECEC", +"3 c #EBEBEB", +"4 c #E9E9E9", +"5 c #E8E8E8", +"6 c #BFBFBF", +"7 c #8A8A8A", +"8 c #6A6A6A", +"9 c #9E9E9E", +"0 c #F6F6F6", +"a c #909090", +"b c #A2A2A2", +"c c #AAAAAA", +"d c #F4F4F4", +"e c #CECECE", +"f c #ADADAD", +"g c #AEAEAE", +"h c #BEBEBE", +"i c #A6A6A6", +"j c #CDCDCD", +"k c #F5F5F5", +"l c #DEDEDE", +"m c #DDDDDD", +"n c #C9C9C9", +"o c #878787", +"p c #888888", +"q c #D0D0D0", +"r c #6E6E6E", +"s c #797979", +"t c #D1D1D1", +"u c #A1A1A1", +"v c #B3B3B3", +"w c #FFFFFF", +"x c #CACACA", +"y c #A7A7A7", +"z c #A5A5A5", +"A c #A4A4A4", +"B c #A3A3A3", +"C c #87847C", +"D c #EAE8E3", +"E c #8D8982", +"F c #53524C", +"G c #807D74", +"H c #AAA9A5", +"I c #BAB5AB", +"J c #F3F3F3", +"K c #C3C1BD", +"L c #8B8B89", +"M c #E6E5E1", +"N c #F9F9F8", +"O c #FAFAF9", +"P c #F9F9F7", +"Q c #F7F6F5", +"R c #F7F7F4", +"S c #F6F5F4", +"T c #F2F1EE", +"U c #F0EFEC", +"V c #E5E5E4", +"W c #9F9F9F", +"X c #DFDED9", +"Y c #A4A3A1", +"Z c #6C6B6A", +"` c #F5F4F3", +" . c #D5D5D5", +".. c #D3D3D3", +"+. c #D4D4D3", +"@. c #D4D4D4", +"#. c #A9A9A9", +"$. c #B5B5B5", +"%. c #CDCDCB", +"&. c #B5B5B4", +"*. c #DCDAD3", +"=. c #6B6B6A", +"-. c #999896", +";. c #918F87", +">. c #999895", +",. c #E6E4E1", +"'. c #F0EEEC", +"). c #FAF9F9", +"!. c #F9F8F7", +"~. c #F8F7F6", +"{. c #F8F8F7", +"]. c #F4F3F1", +"^. c #F2F1EF", +"/. c #565655", +"(. c #858482", +"_. c #9C9B99", +":. c #6B6A68", +"<. c #585858", +"[. c #5E5C57", +"}. c #524F4B", +"|. c #4A4845", +"1. c #4B4A46", +"2. c #4B4946", +"3. c #4A4844", +"4. c #494743", +"5. c #484642", +"6. c #474541", +"7. c #464440", +"8. c #514F4B", +"9. c #53514E", +"0. c #7B7A77", +"a. c #797771", +"b. c #949391", +"c. c #989694", +"d. c #868480", +"e. c #6E6C66", +"f. c #706D67", +"g. c #5C5955", +"h. c #67645F", +"i. c #5B5954", +"j. c #585651", +"k. c #5D5B56", +"l. c #595652", +"m. c #53504C", +"n. c #575450", +"o. c #595752", +"p. c #5C5956", +"q. c #5B5956", +"r. c #61615E", +"s. c #696861", +"t. c #77756F", +"u. c #7E7B77", +"v. c #979690", +"w. c #96938D", +"x. c #807E77", +"y. c #7D7A74", +"z. c #787770", +"A. c #716F6A", +"B. c #6E6C67", +"C. c #595753", +"D. c #63615C", +"E. c #686661", +"F. c #6F6E68", +"G. c #6D6C66", +"H. c #72716B", +"I. c #76746F", +"J. c #6A6963", +"K. c #8B8880", +"L. c #B2AFA8", +"M. c #B6B3AD", +"N. c #BFBDB6", +"O. c #BDBBB4", +"P. c #B0AEA6", +"Q. c #ABA8A2", +"R. c #9C9991", +" ", +" . . . . . . . . . . . . ", +" . + @ # # # # # # # $ % & . ", +" . * = - - - ; > , , ' ) ! . ", +" . # ~ { ] ^ / ( _ : > > < . ", +" . [ } | 1 1 | 2 2 3 4 5 6 . ", +" . [ 7 8 9 0 a b 4 c a d + . ", +" . [ # # # # $ $ # # $ $ e . ", +" . [ f g = h % h i j 3 # j . ", +" . k l l l m l l , l 5 : n . ", +" . . @ o ~ p q r s t p u q v . . ", +" . w . x y z A z z i B b u u 9 . C . ", +" . w D E F . . . . . . . . . . G C H I . ", +" . w w J w w w w w w w w w w w w w w w w D . ", +" . K L M N O N P Q R O O S T T U V D W X I . ", +" . Y Z ` h .! ..! +.< @.#...$.%.&.*.=.-.;.. ", +" . >.=.,.'.Q N @ ).N !.~.{.{.].].].^./.(.;.. ", +" . _.:.<.[.}.|.1.2.2.2.3.4.5.6.4.7.8.9.0.a.. ", +" . b.c.d.e.f.g.h.i.j.i.k.l.m.n.o.p.q.r.s.t.. ", +" . u.v.w.;.x.y.z.t.A.t.A.B.C.D.E.F.G.H.I.J.. ", +" . . . . . . . . . . . . . . . . . . . . ", +" . K.L.M.N.N.N.N.N.O.P.L.Q.P.R.R.R.G G . ", +" . . . . . . . . . . . . . . . . . . ", +" "}; diff --git a/lisp/toolbar/right_arrow.pbm b/lisp/toolbar/right_arrow.pbm Binary files differindex 583f2bd13fa..4be953e4b2e 100644 --- a/lisp/toolbar/right_arrow.pbm +++ b/lisp/toolbar/right_arrow.pbm diff --git a/lisp/toolbar/right_arrow.xpm b/lisp/toolbar/right_arrow.xpm index 9e0b14749a8..da8156879d6 100644 --- a/lisp/toolbar/right_arrow.xpm +++ b/lisp/toolbar/right_arrow.xpm @@ -1,35 +1,67 @@ /* XPM */ static char * right_arrow_xpm[] = { -"24 24 9 1", +"24 24 41 1", " c None", -". c #020202", -"+ c #1A1A1A", -"@ c #779D6D", -"# c #88AE80", -"$ c #97B78B", -"% c #9EBA92", -"& c #E9EFE8", -"* c #3C5936", +". c #000000", +"+ c #8CA782", +"@ c #B1CDAE", +"# c #77A16E", +"$ c #B4CEB1", +"% c #ACC8A9", +"& c #709867", +"* c #C1D6BD", +"= c #BDD3B8", +"- c #BFD4BB", +"; c #C2D7BE", +"> c #B0CAAD", +", c #B2CBB0", +"' c #AAC7A8", +") c #0F1308", +"! c #AEC5A8", +"~ c #AEC8AD", +"{ c #ABC7A8", +"] c #AAC6A7", +"^ c #A8C6A5", +"/ c #ADC8AD", +"( c #A8C7A8", +"_ c #A5C4A3", +": c #7F9F76", +"< c #A6BFA0", +"[ c #ABC7AA", +"} c #A7C5A4", +"| c #A9C7A6", +"1 c #AFC8AD", +"2 c #A4C3A2", +"3 c #6B9060", +"4 c #778E6F", +"5 c #698D60", +"6 c #6B9063", +"7 c #445B2C", +"8 c #6B8661", +"9 c #5B7950", +"0 c #6C8562", +"a c #65815C", +"b c #506B46", " ", " ", " ", -" ", -" ", -" .. ", -" .&.. ", -" .&&&.. ", -" .&&&&&.. ", -" .&&&&&&&.. ", -" .&&&&&&&&&+. ", -" +&&&&&&&&&&%.. ", -" .%#######@@*.. ", -" .%#####@@*.. ", -" .%###@@*.. ", -" .$#@@*.. ", -" .#@*.. ", -" .*.. ", -" .. ", -" ", +" . ", +" .. ", +" .+. ", +" .@#. ", +" ........$%&. ", +" .*=-;;;;>,'&) ", +" .!~{{{]^'/(_:. ", +" .<[^}^|{%'{123. ", +" .45666666666657. ", +" .8999999999997. ", +" .099999999997. ", +" .abbbbbb9997. ", +" ........b97. ", +" .b7. ", +" .7. ", +" .. ", +" . ", " ", " ", " ", diff --git a/lisp/toolbar/save.pbm b/lisp/toolbar/save.pbm Binary files differindex e153a144432..7bbd296650c 100644 --- a/lisp/toolbar/save.pbm +++ b/lisp/toolbar/save.pbm diff --git a/lisp/toolbar/save.xpm b/lisp/toolbar/save.xpm index 8bdb36315be..cfa651dfaf3 100644 --- a/lisp/toolbar/save.xpm +++ b/lisp/toolbar/save.xpm @@ -1,35 +1,247 @@ /* XPM */ -static char *magick[] = { -/* columns rows colors chars-per-pixel */ -"24 24 5 1", -" c #01be01be01be", -". c #62dd62dd62dd", -"X c Gray62", -"o c #e625e625e625", -"O c None", -/* pixels */ -"OOOOOOOOOOOOOOOOOOOOOOOO", -"OOOOOOOOOOOOOOOOOOOOOOOO", -"OOOOOOOOOOOOOOOOOOOOOOOO", -"OOOOOOOOOOOOOOOOOOOOOOOO", -"OOOOOOOOOOOOO OOOOOOOOO", -"OOOOOOOOOOO X. OOOOOOOO", -"OOOOOOOOO oXoX OOOOOOOO", -"OOOOOOO oXoooXX OOOOOOO", -"OOOOO oXoooooo. OOOOOOO", -"OOO XoooooooooX OOOOOO", -"OO XooooooooooooX OOOOOO", -"OO .XoooooooooooX. OOOOO", -"OOO XooooooooooXXX OOOOO", -"OOO .XoooooooXX..X. OOOO", -"OOOO XoooooXX...X.X OOOO", -"OOOO .XooXX.Xoo.X.X. OOO", -"OOOOO XXX.oooooX.X. OOO", -"OOOOO .XXoo.ooooXX OOO", -"OOOOOO XX.o XooX. OOOOO", -"OOOOOO .XXooXoX OOOOOOO", -"OOOOOOO .X.oX OOOOOOOOO", -"OOOOOOOO OOOOOOOOOOO", -"OOOOOOOOOOOOOOOOOOOOOOOO", -"OOOOOOOOOOOOOOOOOOOOOOOO" -}; +static char * save_xpm[] = { +"24 24 220 2", +" c None", +". c #000000", +"+ c #C3D7F4", +"@ c #A9CDE5", +"# c #75757A", +"$ c #EFC5BB", +"% c #F1C8BE", +"& c #F0C6BC", +"* c #EEBCB2", +"= c #EEBEB5", +"- c #EEC1B8", +"; c #EDBFB6", +"> c #E9B7AD", +", c #E9B8AF", +"' c #E9B9B1", +") c #E5BFBA", +"! c #737277", +"~ c #B3CDE3", +"{ c #A1BED6", +"] c #BBD6E8", +"^ c #8AAAC5", +"/ c #605F68", +"( c #E08D7E", +"_ c #E0826E", +": c #E0806E", +"< c #DC7A68", +"[ c #DC8171", +"} c #DA7868", +"| c #D48173", +"1 c #D47D6E", +"2 c #CE7265", +"3 c #CF7264", +"4 c #CE7567", +"5 c #C4675B", +"6 c #C36558", +"7 c #626169", +"8 c #87A3B7", +"9 c #567187", +"0 c #BAD5E9", +"a c #88A7C3", +"b c #686670", +"c c #C8817B", +"d c #CB7C74", +"e c #CB7A73", +"f c #CB7B73", +"g c #CC7C72", +"h c #CB7D73", +"i c #BF6B64", +"j c #CC7A70", +"k c #C16A62", +"l c #CC7C73", +"m c #C2655B", +"n c #C36459", +"o c #BA6C6A", +"p c #819EB6", +"q c #547086", +"r c #B6D3E7", +"s c #87ABC1", +"t c #737373", +"u c #FFFFFF", +"v c #83A0B8", +"w c #526C80", +"x c #B9D3E7", +"y c #85A4BF", +"z c #4F697C", +"A c #B9D3E6", +"B c #84A3BF", +"C c #CECECE", +"D c #CDCDCD", +"E c #BFBFBF", +"F c #88A4BB", +"G c #486276", +"H c #B7D2E7", +"I c #82A0BB", +"J c #636363", +"K c #465E70", +"L c #B5CAE5", +"M c #7FA2B9", +"N c #87A3BA", +"O c #455C6D", +"P c #AECCE5", +"Q c #7DA0B6", +"R c #C5C5C5", +"S c #546069", +"T c #B0D1E4", +"U c #83A1B6", +"V c #735B5B", +"W c #515C64", +"X c #AACEE3", +"Y c #7B9BB2", +"Z c #7A8E9A", +"` c #7A7A7A", +" . c #6B6F72", +".. c #6F6F6F", +"+. c #696969", +"@. c #6F777E", +"#. c #86A2B9", +"$. c #3A515D", +"%. c #A9C9E2", +"&. c #7494AF", +"*. c #829FB7", +"=. c #7F9DB6", +"-. c #7E9CB5", +";. c #7998B2", +">. c #85A1B8", +",. c #8CA7BD", +"'. c #8AA5BB", +"). c #364A59", +"!. c #ABC4E2", +"~. c #7294AD", +"{. c #6F90AC", +"]. c #7192AE", +"^. c #414A4E", +"/. c #424A51", +"(. c #525B63", +"_. c #626F79", +":. c #5F6C76", +"<. c #5C6971", +"[. c #5A666F", +"}. c #58636B", +"|. c #57636A", +"1. c #3B5360", +"2. c #39424B", +"3. c #7897B3", +"4. c #A4B9CB", +"5. c #364853", +"6. c #AAC9E2", +"7. c #7091AA", +"8. c #6F8FA7", +"9. c #4A5359", +"0. c #97938C", +"a. c #DFDDDA", +"b. c #E3E1DE", +"c. c #EBEAE8", +"d. c #EAE9E7", +"e. c #CFCEC9", +"f. c #C9C6C0", +"g. c #9B968E", +"h. c #566168", +"i. c #4B657A", +"j. c #54738C", +"k. c #AAC6DD", +"l. c #34464E", +"m. c #AAC9E1", +"n. c #6C8EA6", +"o. c #6C8CA4", +"p. c #40474D", +"q. c #DAD8D3", +"r. c #E7E6E2", +"s. c #67655E", +"t. c #524F47", +"u. c #D9D7D4", +"v. c #C7C5BF", +"w. c #C0BCB5", +"x. c #B8B3AB", +"y. c #434C54", +"z. c #4D697F", +"A. c #4F6F84", +"B. c #B3CADC", +"C. c #313E49", +"D. c #A8C8E1", +"E. c #6B8DA6", +"F. c #728FA4", +"G. c #E2E1DD", +"H. c #F0EFEC", +"I. c #CDCAC6", +"J. c #C2BFB9", +"K. c #CAC6C0", +"L. c #DCDAD7", +"M. c #4B555D", +"N. c #4E697F", +"O. c #BACCDC", +"P. c #A4C4DE", +"Q. c #698BA3", +"R. c #708AA1", +"S. c #383E43", +"T. c #E0DEDA", +"U. c #514E46", +"V. c #4F4C44", +"W. c #C7C4BE", +"X. c #CBC8C2", +"Y. c #E1E0DC", +"Z. c #E9E8E6", +"`. c #475158", +" + c #4E6879", +".+ c #4D6C80", +"++ c #A3C3DB", +"@+ c #383F43", +"#+ c #778999", +"$+ c #6E899E", +"%+ c #65859C", +"&+ c #33383C", +"*+ c #D7D4D0", +"=+ c #D6D4D0", +"-+ c #4E4A43", +";+ c #4D4942", +">+ c #D1CEC9", +",+ c #E6E5E2", +"'+ c #EDECEA", +")+ c #454F55", +"!+ c #486173", +"~+ c #4D6678", +"{+ c #A1C1DA", +"]+ c #373C40", +"^+ c #0C0D0F", +"/+ c #4E5E6A", +"(+ c #5B6E7C", +"_+ c #4F5B62", +":+ c #A4A099", +"<+ c #CCC9C3", +"[+ c #D7D5D1", +"}+ c #E4E2E0", +"|+ c #DDDBD7", +"1+ c #B8B5B0", +"2+ c #3E474D", +"3+ c #4A6176", +"4+ c #4A6070", +"5+ c #9BC3D8", +"6+ c #363C41", +"7+ c #28323E", +" ", +" . . . . . . . . . . . . . . . . . . . ", +" . + @ # $ % & * = - ; > , > , ' ) ! ~ { . ", +" . ] ^ / ( _ : < [ } | 1 2 3 4 5 6 7 8 9 . ", +" . 0 a b c d e f g h i j k l m n o b p q . ", +" . r s t u u u u u u u u u u u u u t v w . ", +" . x y t u u u u u u u u u u u u u t v z . ", +" . A B t C D D D D D D D D D D D E t F G . ", +" . H I J u u u u u u u u u u u u u t F K . ", +" . L M t u u u u u u u u u u u u u t N O . ", +" . P Q t C D D D D D D D D D D D R t N S . ", +" . T U V u u u u u u u u u u u u u t v W . ", +" . X Y Z ` t t t t t ...t t t t +.@.#.$.. ", +" . %.&.p v #.*.=.-.*.;.#.>.>.N *.,.v '.).. ", +" . !.~.{.].^./.(._.:.<.[.}.|.(.1.2.3.4.5.. ", +" . 6.7.8.9.0.a.b.c.c.d.a.e.f.g.h.i.j.k.l.. ", +" . m.n.o.p.q.r.s.t.t.u.v.w.x.e.y.z.A.B.C.. ", +" . D.E.F.p.G.H.s.t.t.I.J.w.K.L.M.N.A.O.C.. ", +" . P.Q.R.S.T.c.U.V.V.W.w.X.Y.Z.`. +.+++@+. ", +" . #+$+%+&+*+=+-+;+;+w.>+,+'+,+)+!+~+{+]+. ", +" ^+/+(+_+:+w.x.<+<+[+}+d.|+1+2+3+4+5+6+. ", +" . . . . . . . . . . . . . . . . 7+. ", +" ", +" "}; diff --git a/lisp/toolbar/saveas.pbm b/lisp/toolbar/saveas.pbm Binary files differindex 9a9022e058e..f888ea06f42 100644 --- a/lisp/toolbar/saveas.pbm +++ b/lisp/toolbar/saveas.pbm diff --git a/lisp/toolbar/saveas.xpm b/lisp/toolbar/saveas.xpm index 87d9174f67f..2830b06c928 100644 --- a/lisp/toolbar/saveas.xpm +++ b/lisp/toolbar/saveas.xpm @@ -1,35 +1,289 @@ /* XPM */ -static char *magick[] = { -/* columns rows colors chars-per-pixel */ -"24 24 5 1", -" c #01be01be01be", -". c #62dd62dd62dd", -"X c Gray62", -"o c #e625e625e625", -"O c None", -/* pixels */ -"OOOOOOOOOOOOOOOOOOOOOOOO", -"OOOOOOOOOOOOOOOOOOOOOOOO", -"OOOOOOOOOOOOOOOOOOO OOOO", -"OOOOOOOOOOOOOOOOOO X OOO", -"OOOOOOOOOOOOO OO X. OOO", -"OOOOOOOOOOO X. X. OOOO", -"OOOOOOOOO oXoX X. OOOOO", -"OOOOOOO oXoOo X. OOOOOO", -"OOOOO oXoOoO X. OOOOOOO", -"OOO XooOOoO X. OOOOOO", -"OO XooOoXoO X. oX OOOOOO", -"OO .XooXoO X. OoX. OOOOO", -"OOO XooXOX. ooXXX OOOOO", -"OOO .XoOX ooXX..X. OOOO", -"OOOO XoOXooXX...X.X OOOO", -"OOOO .XooXX.Xoo.X.X. OOO", -"OOOOO XXX.oooooX.X. OOO", -"OOOOO .XXoo.ooooXX OOO", -"OOOOOO XX.o XooX. OOOOO", -"OOOOOO .XXooXoX OOOOOOO", -"OOOOOOO .X.oX OOOOOOOOO", -"OOOOOOOO OOOOOOOOOOO", -"OOOOOOOOOOOOOOOOOOOOOOOO", -"OOOOOOOOOOOOOOOOOOOOOOOO" -}; +static char * saveas_xpm[] = { +"24 24 262 2", +" c None", +". c #000000", +"+ c #FBE73B", +"@ c #F2B64D", +"# c #FCEB3D", +"$ c #F7B544", +"% c #5D502C", +"& c #C3D7F4", +"* c #A9CDE5", +"= c #75757A", +"- c #EFC5BB", +"; c #F1C8BE", +"> c #F0C6BC", +", c #EEBCB2", +"' c #EEBEB5", +") c #EEC1B8", +"! c #EDBFB6", +"~ c #E8B6AC", +"{ c #FCE93B", +"] c #F7B545", +"^ c #6C5F34", +"/ c #434345", +"( c #92A7B9", +"_ c #96B1C7", +": c #BBD6E8", +"< c #8AAAC5", +"[ c #605F68", +"} c #E08D7E", +"| c #E0826E", +"1 c #E0806E", +"2 c #DC7A68", +"3 c #DC8171", +"4 c #DA7868", +"5 c #D38072", +"6 c #FAE43A", +"7 c #F4B244", +"8 c #615030", +"9 c #783E35", +"0 c #4D4C52", +"a c #7790A2", +"b c #526D82", +"c c #BAD5E9", +"d c #88A7C3", +"e c #686670", +"f c #C8817B", +"g c #CB7C74", +"h c #CB7A73", +"i c #CB7B73", +"j c #CC7C72", +"k c #CA7C72", +"l c #F9DF39", +"m c #F3AF42", +"n c #614F2F", +"o c #8F4941", +"p c #945554", +"q c #5B5A62", +"r c #7B97AE", +"s c #536F84", +"t c #B6D3E7", +"u c #87ABC1", +"v c #737373", +"w c #FFFFFF", +"x c #FEFEFE", +"y c #F9DC38", +"z c #EFB44D", +"A c #665A32", +"B c #BBBBBB", +"C c #CDCDCD", +"D c #E4E4E4", +"E c #6E6E6E", +"F c #819EB6", +"G c #526C80", +"H c #B9D3E7", +"I c #85A4BF", +"J c #F8D837", +"K c #F0A93F", +"L c #655930", +"M c #BABABA", +"N c #CCCCCC", +"O c #E5E5E5", +"P c #F7F7F7", +"Q c #727272", +"R c #83A0B8", +"S c #4F697C", +"T c #B9D3E6", +"U c #84A3BF", +"V c #CECECE", +"W c #F6D236", +"X c #EDA43E", +"Y c #5C5130", +"Z c #949494", +"` c #A3A3A3", +" . c #B7B7B7", +".. c #C6C6C6", +"+. c #BDBDBD", +"@. c #88A4BB", +"#. c #486276", +"$. c #B7D2E7", +"%. c #82A0BB", +"&. c #636363", +"*. c #FDFDFD", +"=. c #D7AE74", +"-. c #61562F", +";. c #465E70", +">. c #B5CAE5", +",. c #7FA2B9", +"'. c #4F4115", +"). c #87A3BA", +"!. c #455C6D", +"~. c #AECCE5", +"{. c #7DA0B6", +"]. c #CBCBCB", +"^. c #9B9B9B", +"/. c #9C9C9C", +"(. c #A7A7A7", +"_. c #B8B8B8", +":. c #C5C5C5", +"<. c #546069", +"[. c #B0D1E4", +"}. c #83A1B6", +"|. c #735B5B", +"1. c #F0F0F0", +"2. c #D9D9D9", +"3. c #D3D3D3", +"4. c #E1E1E1", +"5. c #EDEDED", +"6. c #F8F8F8", +"7. c #515C64", +"8. c #AACEE3", +"9. c #7B9BB2", +"0. c #7A8E9A", +"a. c #7A7A7A", +"b. c #707070", +"c. c #6C6C6C", +"d. c #6F6F6F", +"e. c #6A6E71", +"f. c #696969", +"g. c #6F777E", +"h. c #86A2B9", +"i. c #3A515D", +"j. c #A9C9E2", +"k. c #7494AF", +"l. c #7E9BB4", +"m. c #7D9AB3", +"n. c #7998B2", +"o. c #85A1B8", +"p. c #829FB7", +"q. c #8CA7BD", +"r. c #8AA5BB", +"s. c #364A59", +"t. c #ABC4E2", +"u. c #7294AD", +"v. c #6F90AC", +"w. c #7192AE", +"x. c #414A4E", +"y. c #424A51", +"z. c #525B63", +"A. c #626F79", +"B. c #5F6C76", +"C. c #5C6971", +"D. c #5A666F", +"E. c #58636B", +"F. c #57636A", +"G. c #3B5360", +"H. c #39424B", +"I. c #7897B3", +"J. c #A4B9CB", +"K. c #364853", +"L. c #AAC9E2", +"M. c #7091AA", +"N. c #6F8FA7", +"O. c #4A5359", +"P. c #97938C", +"Q. c #DFDDDA", +"R. c #E3E1DE", +"S. c #EBEAE8", +"T. c #EAE9E7", +"U. c #CFCEC9", +"V. c #C9C6C0", +"W. c #9B968E", +"X. c #566168", +"Y. c #4B657A", +"Z. c #54738C", +"`. c #AAC6DD", +" + c #34464E", +".+ c #AAC9E1", +"++ c #6C8EA6", +"@+ c #6C8CA4", +"#+ c #40474D", +"$+ c #DAD8D3", +"%+ c #E7E6E2", +"&+ c #67655E", +"*+ c #524F47", +"=+ c #D9D7D4", +"-+ c #C7C5BF", +";+ c #C0BCB5", +">+ c #B8B3AB", +",+ c #434C54", +"'+ c #4D697F", +")+ c #4F6F84", +"!+ c #B3CADC", +"~+ c #313E49", +"{+ c #A8C8E1", +"]+ c #6B8DA6", +"^+ c #728FA4", +"/+ c #E2E1DD", +"(+ c #F0EFEC", +"_+ c #CDCAC6", +":+ c #C2BFB9", +"<+ c #CAC6C0", +"[+ c #DCDAD7", +"}+ c #4B555D", +"|+ c #4E697F", +"1+ c #BACCDC", +"2+ c #A4C4DE", +"3+ c #698BA3", +"4+ c #708AA1", +"5+ c #383E43", +"6+ c #E0DEDA", +"7+ c #514E46", +"8+ c #4F4C44", +"9+ c #C7C4BE", +"0+ c #CBC8C2", +"a+ c #E1E0DC", +"b+ c #E9E8E6", +"c+ c #475158", +"d+ c #4E6879", +"e+ c #4D6C80", +"f+ c #A3C3DB", +"g+ c #383F43", +"h+ c #778999", +"i+ c #6E899E", +"j+ c #65859C", +"k+ c #33383C", +"l+ c #D7D4D0", +"m+ c #D6D4D0", +"n+ c #4E4A43", +"o+ c #4D4942", +"p+ c #D1CEC9", +"q+ c #E6E5E2", +"r+ c #EDECEA", +"s+ c #454F55", +"t+ c #486173", +"u+ c #4D6678", +"v+ c #A1C1DA", +"w+ c #373C40", +"x+ c #0C0D0F", +"y+ c #4E5E6A", +"z+ c #5B6E7C", +"A+ c #4F5B62", +"B+ c #A4A099", +"C+ c #CCC9C3", +"D+ c #D7D5D1", +"E+ c #E4E2E0", +"F+ c #DDDBD7", +"G+ c #B8B5B0", +"H+ c #3E474D", +"I+ c #4A6176", +"J+ c #4A6070", +"K+ c #9BC3D8", +"L+ c #363C41", +"M+ c #28323E", +" . . ", +" . + @ . ", +" . . . . . . . . . . . . . # $ % . . . ", +" . & * = - ; > , ' ) ! ~ . { ] ^ . / ( _ . ", +" . : < [ } | 1 2 3 4 5 . 6 7 8 . 9 0 a b . ", +" . c d e f g h i j k . l m n . o p q r s . ", +" . t u v w w w w x . y z A . B C D E F G . ", +" . H I v w w w x . J K L . M N O P Q R S . ", +" . T U v V C N . W X Y . Z ` ...+.v @.#.. ", +" . $.%.&.w w *.. =.-.. M N D P *.w v @.;.. ", +" . >.,.v w x . '.. . M N D P *.w w v ).!.. ", +" . ~.{.v V ].. . ^./.(._...].C C :.v ).<.. ", +" . [.}.|.w *.1.2.3.4.5.6.x w w w w v R 7.. ", +" . 8.9.0.a.Q b.c.c.d.e.E v v v v f.g.h.i.. ", +" . j.k.F R h.F l.m.F n.h.o.o.).p.q.R r.s.. ", +" . t.u.v.w.x.y.z.A.B.C.D.E.F.z.G.H.I.J.K.. ", +" . L.M.N.O.P.Q.R.S.S.T.Q.U.V.W.X.Y.Z.`. +. ", +" . .+++@+#+$+%+&+*+*+=+-+;+>+U.,+'+)+!+~+. ", +" . {+]+^+#+/+(+&+*+*+_+:+;+<+[+}+|+)+1+~+. ", +" . 2+3+4+5+6+S.7+8+8+9+;+0+a+b+c+d+e+f+g+. ", +" . h+i+j+k+l+m+n+o+o+;+p+q+r+q+s+t+u+v+w+. ", +" x+y+z+A+B+;+>+C+C+D+E+T.F+G+H+I+J+K+L+. ", +" . . . . . . . . . . . . . . . . M+. ", +" "}; diff --git a/lisp/toolbar/search.pbm b/lisp/toolbar/search.pbm Binary files differindex 9336eea6874..9c1cf61a645 100644 --- a/lisp/toolbar/search.pbm +++ b/lisp/toolbar/search.pbm diff --git a/lisp/toolbar/search.xpm b/lisp/toolbar/search.xpm index ff8732201e4..ad6300528e9 100644 --- a/lisp/toolbar/search.xpm +++ b/lisp/toolbar/search.xpm @@ -1,38 +1,234 @@ /* XPM */ -static char *magick[] = { -/* columns rows colors chars-per-pixel */ -"24 24 8 1", -" c #011801180102", -". c #464646463e3e", -"X c #5c5c5c5c57a0", -"o c #878787877979", -"O c #a910a91097af", -"+ c #ce5ace5ab851", -"@ c #e79de79dd134", -"# c None", -/* pixels */ -"########################", -"########################", -"############# ##########", -"########### O #########", -"######### O@@.#########", -"####### O@@@@@ ########", -"##### O+@@@@@@O #######", -"#### XX@++@@@@@@.#######", -"#### @.O+@@@@@@@@ ######", -"#### @@.++@@@@@@@O #####", -"#### @@.o+O. .+@@ #####", -"#### @XO+O.O++o.+@@ ####", -"#### O+@.O@@+Oo.@@+ ###", -"#### X@@@ +#+OOO @@@@ ##", -"#### O@@@ +@OOOo @@@o ##", -"##### @@@.oOOOoX.@@ ###", -"##### O@@O.oOOX @ #####", -"######X@@@O. .X ######", -"###### @@@@@@@+ #####", -"####### @@@@@O ## ####", -"####### O@@+. #### ###", -"######## @O ####### ###", -"######### #############", -"########################" -}; +static char * search_xpm[] = { +"24 24 207 2", +" c None", +". c #000000", +"+ c #D3D3D3", +"@ c #F6F6F6", +"# c #FFFFFF", +"$ c #F9F9F9", +"% c #DADADA", +"& c #585858", +"* c #C7C7C7", +"= c #D1D1D1", +"- c #D6D6D6", +"; c #FEFEFE", +"> c #FDFDFD", +", c #C0C0C0", +"' c #E1E1E1", +") c #F0F0F0", +"! c #9B9B9B", +"~ c #FCFCFB", +"{ c #FBFBFB", +"] c #AFAFAE", +"^ c #E9E9E9", +"/ c #DFDFDF", +"( c #8F8F8F", +"_ c #FAFAF9", +": c #F9F9F8", +"< c #A4A4A3", +"[ c #F4F4F4", +"} c #CFCFCF", +"| c #A2A2A2", +"1 c #B8B8B8", +"2 c #47473F", +"3 c #0A0A09", +"4 c #4B4B43", +"5 c #B4B4B3", +"6 c #F7F6F5", +"7 c #9E9E9E", +"8 c #A9A9A8", +"9 c #34342E", +"0 c #9D9D8D", +"a c #CFCFB9", +"b c #C4C4AF", +"c c #8D8D7F", +"d c #353530", +"e c #ACACAA", +"f c #F1F0EF", +"g c #DEDDDC", +"h c #D3D2D0", +"i c #B7B7B5", +"j c #9F9E9D", +"k c #706F6F", +"l c #65625A", +"m c #46463F", +"n c #9C9C8C", +"o c #E2E2D0", +"p c #EDEDE7", +"q c #C0C0AC", +"r c #B2B29F", +"s c #828274", +"t c #4C4C44", +"u c #E4E4E2", +"v c #E1E1DF", +"w c #DAD9D7", +"x c #D8D8D6", +"y c #CDCCCA", +"z c #AFAEAC", +"A c #88847B", +"B c #F8F8F7", +"C c #090908", +"D c #D5D5BF", +"E c #FBFBFA", +"F c #C3C3AE", +"G c #B5B5A2", +"H c #A6A695", +"I c #9C9C8F", +"J c #080807", +"K c #CFCFCD", +"L c #E3E2E0", +"M c #ECEBE9", +"N c #E9E8E6", +"O c #D5D4D3", +"P c #C4C3C2", +"Q c #8F8A81", +"R c #F6F5F4", +"S c #F3F3F1", +"T c #090909", +"U c #CACAB5", +"V c #DDDDD0", +"W c #B7B7A4", +"X c #AAAA98", +"Y c #9B9B8B", +"Z c #AEAEA3", +"` c #BBBAB9", +" . c #E8E7E5", +".. c #E5E4E2", +"+. c #E4E3E0", +"@. c #D2D1CE", +"#. c #8D887E", +"$. c #F4F3F2", +"%. c #F0EFEE", +"&. c #474740", +"*. c #929283", +"=. c #BABAA7", +"-. c #ADAD9B", +";. c #9F9F8E", +">. c #ACACA1", +",. c #CFCFCB", +"'. c #4C4C45", +"). c #B3B2B1", +"!. c #E2E1DE", +"~. c #E1DFDC", +"{. c #979288", +"]. c #949493", +"^. c #34342F", +"/. c #878779", +"(. c #A0A090", +"_. c #AEAEA2", +":. c #C3C3BE", +"<. c #010101", +"[. c #B1B0AF", +"}. c #D2D1CF", +"|. c #A49E93", +"1. c #F0F0EE", +"2. c #EDEDEB", +"3. c #DDDDDB", +"4. c #898988", +"5. c #414141", +"6. c #737271", +"7. c #A4A3A1", +"8. c #DFDEDB", +"9. c #E2E0DD", +"0. c #E1E0DC", +"a. c #E0DFDB", +"b. c #A19C90", +"c. c #E1E0DE", +"d. c #CBCAC9", +"e. c #B2B1B0", +"f. c #A3A2A1", +"g. c #9D9C9A", +"h. c #9E9D9C", +"i. c #9F9F9D", +"j. c #ABAAA7", +"k. c #DCDBD7", +"l. c #DEDDD9", +"m. c #DDDCD8", +"n. c #A19B90", +"o. c #EBEAE8", +"p. c #E6E5E3", +"q. c #C8C7C4", +"r. c #B6B6B3", +"s. c #B0AFAD", +"t. c #B3B2B0", +"u. c #747371", +"v. c #9D9C99", +"w. c #DAD9D5", +"x. c #E7E6E3", +"y. c #E6E5E2", +"z. c #E3E2DF", +"A. c #DBDAD7", +"B. c #D4D3D0", +"C. c #D0CFCB", +"D. c #D1CFCC", +"E. c #D1D0CC", +"F. c #C9C8C4", +"G. c #6B6B69", +"H. c #CECDC9", +"I. c #D6D4D0", +"J. c #9F998D", +"K. c #E3E2DE", +"L. c #E4E2DF", +"M. c #DFDEDA", +"N. c #D5D4D0", +"O. c #C0BFBC", +"P. c #7B7A78", +"Q. c #BCBAB6", +"R. c #CECCC8", +"S. c #9D978C", +"T. c #EDEDED", +"U. c #E1E0DD", +"V. c #E2E1DD", +"W. c #DBDAD6", +"X. c #BBB9B6", +"Y. c #A6A4A1", +"Z. c #9E9C99", +"`. c #ACABA7", +" + c #C7C5C2", +".+ c #9B9589", +"++ c #E1DFDB", +"@+ c #E0DEDA", +"#+ c #DEDCD8", +"$+ c #DAD8D4", +"%+ c #BDBCB8", +"&+ c #ACABA8", +"*+ c #B2B1AD", +"=+ c #C6C4C0", +"-+ c #999388", +";+ c #999891", +">+ c #A39E92", +",+ c #A39D92", +"'+ c #A39D91", +")+ c #A29C90", +"!+ c #A19B8F", +"~+ c #9D978B", +"{+ c #989286", +"]+ c #918C82", +"^+ c #938D83", +"/+ c #979286", +"(+ c #666258", +" ", +" . . . . . . . . . . . . . ", +" . + @ # # # # # # # # $ % & . ", +" . @ # # # # # # # # # # * = - . ", +" . # # # # # # # ; # ; > , ' ) ! . ", +" . # # # # # ; > ~ > ~ { ] ^ # / ( . ", +" . # # # ; > ~ { _ { _ : < ) # [ } | . ", +" . # ; > ~ 1 2 3 3 4 5 6 7 . . . . . . . ", +" . # ~ { 8 9 0 a b c d e f g h i j k l . ", +" . # _ : m n o p q r s t u v w x y z A . ", +" . # B 6 C D E F G H I J K L M N O P Q . ", +" . # R S T U V W X Y Z 3 ` w ...+.@.#.. ", +" . # $.%.&.*.=.-.;.>.,.'.).h !.+.!.~.{.. ", +" . # $.%.].^./.(._.:.<.<.[.}.!.+.!.~.|.. ", +" . # 1.2.3.4.4 3 3 5.6.<.<.7.8.9.0.a.b.. ", +" . # 2.M c.d.e.f.g.h.i.<.<.<.j.k.l.m.n.. ", +" . # o.N p.w q.r.z s.t.u.. <.<.v.w.k.n.. ", +" . # x.y.y.z.A.B.C.D.E.F.G.<.<.<.H.I.J.. ", +" . $ +.z.K.L.K.a.a.M.M.N.O.P.<.<.Q.R.S.. ", +" . T.U.~.0.a.V.a.0.a.0.W.E.X.Y.Z.`. +.+. ", +" . = ++@+M.l.a.l.@+l.@+#+$+R.%+&+*+=+-+. ", +" . ;+>+|.,+'+,+b.)+b.)+!+n.~+{+]+^+/+(+. ", +" . . . . . . . . . . . . . . . . . . ", +" "}; diff --git a/lisp/toolbar/spell.pbm b/lisp/toolbar/spell.pbm Binary files differindex c641babe8ed..6532f0176d4 100644 --- a/lisp/toolbar/spell.pbm +++ b/lisp/toolbar/spell.pbm diff --git a/lisp/toolbar/spell.xpm b/lisp/toolbar/spell.xpm index a2c2282b48b..b53f4510602 100644 --- a/lisp/toolbar/spell.xpm +++ b/lisp/toolbar/spell.xpm @@ -1,35 +1,64 @@ /* XPM */ -static char *magick[] = { -/* columns rows colors chars-per-pixel */ -"24 24 5 1", -" c Gray0", -". c #41415b5b3939", -"X c #4c2f6b4e42d1", -"o c #5fe086865454", -"O c None", -/* pixels */ -"OOOOOOOOOOOOOOOOOOOOOOOO", -"OOOOOOOOOOOOOOOOOOOOOOOO", -"OOOOOOOOOOOOOOOOOOOOOOOO", -"OOOOOOOOOOOOOOOOOOOOOOOO", -"OOOO OO OOO OOOOOOOO", -"OOO OO O OO O OO OOOOOOO", -"OOO O OO OOOOOOOOOO", -"OOO OO O OO O OO OOOOOOO", -"OOO OO O OOO OOOO OO", -"OOOOOOOOOOOOOOOOOOO OOO", -"OOOOOOOOOOO OOOOO OOOO", -"OOOOOOOOOOO X OOO . OOOO", -"OOOOOOOOOOOO X O X OOOOO", -"OOOOOOOOOOOO Xo o. OOOOO", -"OOOOOOOOOOOOO XoX OOOOOO", -"OOOOOOOOOOOOO Xo. OOOOOO", -"OOOOOOOOOOOOOO X OOOOOOO", -"OOOOOOOOOOOOOO X OOOOOOO", -"OOOOOOOOOOOOOOO OOOOOOOO", -"OOOOOOOOOOOOOOOOOOOOOOOO", -"OOOOOOOOOOOOOOOOOOOOOOOO", -"OOOOOOOOOOOOOOOOOOOOOOOO", -"OOOOOOOOOOOOOOOOOOOOOOOO", -"OOOOOOOOOOOOOOOOOOOOOOOO" -}; +static char * spell_xpm[] = { +"24 24 37 1", +" c None", +". c #000000", +"+ c #8BBB8C", +"@ c #ABD0AC", +"# c #1A3B1A", +"$ c #8ABA88", +"% c #B4D5B4", +"& c #70A770", +"* c #132C13", +"= c #77A676", +"- c #2D2D2D", +"; c #CBDFCB", +"> c #6FAE6E", +", c #A8CBA6", +"' c #6D9D6C", +") c #D0E4D0", +"! c #6FAF6F", +"~ c #587055", +"{ c #B8D6B8", +"] c #5B9159", +"^ c #D4E4D4", +"/ c #67AF67", +"( c #5D905B", +"_ c #9FC59D", +": c #93BE92", +"< c #B5D1B5", +"[ c #67AF68", +"} c #63A261", +"| c #BBD6BA", +"1 c #82B881", +"2 c #75AF74", +"3 c #6B8868", +"4 c #9DC39D", +"5 c #7DB17B", +"6 c #6BA368", +"7 c #485C46", +"8 c #89BA88", +" ", +" ", +" ", +" ", +" ... .... ... ", +" .. . .. . .. . ", +" .. . .... .. ", +" ..... .. . .. ", +" .. . .. . .. . . ", +" .. . .... ... ... ", +" .+. ", +" .. .@# ", +" .$. .%&. ", +" *=. -;>. ", +" .,'. .)!~. ", +" .{].^/(. ", +" ._:<[}~. ", +" .|123. ", +" .4567. ", +" .83. ", +" .37. ", +" .. ", +" ", +" "}; diff --git a/lisp/toolbar/undo.pbm b/lisp/toolbar/undo.pbm Binary files differindex 5bed67caa40..7a7f2709b48 100644 --- a/lisp/toolbar/undo.pbm +++ b/lisp/toolbar/undo.pbm diff --git a/lisp/toolbar/undo.xpm b/lisp/toolbar/undo.xpm index c48b0fdae6f..ca5bd760937 100644 --- a/lisp/toolbar/undo.xpm +++ b/lisp/toolbar/undo.xpm @@ -1,35 +1,58 @@ /* XPM */ -static char *magick[] = { -/* columns rows colors chars-per-pixel */ -"24 24 5 1", -" c Gray0", -". c #ae6e66e76a0a", -"X c #c6c67d7d8181", -"o c #e4e4e4e4dcdc", -"O c None", -/* pixels */ -"OOOOOOOOOOOOOOOOOOOOOOOO", -"OOOOOOOOOOOOOOOOOOOOOOOO", -"OOOOOOOOOOOOOOOOOOOOOOOO", -"OOOOOOOOOOOOOOOOOOOOOOOO", -"OOOOOOOOOOOOOOOOOOOOOOOO", -"OOOOOOOOOOOOOOOOOOOOOOOO", -"OOOOOOOOO OOOOOOOOOOOOOO", -"OOOOOOOO OOOOOOOOOOOOOO", -"OOOOOOO oX OOOOOOOOOOO", -"OOOOOO ooooX. OOOOOOOOO", -"OOOOOOO oo .. OOOOOOOO", -"OOOOOOOO OOO . OOOOOOOO", -"OOOOOOOOO OOOO . OOOOOOO", -"OOOOOOOOOOOOOOO OOOOOOO", -"OOOOOOOOOOOOOOO OOOOOOO", -"OOOOOOOOOOOOOOO OOOOOOOO", -"OOOOOOOOOOOOOO OOOOOOOOO", -"OOOOOOOOOOOOOOOOOOOOOOOO", -"OOOOOOOOOOOOOOOOOOOOOOOO", -"OOOOOOOOOOOOOOOOOOOOOOOO", -"OOOOOOOOOOOOOOOOOOOOOOOO", -"OOOOOOOOOOOOOOOOOOOOOOOO", -"OOOOOOOOOOOOOOOOOOOOOOOO", -"OOOOOOOOOOOOOOOOOOOOOOOO" -}; +static char * undo_xpm[] = { +"24 24 31 1", +" c None", +". c #000000", +"+ c #EFE5BA", +"@ c #EFE7C1", +"# c #EED680", +"$ c #EFE4B6", +"% c #D5B75D", +"& c #B29544", +"* c #D1B051", +"= c #C0AF73", +"- c #C0A048", +"; c #986B07", +"> c #D1940C", +", c #E0B74C", +"' c #D9C374", +") c #8F6406", +"! c #D59D1C", +"~ c #B1933F", +"{ c #DFB74A", +"] c #CCB76D", +"^ c #B8820A", +"/ c #D9A72E", +"( c #D7A62C", +"_ c #C7B26A", +": c #D4B150", +"< c #A39256", +"[ c #E2CB79", +"} c #C9B46B", +"| c #8D7E4A", +"1 c #AE9C5C", +"2 c #96864F", +" ", +" ", +" ", +" . ", +" .. ", +" .+. ", +" .@#.... ", +" .$####%&. ", +" .+#######*. ", +" .=#########-. ", +" .;>>>>>>,#'.. ", +" .)>>>>>>!#~. ", +" .)>...;>{]. ", +" .;. ..^/#. ", +" .. ..>#. ", +" . .(_. ", +" .:<. ", +" .[. ", +" .}|. ", +" .12. ", +" .. ", +" ", +" ", +" "}; diff --git a/lisp/toolbar/up_arrow.pbm b/lisp/toolbar/up_arrow.pbm Binary files differindex ca7e04f7a50..8b63dd75c70 100644 --- a/lisp/toolbar/up_arrow.pbm +++ b/lisp/toolbar/up_arrow.pbm diff --git a/lisp/toolbar/up_arrow.xpm b/lisp/toolbar/up_arrow.xpm index 44243cfe7f6..09963557d1b 100644 --- a/lisp/toolbar/up_arrow.xpm +++ b/lisp/toolbar/up_arrow.xpm @@ -1,33 +1,91 @@ /* XPM */ static char * up_arrow_xpm[] = { -"24 24 9 1", +"24 24 67 1", " c None", -". c #020202", -"+ c #121A12", -"@ c #78A16E", -"# c #86AD7D", -"$ c #B2C6AE", -"% c #263222", -"& c #E7EDE6", -"* c #497241", +". c #000000", +"+ c #2F2F2F", +"@ c #A5B4A4", +"# c #E8F4E6", +"$ c #96B892", +"% c #41533C", +"& c #F1FFF0", +"* c #B8D6B7", +"= c #9FC49D", +"- c #66815E", +"; c #B6D4B5", +"> c #B9D7B8", +", c #A1C69F", +"' c #68835F", +") c #637D5B", +"! c #3F5239", +"~ c #B8D7B7", +"{ c #A2C7A0", +"] c #6A8561", +"^ c #657F5C", +"/ c #617959", +"( c #3E4F39", +"_ c #F0FEEF", +": c #B7D5B6", +"< c #657E5C", +"[ c #5D7555", +"} c #D6EAD6", +"| c #BFD4BF", +"1 c #C0D5C0", +"2 c #637C5B", +"3 c #4D6246", +"4 c #4C6046", +"5 c #C7E1C6", +"6 c #A1C69E", +"7 c #67815E", +"8 c #627B59", +"9 c #3D4E39", +"0 c #D0E7D0", +"a c #B5D3B4", +"b c #A0C39D", +"c c #607958", +"d c #B5D2B4", +"e c #9DC19B", +"f c #647D5B", +"g c #607858", +"h c #C6E0C5", +"i c #B4D2B3", +"j c #9CBF99", +"k c #C5DFC4", +"l c #B1CEB0", +"m c #99BC97", +"n c #617A59", +"o c #5E7756", +"p c #C0D9BF", +"q c #AFCCAE", +"r c #AECBAD", +"s c #93B690", +"t c #607857", +"u c #5E7656", +"v c #8DB389", +"w c #748A72", +"x c #71916E", +"y c #5A7257", +"z c #4D6247", +"A c #4D6146", +"B c #43543D", " ", " ", -" ", -" ", -" .. ", -" .. ", -" .$*. ", -" +&*. ", -" .&&@*. ", -" .&&@*. ", -" .&&&@@*. ", -" .&&&##*. ", -" .&&&&#@@*. ", -" .&&&&###*. ", -" .&&&&&##@@*. ", -" .&&&&&###@@. ", -" .$$$$$$@@@@**. ", -" ......%....... ", +" . ", +" +@. ", +" .#$%. ", +" .&*=-%. ", +" .&;>,')!. ", +" .&~;>{]^/(. ", +" ._~>:>,]</[(. ", +" .}|1>~~,'23444. ", +" .....5;;6789..... ", +" .0;ab^c9. ", +" .5;defg9. ", +" .haij2g9. ", +" .kilmno9. ", +" .pqrstu9. ", +" .vwxyzAB. ", +" ......... ", " ", " ", " ", diff --git a/lisp/tree-widget.el b/lisp/tree-widget.el new file mode 100644 index 00000000000..54323e41dd3 --- /dev/null +++ b/lisp/tree-widget.el @@ -0,0 +1,736 @@ +;;; tree-widget.el --- Tree widget + +;; Copyright (C) 2004 Free Software Foundation, Inc. + +;; Author: David Ponce <david@dponce.com> +;; Maintainer: David Ponce <david@dponce.com> +;; Created: 16 Feb 2001 +;; Keywords: extensions + +;; This file is part of GNU Emacs + +;; This program is free software; you can redistribute it and/or +;; modify it under the terms of the GNU General Public License as +;; published by the Free Software Foundation; either version 2, or (at +;; your option) any later version. + +;; This program is distributed in the hope that it will be useful, but +;; WITHOUT ANY WARRANTY; without even the implied warranty of +;; MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU +;; General Public License for more details. + +;; You should have received a copy of the GNU General Public License +;; along with this program; see the file COPYING. If not, write to +;; the Free Software Foundation, Inc., 59 Temple Place - Suite 330, +;; Boston, MA 02111-1307, USA. + +;;; Commentary: +;; +;; This library provide a tree widget useful to display data +;; structures organized in a hierarchical order. +;; +;; The following properties are specific to the tree widget: +;; +;; :open +;; Set to non-nil to unfold the tree. By default the tree is +;; folded. +;; +;; :node +;; Specify the widget used to represent a tree node. By default +;; this is an `item' widget which displays the tree-widget :tag +;; property value if defined or a string representation of the +;; tree-widget value. +;; +;; :keep +;; Specify a list of properties to keep when the tree is +;; folded so they can be recovered when the tree is unfolded. +;; This property can be used in child widgets too. +;; +;; :dynargs +;; Specify a function to be called when the tree is unfolded, to +;; dynamically provide the tree children in response to an unfold +;; request. This function will be passed the tree widget and +;; must return a list of child widgets. That list will be stored +;; as the :args property of the parent tree. + +;; To speed up successive unfold requests, the :dynargs function +;; can directly return the :args value if non-nil. Refreshing +;; child values can be achieved by giving the :args property the +;; value nil, then redrawing the tree. +;; +;; :has-children +;; Specify if this tree has children. This property has meaning +;; only when used with the above :dynargs one. It indicates that +;; child widgets exist but will be dynamically provided when +;; unfolding the node. +;; +;; :open-control (default `tree-widget-open-control') +;; :close-control (default `tree-widget-close-control') +;; :empty-control (default `tree-widget-empty-control') +;; :leaf-control (default `tree-widget-leaf-control') +;; :guide (default `tree-widget-guide') +;; :end-guide (default `tree-widget-end-guide') +;; :no-guide (default `tree-widget-no-guide') +;; :handle (default `tree-widget-handle') +;; :no-handle (default `tree-widget-no-handle') +;; +;; The above nine properties define the widgets used to draw the tree. +;; For example, using widgets that display this values: +;; +;; open-control "[-] " +;; close-control "[+] " +;; empty-control "[X] " +;; leaf-control "[>] " +;; guide " |" +;; noguide " " +;; end-guide " `" +;; handle "-" +;; no-handle " " +;; +;; A tree will look like this: +;; +;; [-] 1 open-control +;; |-[+] 1.0 guide+handle+close-control +;; |-[X] 1.1 guide+handle+empty-control +;; `-[-] 1.2 end-guide+handle+open-control +;; |-[>] 1.2.1 no-guide+no-handle+guide+handle+leaf-control +;; `-[>] 1.2.2 no-guide+no-handle+end-guide+handle+leaf-control +;; +;; By default, the tree widget try to use images instead of strings to +;; draw a nice-looking tree. See the `tree-widget-themes-directory' +;; and `tree-widget-theme' options for more details. +;; + +;;; History: +;; + +;;; Code: +(eval-when-compile (require 'cl)) +(require 'wid-edit) + +;;; Customization +;; +(defgroup tree-widget nil + "Customization support for the Tree Widget Library." + :version "21.4" + :group 'widgets) + +(defcustom tree-widget-image-enable + (not (or (featurep 'xemacs) (< emacs-major-version 21))) + "*non-nil means that tree-widget will try to use images." + :type 'boolean + :group 'tree-widget) + +(defcustom tree-widget-themes-directory "tree-widget" + "*Name of the directory where to lookup for image themes. +When nil use the directory where the tree-widget library is located. +When a relative name is specified, try to locate that sub-directory in +`load-path', then in the data directory, and use the first one found. +Default is to search for a \"tree-widget\" sub-directory. + +The data directory is the value of: + - the variable `data-directory' on GNU Emacs; + - `(locate-data-directory \"tree-widget\")' on XEmacs." + :type '(choice (const :tag "Default" "tree-widget") + (const :tag "With the library" nil) + (directory :format "%{%t%}:\n%v")) + :group 'tree-widget) + +(defcustom tree-widget-theme nil + "*Name of the theme to use to lookup for images. +The theme name must be a subdirectory in `tree-widget-themes-directory'. +If nil use the \"default\" theme. +When a image is not found in the current theme, the \"default\" theme +is searched too. +A complete theme should contain images with these file names: + +Name Represents +----------- ------------------------------------------------ +open opened node (for example an open folder) +close closed node (for example a close folder) +empty empty node (a node without children) +leaf leaf node (for example a document) +guide a vertical guide line +no-guide an invisible guide line +end-guide the end of a vertical guide line +handle an horizontal line drawn before a node control +no-handle an invisible handle +----------- ------------------------------------------------" + :type '(choice (const :tag "Default" nil) + (string :tag "Name")) + :group 'tree-widget) + +(defcustom tree-widget-image-properties-emacs + '(:ascent center :mask (heuristic t)) + "*Properties of GNU Emacs images." + :type 'plist + :group 'tree-widget) + +(defcustom tree-widget-image-properties-xemacs + nil + "*Properties of XEmacs images." + :type 'plist + :group 'tree-widget) + +;;; Image support +;; +(eval-when-compile ;; GNU Emacs/XEmacs compatibility stuff + (cond + ;; XEmacs + ((featurep 'xemacs) + (defsubst tree-widget-use-image-p () + "Return non-nil if image support is currently enabled." + (and tree-widget-image-enable + widget-glyph-enable + (console-on-window-system-p))) + (defsubst tree-widget-create-image (type file &optional props) + "Create an image of type TYPE from FILE. +Give the image the specified properties PROPS. +Return the new image." + (apply 'make-glyph `([,type :file ,file ,@props]))) + (defsubst tree-widget-image-formats () + "Return the list of image formats, file name suffixes associations. +See also the option `widget-image-file-name-suffixes'." + (delq nil + (mapcar + #'(lambda (fmt) + (and (valid-image-instantiator-format-p (car fmt)) fmt)) + widget-image-file-name-suffixes))) + ) + ;; GNU Emacs + (t + (defsubst tree-widget-use-image-p () + "Return non-nil if image support is currently enabled." + (and tree-widget-image-enable + widget-image-enable + (display-images-p))) + (defsubst tree-widget-create-image (type file &optional props) + "Create an image of type TYPE from FILE. +Give the image the specified properties PROPS. +Return the new image." + (apply 'create-image `(,file ,type nil ,@props))) + (defsubst tree-widget-image-formats () + "Return the list of image formats, file name suffixes associations. +See also the option `widget-image-conversion'." + (delq nil + (mapcar + #'(lambda (fmt) + (and (image-type-available-p (car fmt)) fmt)) + widget-image-conversion))) + )) + ) + +;; Buffer local cache of theme data. +(defvar tree-widget--theme nil) + +(defsubst tree-widget-theme-name () + "Return the current theme name, or nil if no theme is active." + (and tree-widget--theme (aref tree-widget--theme 0))) + +(defsubst tree-widget-set-theme (&optional name) + "In the current buffer, set the theme to use for images. +The current buffer should be where the tree widget is drawn. +Optional argument NAME is the name of the theme to use, which defaults +to the value of the variable `tree-widget-theme'. +Does nothing if NAME is the name of the current theme." + (or name (setq name (or tree-widget-theme "default"))) + (unless (equal name (tree-widget-theme-name)) + (set (make-local-variable 'tree-widget--theme) + (make-vector 4 nil)) + (aset tree-widget--theme 0 name))) + +(defun tree-widget-themes-directory () + "Locate the directory where to search for a theme. +It is defined in variable `tree-widget-themes-directory'. +Return the absolute name of the directory found, or nil if the +specified directory is not accessible." + (let ((found (aref tree-widget--theme 1))) + (if found + ;; The directory is available in the cache. + (unless (eq found 'void) found) + (cond + ;; Use the directory where tree-widget is located. + ((null tree-widget-themes-directory) + (setq found (locate-library "tree-widget")) + (when found + (setq found (file-name-directory found)) + (or (file-accessible-directory-p found) + (setq found nil)))) + ;; Check accessibility of absolute directory name. + ((file-name-absolute-p tree-widget-themes-directory) + (setq found (expand-file-name tree-widget-themes-directory)) + (or (file-accessible-directory-p found) + (setq found nil))) + ;; Locate a sub-directory in `load-path' and data directory. + (t + (let ((path + (append load-path + ;; The data directory depends on which, GNU + ;; Emacs or XEmacs, is running. + (list (if (fboundp 'locate-data-directory) + (locate-data-directory "tree-widget") + data-directory))))) + (while (and path (not found)) + (when (car path) + (setq found (expand-file-name + tree-widget-themes-directory (car path))) + (or (file-accessible-directory-p found) + (setq found nil))) + (setq path (cdr path)))))) + ;; Store the result in the cache for later use. + (aset tree-widget--theme 1 (or found 'void)) + found))) + +(defsubst tree-widget-set-image-properties (props) + "In current theme, set images properties to PROPS." + (aset tree-widget--theme 2 props)) + +(defun tree-widget-image-properties (file) + "Return properties of images in current theme. +If the \"tree-widget-theme-setup.el\" file exists in the directory +where is located the image FILE, load it to setup theme images +properties. Typically that file should contain something like this: + + (tree-widget-set-image-properties + (if (featurep 'xemacs) + '(:ascent center) + '(:ascent center :mask (heuristic t)) + )) + +By default, use the global properties provided in variables +`tree-widget-image-properties-emacs' or +`tree-widget-image-properties-xemacs'." + ;; If properties are in the cache, use them. + (or (aref tree-widget--theme 2) + (progn + ;; Load tree-widget-theme-setup if available. + (load (expand-file-name + "tree-widget-theme-setup" + (file-name-directory file)) t t) + ;; If properties have been setup, use them. + (or (aref tree-widget--theme 2) + ;; By default, use supplied global properties. + (tree-widget-set-image-properties + (if (featurep 'xemacs) + tree-widget-image-properties-xemacs + tree-widget-image-properties-emacs)))))) + +(defun tree-widget-find-image (name) + "Find the image with NAME in current theme. +NAME is an image file name sans extension. +Search first in current theme, then in default theme. +A theme is a sub-directory of the root theme directory specified in +variable `tree-widget-themes-directory'. +Return the first image found having a supported format in those +returned by the function `tree-widget-image-formats', or nil if not +found." + (when (tree-widget-use-image-p) + ;; Ensure there is an active theme. + (tree-widget-set-theme (tree-widget-theme-name)) + ;; If the image is in the cache, return it. + (or (cdr (assoc name (aref tree-widget--theme 3))) + ;; Search the image in the current, then default themes. + (let ((default-directory (tree-widget-themes-directory))) + (when default-directory + (let* ((theme (tree-widget-theme-name)) + (path (mapcar 'expand-file-name + (if (equal theme "default") + '("default") + (list theme "default")))) + (formats (tree-widget-image-formats)) + (found + (catch 'found + (dolist (dir path) + (dolist (fmt formats) + (dolist (ext (cdr fmt)) + (let ((file (expand-file-name + (concat name ext) dir))) + (and (file-readable-p file) + (file-regular-p file) + (throw 'found + (cons (car fmt) file))))))) + nil))) + (when found + (let ((image + (tree-widget-create-image + (car found) (cdr found) + (tree-widget-image-properties (cdr found))))) + ;; Store image in the cache for later use. + (push (cons name image) (aref tree-widget--theme 3)) + image)))))))) + +;;; Widgets +;; +(defvar tree-widget-button-keymap + (let (parent-keymap mouse-button1 keymap) + (if (featurep 'xemacs) + (setq parent-keymap widget-button-keymap + mouse-button1 [button1]) + (setq parent-keymap widget-keymap + mouse-button1 [down-mouse-1])) + (setq keymap (copy-keymap parent-keymap)) + (define-key keymap mouse-button1 'widget-button-click) + keymap) + "Keymap used inside node handle buttons.") + +(define-widget 'tree-widget-control 'push-button + "Base `tree-widget' control." + :format "%[%t%]" + :button-keymap tree-widget-button-keymap ; XEmacs + :keymap tree-widget-button-keymap ; Emacs + ) + +(define-widget 'tree-widget-open-control 'tree-widget-control + "Control widget that represents a opened `tree-widget' node." + :tag "[-] " + ;;:tag-glyph (tree-widget-find-image "open") + :notify 'tree-widget-close-node + :help-echo "Hide node" + ) + +(define-widget 'tree-widget-empty-control 'tree-widget-open-control + "Control widget that represents an empty opened `tree-widget' node." + :tag "[X] " + ;;:tag-glyph (tree-widget-find-image "empty") + ) + +(define-widget 'tree-widget-close-control 'tree-widget-control + "Control widget that represents a closed `tree-widget' node." + :tag "[+] " + ;;:tag-glyph (tree-widget-find-image "close") + :notify 'tree-widget-open-node + :help-echo "Show node" + ) + +(define-widget 'tree-widget-leaf-control 'item + "Control widget that represents a leaf node." + :tag " " ;; Need at least a char to display the image :-( + ;;:tag-glyph (tree-widget-find-image "leaf") + :format "%t" + ) + +(define-widget 'tree-widget-guide 'item + "Widget that represents a guide line." + :tag " |" + ;;:tag-glyph (tree-widget-find-image "guide") + :format "%t" + ) + +(define-widget 'tree-widget-end-guide 'item + "Widget that represents the end of a guide line." + :tag " `" + ;;:tag-glyph (tree-widget-find-image "end-guide") + :format "%t" + ) + +(define-widget 'tree-widget-no-guide 'item + "Widget that represents an invisible guide line." + :tag " " + ;;:tag-glyph (tree-widget-find-image "no-guide") + :format "%t" + ) + +(define-widget 'tree-widget-handle 'item + "Widget that represent a node handle." + :tag " " + ;;:tag-glyph (tree-widget-find-image "handle") + :format "%t" + ) + +(define-widget 'tree-widget-no-handle 'item + "Widget that represent an invisible node handle." + :tag " " + ;;:tag-glyph (tree-widget-find-image "no-handle") + :format "%t" + ) + +(define-widget 'tree-widget 'default + "Tree widget." + :format "%v" + :convert-widget 'widget-types-convert-widget + :value-get 'widget-value-value-get + :value-create 'tree-widget-value-create + :value-delete 'tree-widget-value-delete + ) + +;;; Widget support functions +;; +(defun tree-widget-p (widget) + "Return non-nil if WIDGET is a `tree-widget' widget." + (let ((type (widget-type widget))) + (while (and type (not (eq type 'tree-widget))) + (setq type (widget-type (get type 'widget-type)))) + (eq type 'tree-widget))) + +(defsubst tree-widget-get-super (widget property) + "Return WIDGET's inherited PROPERTY value." + (widget-get (get (widget-type (get (widget-type widget) + 'widget-type)) + 'widget-type) + property)) + +(defsubst tree-widget-super-format-handler (widget escape) + "Call WIDGET's inherited format handler to process ESCAPE character." + (let ((handler (tree-widget-get-super widget :format-handler))) + (and handler (funcall handler widget escape)))) + +(defun tree-widget-format-handler (widget escape) + "For WIDGET, signal that the %p format template is obsolete. +Call WIDGET's inherited format handler to process other ESCAPE +characters." + (if (eq escape ?p) + (message "The %%p format template is obsolete and ignored") + (tree-widget-super-format-handler widget escape))) +(make-obsolete 'tree-widget-format-handler + 'tree-widget-super-format-handler) + +(defsubst tree-widget-node (widget) + "Return the tree WIDGET :node value. +If not found setup a default 'item' widget." + (let ((node (widget-get widget :node))) + (unless node + (setq node `(item :tag ,(or (widget-get widget :tag) + (widget-princ-to-string + (widget-value widget))))) + (widget-put widget :node node)) + node)) + +(defsubst tree-widget-open-control (widget) + "Return the opened node control specified in WIDGET." + (or (widget-get widget :open-control) + 'tree-widget-open-control)) + +(defsubst tree-widget-close-control (widget) + "Return the closed node control specified in WIDGET." + (or (widget-get widget :close-control) + 'tree-widget-close-control)) + +(defsubst tree-widget-empty-control (widget) + "Return the empty node control specified in WIDGET." + (or (widget-get widget :empty-control) + 'tree-widget-empty-control)) + +(defsubst tree-widget-leaf-control (widget) + "Return the leaf node control specified in WIDGET." + (or (widget-get widget :leaf-control) + 'tree-widget-leaf-control)) + +(defsubst tree-widget-guide (widget) + "Return the guide line widget specified in WIDGET." + (or (widget-get widget :guide) + 'tree-widget-guide)) + +(defsubst tree-widget-end-guide (widget) + "Return the end of guide line widget specified in WIDGET." + (or (widget-get widget :end-guide) + 'tree-widget-end-guide)) + +(defsubst tree-widget-no-guide (widget) + "Return the invisible guide line widget specified in WIDGET." + (or (widget-get widget :no-guide) + 'tree-widget-no-guide)) + +(defsubst tree-widget-handle (widget) + "Return the node handle line widget specified in WIDGET." + (or (widget-get widget :handle) + 'tree-widget-handle)) + +(defsubst tree-widget-no-handle (widget) + "Return the node invisible handle line widget specified in WIDGET." + (or (widget-get widget :no-handle) + 'tree-widget-no-handle)) + +(defun tree-widget-keep (arg widget) + "Save in ARG the WIDGET properties specified by :keep." + (dolist (prop (widget-get widget :keep)) + (widget-put arg prop (widget-get widget prop)))) + +(defun tree-widget-children-value-save (widget &optional args node) + "Save WIDGET children values. +Children properties and values are saved in ARGS if non-nil else in +WIDGET :args property value. Data node properties and value are saved +in NODE if non-nil else in WIDGET :node property value." + (let ((args (or args (widget-get widget :args))) + (node (or node (tree-widget-node widget))) + (children (widget-get widget :children)) + (node-child (widget-get widget :tree-widget--node)) + arg child) + (while (and args children) + (setq arg (car args) + args (cdr args) + child (car children) + children (cdr children)) + (if (tree-widget-p child) +;;;; The child is a tree node. + (progn + ;; Backtrack :args and :node properties. + (widget-put arg :args (widget-get child :args)) + (widget-put arg :node (tree-widget-node child)) + ;; Save :open property. + (widget-put arg :open (widget-get child :open)) + ;; The node is open. + (when (widget-get child :open) + ;; Save the widget value. + (widget-put arg :value (widget-value child)) + ;; Save properties specified in :keep. + (tree-widget-keep arg child) + ;; Save children. + (tree-widget-children-value-save + child (widget-get arg :args) (widget-get arg :node)))) +;;;; Another non tree node. + ;; Save the widget value + (widget-put arg :value (widget-value child)) + ;; Save properties specified in :keep. + (tree-widget-keep arg child))) + (when (and node node-child) + ;; Assume that the node child widget is not a tree! + ;; Save the node child widget value. + (widget-put node :value (widget-value node-child)) + ;; Save the node child properties specified in :keep. + (tree-widget-keep node node-child)) + )) + +(defvar tree-widget-after-toggle-functions nil + "Hooks run after toggling a `tree-widget' folding. +Each function will receive the `tree-widget' as its unique argument. +This variable should be local to each buffer used to display +widgets.") + +(defun tree-widget-close-node (widget &rest ignore) + "Close the `tree-widget' node associated to this control WIDGET. +WIDGET's parent should be a `tree-widget'. +IGNORE other arguments." + (let ((tree (widget-get widget :parent))) + ;; Before folding the node up, save children values so next open + ;; can recover them. + (tree-widget-children-value-save tree) + (widget-put tree :open nil) + (widget-value-set tree nil) + (run-hook-with-args 'tree-widget-after-toggle-functions tree))) + +(defun tree-widget-open-node (widget &rest ignore) + "Open the `tree-widget' node associated to this control WIDGET. +WIDGET's parent should be a `tree-widget'. +IGNORE other arguments." + (let ((tree (widget-get widget :parent))) + (widget-put tree :open t) + (widget-value-set tree t) + (run-hook-with-args 'tree-widget-after-toggle-functions tree))) + +(defun tree-widget-value-delete (widget) + "Delete tree WIDGET children." + ;; Delete children + (widget-children-value-delete widget) + ;; Delete node child + (widget-delete (widget-get widget :tree-widget--node)) + (widget-put widget :tree-widget--node nil)) + +(defun tree-widget-value-create (tree) + "Create the TREE widget." + (let* ((widget-image-enable (tree-widget-use-image-p)) ; Emacs + (widget-glyph-enable widget-image-enable) ; XEmacs + (node (tree-widget-node tree)) + children buttons) + (if (widget-get tree :open) +;;;; Unfolded node. + (let* ((args (widget-get tree :args)) + (dynargs (widget-get tree :dynargs)) + (flags (widget-get tree :tree-widget--guide-flags)) + (rflags (reverse flags)) + (guide (tree-widget-guide tree)) + (noguide (tree-widget-no-guide tree)) + (endguide (tree-widget-end-guide tree)) + (handle (tree-widget-handle tree)) + (nohandle (tree-widget-no-handle tree)) + ;; Lookup for images and set widgets' tag-glyphs here, + ;; to allow to dynamically change the image theme. + (guidi (tree-widget-find-image "guide")) + (noguidi (tree-widget-find-image "no-guide")) + (endguidi (tree-widget-find-image "end-guide")) + (handli (tree-widget-find-image "handle")) + (nohandli (tree-widget-find-image "no-handle")) + child) + (when dynargs + ;; Request the definition of dynamic children + (setq dynargs (funcall dynargs tree)) + ;; Unless children have changed, reuse the widgets + (unless (eq args dynargs) + (setq args (mapcar 'widget-convert dynargs)) + (widget-put tree :args args))) + ;; Insert the node control + (push (widget-create-child-and-convert + tree (if args (tree-widget-open-control tree) + (tree-widget-empty-control tree)) + :tag-glyph (tree-widget-find-image + (if args "open" "empty"))) + buttons) + ;; Insert the node element + (widget-put tree :tree-widget--node + (widget-create-child-and-convert tree node)) + ;; Insert children + (while args + (setq child (car args) + args (cdr args)) + ;; Insert guide lines elements + (dolist (f rflags) + (widget-create-child-and-convert + tree (if f guide noguide) + :tag-glyph (if f guidi noguidi)) + (widget-create-child-and-convert + tree nohandle :tag-glyph nohandli) + ) + (widget-create-child-and-convert + tree (if args guide endguide) + :tag-glyph (if args guidi endguidi)) + ;; Insert the node handle line + (widget-create-child-and-convert + tree handle :tag-glyph handli) + ;; If leaf node, insert a leaf node control + (unless (tree-widget-p child) + (push (widget-create-child-and-convert + tree (tree-widget-leaf-control tree) + :tag-glyph (tree-widget-find-image "leaf")) + buttons)) + ;; Insert the child element + (push (widget-create-child-and-convert + tree child + :tree-widget--guide-flags (cons (if args t) flags)) + children))) +;;;; Folded node. + ;; Insert the closed node control + (push (widget-create-child-and-convert + tree (tree-widget-close-control tree) + :tag-glyph (tree-widget-find-image "close")) + buttons) + ;; Insert the node element + (widget-put tree :tree-widget--node + (widget-create-child-and-convert tree node))) + ;; Save widget children and buttons + (widget-put tree :children (nreverse children)) + (widget-put tree :buttons buttons) + )) + +;;; Utilities +;; +(defun tree-widget-map (widget fun) + "For each WIDGET displayed child call function FUN. +FUN is called with three arguments like this: + + (FUN CHILD IS-NODE WIDGET) + +where: +- - CHILD is the child widget. +- - IS-NODE is non-nil if CHILD is WIDGET node widget." + (when (widget-get widget :tree-widget--node) + (funcall fun (widget-get widget :tree-widget--node) t widget) + (dolist (child (widget-get widget :children)) + (if (tree-widget-p child) + ;; The child is a tree node. + (tree-widget-map child fun) + ;; Another non tree node. + (funcall fun child nil widget))))) + +(provide 'tree-widget) + +;;; arch-tag: c3a1ada2-1663-41dc-9d16-2479ed8320e8 +;;; tree-widget.el ends here diff --git a/lisp/version.el b/lisp/version.el index 6c99d8de1d6..9cae0d25702 100644 --- a/lisp/version.el +++ b/lisp/version.el @@ -61,9 +61,9 @@ to the system configuration; look at `system-configuration' instead." system-configuration (cond ((featurep 'motif) (concat ", " (substring motif-version-string 4))) - ((featurep 'x-toolkit) ", X toolkit") ((featurep 'gtk) (concat ", GTK+ Version " gtk-version-string)) + ((featurep 'x-toolkit) ", X toolkit") (t "")) (if (and (boundp 'x-toolkit-scroll-bars) (memq x-toolkit-scroll-bars '(xaw xaw3d))) diff --git a/lisp/wid-edit.el b/lisp/wid-edit.el index 33f1f06ba9a..b1a89e4fbef 100644 --- a/lisp/wid-edit.el +++ b/lisp/wid-edit.el @@ -2294,7 +2294,7 @@ Return an alist of (TYPE MATCH)." (defun widget-radio-button-notify (widget child &optional event) ;; Tell daddy. - (widget-apply (widget-get widget :parent) :action widget event)) + (widget-apply (widget-get widget :parent) :action event)) ;;; The `radio-button-choice' Widget. |