Mercurial > emacs
changeset 83381:d84f940244dc
Merged from miles@gnu.org--gnu-2005 (patch 116-117, 544-550)
Patches applied:
* miles@gnu.org--gnu-2005/emacs--cvs-trunk--0--patch-544
Update from CVS
* miles@gnu.org--gnu-2005/emacs--cvs-trunk--0--patch-545
Update from CVS
* miles@gnu.org--gnu-2005/emacs--cvs-trunk--0--patch-546
Merge from gnus--rel--5.10
* miles@gnu.org--gnu-2005/emacs--cvs-trunk--0--patch-547
Update from CVS
* miles@gnu.org--gnu-2005/emacs--cvs-trunk--0--patch-548
Update from CVS
* miles@gnu.org--gnu-2005/emacs--cvs-trunk--0--patch-549
Update from CVS
* miles@gnu.org--gnu-2005/emacs--cvs-trunk--0--patch-550
Update from CVS
* miles@gnu.org--gnu-2005/gnus--rel--5.10--patch-116
Merge from emacs--cvs-trunk--0
* miles@gnu.org--gnu-2005/gnus--rel--5.10--patch-117
Update from CVS
git-archimport-id: lorentey@elte.hu--2004/emacs--multi-tty--0--patch-421
author | Karoly Lorentey <lorentey@elte.hu> |
---|---|
date | Sat, 17 Sep 2005 19:10:55 +0000 |
parents | 94f174e5569d (current diff) 6759056e7603 (diff) |
children | 7a3090aca393 |
files | ChangeLog lisp/ChangeLog lisp/bindings.el lisp/help-fns.el lisp/international/iso-insert.el lisp/net/newsticker.el lisp/progmodes/vhdl-mode.el lisp/recentf.el lisp/url/url-mailto.el lispref/ChangeLog man/ChangeLog man/emacs.texi man/newsticker.texi src/Makefile.in src/coding.c src/emacs.c src/fileio.c src/print.c src/xdisp.c |
diffstat | 49 files changed, 2047 insertions(+), 1162 deletions(-) [+] |
line wrap: on
line diff
--- a/ChangeLog Sat Sep 17 19:00:49 2005 +0000 +++ b/ChangeLog Sat Sep 17 19:10:55 2005 +0000 @@ -1,3 +1,9 @@ +2005-09-15 Ulf Jasper <ulf.jasper@web.de> + + * Makefile.in (install-arch-indep, uninstall): + Handle newsticker manual. + (info): Add - to commands. + 2005-09-11 Kim F. Storm <storm@cua.dk> * AUTHORS: Regenerate.
--- a/Makefile.in Sat Sep 17 19:00:49 2005 +0000 +++ b/Makefile.in Sat Sep 17 19:10:55 2005 +0000 @@ -486,7 +486,7 @@ chmod a+r ${infodir}/dir); \ fi; \ cd ${srcdir}/info ; \ - for f in ada-mode* autotype* calc* ccmode* cl* dired-x* ebrowse* ediff* efaq* eintr* elisp* emacs* emacs-mime* emacs-xtra* eshell* eudc* flymake* forms* gnus* idlwave* info* message* mh-e* org* pcl-cvs* pgg* reftex* sc* ses* sieve* speedbar* tramp* vip* widget* woman* smtpmail* url*; do \ + for f in ada-mode* autotype* calc* ccmode* cl* dired-x* ebrowse* ediff* efaq* eintr* elisp* emacs* emacs-mime* emacs-xtra* eshell* eudc* flymake* forms* gnus* idlwave* info* message* mh-e* newsticker* org* pcl-cvs* pgg* reftex* sc* ses* sieve* speedbar* tramp* vip* widget* woman* smtpmail* url*; do \ (cd $${thisdir}; \ ${INSTALL_DATA} ${srcdir}/info/$$f ${infodir}/$$f; \ chmod a+r ${infodir}/$$f); \ @@ -496,7 +496,7 @@ thisdir=`/bin/pwd`; \ if [ `(cd ${srcdir}/info && /bin/pwd)` != `(cd ${infodir} && /bin/pwd)` ]; \ then \ - for f in ada-mode autotype calc ccmode cl dired-x ebrowse ediff efaq elisp eintr emacs emacs-mime emacs-xtra eshell eudc flymake forms gnus idlwave info message mh-e org pcl-cvs pgg reftex sc ses sieve speedbar tramp vip viper widget woman smtpmail url; do \ + for f in ada-mode autotype calc ccmode cl dired-x ebrowse ediff efaq elisp eintr emacs emacs-mime emacs-xtra eshell eudc flymake forms gnus idlwave info message mh-e newsticker org pcl-cvs pgg reftex sc ses sieve speedbar tramp vip viper widget woman smtpmail url; do \ (cd $${thisdir}; \ ${INSTALL_INFO} --info-dir=${infodir} ${infodir}/$$f); \ done; \ @@ -562,7 +562,7 @@ done (cd ${archlibdir} && rm -f fns-*) -rm -rf ${libexecdir}/emacs/${version} - (cd ${infodir} && rm -f cl* ada-mode* autotype* calc* ccmode* ebrowse* efaq* eintr elisp* eshell* eudc* idlwave* message* pcl-cvs* reftex* speedbar* tramp* widget* woman* dired-x* ediff* emacs* emacs-xtra* flymake* forms* gnus* info* mh-e* org* sc* ses* vip* smtpmail* url*) + (cd ${infodir} && rm -f cl* ada-mode* autotype* calc* ccmode* ebrowse* efaq* eintr elisp* eshell* eudc* idlwave* message* pcl-cvs* reftex* speedbar* tramp* widget* woman* dired-x* ediff* emacs* emacs-xtra* flymake* forms* gnus* info* mh-e* newsticker* org* sc* ses* vip* smtpmail* url*) (cd ${man1dir} && rm -f emacs${manext} emacsclient${manext} etags${manext} ctags${manext}) (cd ${bindir} && rm -f $(EMACSFULL) $(EMACS)) @@ -721,9 +721,9 @@ # put the info files in $(srcdir), # so we can do ok running make in the build dir. info: force-info - (cd man; $(MAKE) $(MFLAGS) info) - (cd lispref; $(MAKE) $(MFLAGS) info) - (cd lispintro; $(MAKE) $(MFLAGS) info) + -(cd man; $(MAKE) $(MFLAGS) info) + -(cd lispref; $(MAKE) $(MFLAGS) info) + -(cd lispintro; $(MAKE) $(MFLAGS) info) dvi: (cd man; $(MAKE) $(MFLAGS) dvi) (cd lispref; $(MAKE) $(MFLAGS) elisp.dvi)
--- a/etc/ChangeLog Sat Sep 17 19:00:49 2005 +0000 +++ b/etc/ChangeLog Sat Sep 17 19:10:55 2005 +0000 @@ -1,3 +1,12 @@ +2005-09-15 Kenichi Handa <handa@m17n.org> + + * PROBLEMS: Fix the paragraph describing the limitation of + UTF-8/16/7. + +2005-09-14 Romain Francoise <romain@orebokech.com> + + * NEWS: Add entry for write-region-inhibit-fsync. + 2005-09-09 Kevin Ryde <user42@zip.com.au> * MORE.STUFF: Update url for calculator.el.
--- a/etc/NEWS Sat Sep 17 19:00:49 2005 +0000 +++ b/etc/NEWS Sat Sep 17 19:10:55 2005 +0000 @@ -618,6 +618,12 @@ attempt to construct a unique auto-save name (e.g. for remote files). +++ +*** The new option `write-region-inhibit-fsync' disables calls to fsync +in `write-region'. This can be useful on laptops to avoid spinning up +the hard drive upon each file save. Enabling this variable may result +in data loss, use with care. + ++++ *** If the user visits a file larger than `large-file-warning-threshold', Emacs asks for confirmation. @@ -1478,6 +1484,14 @@ * New Modes and Packages in Emacs 22.1 +--- +** Newsticker is now part of the Emacs distribution. + +Newsticker asynchronously retrieves headlines (RSS) from a list of news +sites, prepares these headlines for reading, and allows for loading the +corresponding articles in a web browser. Its documentation is in a +separate manual. + +++ ** Filesets are collections of files. You can define a fileset in various ways, such as based on a directory tree or based on @@ -2991,11 +3005,17 @@ with other details of skeleton construction. --- -** New variable `hs-set-up-overlay' allows customization of the overlay +** Hideshow mode changes + +*** New variable `hs-set-up-overlay' allows customization of the overlay used to effect hiding for hideshow minor mode. Integration with isearch handles the overlay property `display' specially, preserving it during temporary overlay showing in the course of an isearch operation. +*** New variable `hs-allow-nesting' non-nil means that hiding a block does +not discard the hidden state of any "internal" blocks; when the parent +block is later shown, the internal blocks remain hidden. Default is nil. + +++ ** `hide-ifdef-mode' now uses overlays rather than selective-display to hide its text. This should be mostly transparent but slightly @@ -4586,6 +4606,17 @@ an event is composed by combining the ID of the hot-spot with the mouse event, e.g. [area4 mouse-1] if the hot-spot's ID is `area4'. ++++ +*** The function `find-image' now searches in etc/images/ and etc/. +The new variable `image-load-path' is a list of locations in which to +search for image files. The default is to search in etc/images, then +in etc/, and finally in the directories specified by `load-path'. +Subdirectories of etc/ and etc/images are not recursively searched; if +you put an image file in a subdirectory, you have to specify it +explicitly; for example, if an image is put in etc/images/foo/bar.xpm: + + (defimage foo-image '((:type xpm :file "foo/bar.xpm"))) + ** Mouse pointer features: +++ (lispref)
--- a/etc/PROBLEMS Sat Sep 17 19:00:49 2005 +0000 +++ b/etc/PROBLEMS Sat Sep 17 19:10:55 2005 +0000 @@ -841,9 +841,16 @@ ** The UTF-8/16/7 coding systems don't encode CJK (Far Eastern) characters. -Emacs by default only supports the parts of the Unicode BMP whose code -points are in the ranges 0000-33ff and e000-ffff. This excludes: most -of CJK, Yi and Hangul, as well as everything outside the BMP. +Emacs directly supports the Unicode BMP whose code points are in the +ranges 0000-33ff and e000-ffff, and indirectly supports the parts of +CJK characters belonging to these legacy charsets: + + GB2312, Big5, JISX0208, JISX0212, JISX0213-1, JISX0213-2, KSC5601 + +The latter support is done in Utf-Translate-Cjk mode (turned on by +default). Which Unicode CJK characters are decoded into which Emacs +charset is decided by the current language environment. For instance, +in Chinese-GB, most of them are decoded into chinese-gb2312. If you read UTF-8 data with code points outside these ranges, the characters appear in the buffer as raw bytes of the original UTF-8 @@ -853,13 +860,6 @@ substituted with the Unicode `replacement character', and you lose information. -To edit such UTF data, turn on Utf-Translate-Cjk mode, which makes -many common CJK characters available for encoding and decoding and can -be extended by updating the tables it uses. This also allows you to -save as UTF buffers containing characters decoded by the chinese-, -japanese- and korean- coding systems, e.g. cut and pasted from -elsewhere. - ** Mule-UCS loads very slowly. Changes to Emacs internals interact badly with Mule-UCS's `un-define'
--- a/lib-src/ChangeLog Sat Sep 17 19:00:49 2005 +0000 +++ b/lib-src/ChangeLog Sat Sep 17 19:10:55 2005 +0000 @@ -1,3 +1,9 @@ +2005-09-15 Richard M. Stallman <rms@gnu.org> + + * Makefile.in (update-game-score.o): New target. + Compile and link this progranm separately. + (update-game-score${EXEEXT}): Use GETOPTDEPTS. + 2005-09-11 Jason Rumney <jasonr@gnu.org> * makefile.w32-in (../src/config.h): Don't overwrite. Print a
--- a/lib-src/Makefile.in Sat Sep 17 19:00:49 2005 +0000 +++ b/lib-src/Makefile.in Sat Sep 17 19:10:55 2005 +0000 @@ -460,10 +460,12 @@ hexl${EXEEXT}: ${srcdir}/hexl.c ../src/config.h $(CC) ${ALL_CFLAGS} ${srcdir}/hexl.c $(LOADLIBES) -o hexl -update-game-score${EXEEXT}: ${srcdir}/update-game-score.c ../src/config.h - $(CC) ${ALL_CFLAGS} ${srcdir}/update-game-score.c \ +update-game-score${EXEEXT}: update-game-score.o $(GETOPTDEPS) + $(CC) ${LINK_CFLAGS} ${MOVE_FLAGS} update-game-score.o $(GETOPTOBJS) $(LOADLIBES) -o update-game-score + +update-game-score.o: ${srcdir}/update-game-score.c ../src/config.h $(GETOPT_H) + $(CC) -c ${CPP_CFLAGS} ${srcdir}/update-game-score.c \ -DHAVE_SHARED_GAME_DIR="\"$(gamedir)\"" \ - $(LOADLIBES) -o update-game-score /* These are NOT included in INSTALLABLES or UTILITIES. See ../src/Makefile.in. */
--- a/lisp/ChangeLog Sat Sep 17 19:00:49 2005 +0000 +++ b/lisp/ChangeLog Sat Sep 17 19:10:55 2005 +0000 @@ -1,10 +1,92 @@ +2005-09-15 Chong Yidong <cyd@stupidchicken.com> + + * image.el (image-load-path): New variable. + (image-search-load-path): New function. + (find-image): Search for images in `image-load-path'. + +2005-09-15 David Ponce <david@dponce.com> + + * recentf.el (recentf-save-file-modes): New option. + (recentf-save-list): Use it. + +2005-09-15 Nick Roberts <nickrob@snap.net.nz> + + * bindings.el (mode-line-eol-desc, mode-line-coding-system-map) + (mode-line-mule-info, mode-line-modified): Move bindings from + mouse-3 to mouse-1. + +2005-09-15 Chong Yidong <cyd@stupidchicken.com> + + * simple.el (sendmail-user-agent-compose): Revert last change. + +2005-09-14 Stefan Monnier <monnier@iro.umontreal.ca> + + * net/ange-ftp.el (ange-ftp-process-filter): Revert to ^#+$. + Use with-current-buffer. + (ange-ftp-gwp-start): Remove unused var `gw-user'. + (ange-ftp-guess-hash-mark-size): Remove unused var `result'. + (ange-ftp-insert-directory): Remove unused var `short'. + (ange-ftp-file-name-sans-versions): Remove unused var `host-type'. + + * pcvs-defs.el (cvs-version): Recognize CVSNT version string. + (cvs-execute-single-dir): Change default: cvs-1.9 is ancient. + + * calendar/cal-menu.el: Don't require easymenu, since we don't use it. + (check-calendar-holidays, diary-list-entries): Autoload. + Otherwise `emacs -q' followed by "mouse-2 -> diary entries" burps. + (calendar-mouse-holidays, calendar-mouse-view-diary-entries): Simplify. + + * calendar/diary-lib.el (diary-show-all-entries): Fix last change, + which mistakenly removed a call to display-buffer. + +2005-09-14 Juanma Barranquero <lekktu@gmail.com> + + * obsolete/iso-insert.el: Move to obsolete/ from international/. + +2005-09-14 Thien-Thi Nguyen <ttn@gnu.org> + + * progmodes/hideshow.el + (hs-hide-comments-when-hiding-all): Remove autoload cookie. + (hs-allow-nesting): New user var. + (hs-discard-overlays): Skip "internal" overlays if nesting allowed. + (hs-hide-block-at-point): When nesting allowed, + if there is already an overlay in place, delete it. + (hs-safety-is-job-n): Delete func; remove call sites. + (hs-hide-level-recursive): Don't pre-clean if nesting allowed. + (hs-overlay-at): New func. + (hs-already-hidden-p, hs-show-block): Use it. + (hs-hide-all): Don't pre-clean if nesting allowed. + (hs-show-all): Temporarily disallow + nesting around call to `hs-discard-overlays'. + +2005-09-14 Chong Yidong <cyd@stupidchicken.com> + + * mouse.el (mouse-major-mode-menu): Make `prefix' optional. + Delete unused local var. + +2005-09-13 Juanma Barranquero <lekktu@gmail.com> + + * help-fns.el (describe-categories): "?\ " -> "?\s". + (help-do-arg-highlight): Recognize also ARG-n, as in + `move-to-left-margin' (ARG+n is already recognized). Simplify. + + * international/codepage.el (dos-unsupported-char-glyph): + * net/newsticker.el (tool-bar-map, w3-mode-map) + (w3m-minor-mode-map): + * progmodes/vhdl-mode.el (conf-alist, conf-entry, conf-key) + (ent-alist): + * textmodes/reftex-vars.el (reftex-tables-dirty): Add defvars. + 2005-09-13 Chong Yidong <cyd@stupidchicken.com> * custom.el (custom-push-theme): Handle the case where a symbol is bound but face properties have not yet been assigned. - * mail/sendmail.el (mail): Use new buffer if `noerase' argument is - `new'. + * mail/sendmail.el (mail): Use new buffer if `noerase' is `new'. + Fix behavior if noerase is `t' and there is no mail buffer. + + * simple.el (sendmail-user-agent-compose): Use a new mail buffer + if `continue' is nil, rather than signal an error. 2005-09-12 Richard M. Stallman <rms@gnu.org> @@ -65,7 +147,6 @@ * time-stamp.el: Mention variable `time-stamp-pattern' in doc strings of the variables it can override. - (time-stamp): New (as yet undocumented) time-stamp-format escapes %Q and %q, for fully-qualified domain name and unqualified host name. @@ -232,13 +313,6 @@ 2005-09-06 Stefan Monnier <monnier@iro.umontreal.ca> - * net/ange-ftp.el (ange-ftp-process-filter): Revert to ^#+$. - Use with-current-buffer. - (ange-ftp-gwp-start): Remove unused var `gw-user'. - (ange-ftp-guess-hash-mark-size): Remove unused var `result'. - (ange-ftp-insert-directory): Remove unused var `short'. - (ange-ftp-file-name-sans-versions): Remove unused var `host-type'. - * buff-menu.el (Buffer-menu-make-sort-button): Add docstrings, use non-anonymous functions.
--- a/lisp/bindings.el Sat Sep 17 19:00:49 2005 +0000 +++ b/lisp/bindings.el Sat Sep 17 19:10:55 2005 +0000 @@ -123,7 +123,7 @@ (defvar mode-line-coding-system-map (let ((map (make-sparse-keymap))) - (define-key map [mode-line mouse-3] + (define-key map [mode-line mouse-1] (lambda (e) (interactive "e") (save-selected-window @@ -156,7 +156,7 @@ (setq desc (propertize mnemonic - 'help-echo (format "%s end-of-line; mouse-3 to cycle" + 'help-echo (format "%s end-of-line; mouse-1 to cycle" (if (eq eol 0) "Unix-style LF" (if (eq eol 1) "Dos-style CRLF" (if (eq eol 2) "Mac-style CR" @@ -164,7 +164,7 @@ 'keymap (eval-when-compile (let ((map (make-sparse-keymap))) - (define-key map [mode-line mouse-3] 'mode-line-change-eol) + (define-key map [mode-line mouse-1] 'mode-line-change-eol) map)) 'mouse-face 'mode-line-highlight)) (push (cons eol (cons mnemonic desc)) mode-line-eol-desc-cache) @@ -190,7 +190,7 @@ (when buffer-file-coding-system (if enable-multibyte-characters (concat (symbol-name buffer-file-coding-system) - " buffer; mouse-3: describe coding system") + " buffer; mouse-1: describe coding system") (concat "Unibyte " (symbol-name buffer-file-coding-system) " buffer"))))) 'mouse-face 'mode-line-highlight @@ -230,27 +230,27 @@ (list (propertize "%1*" 'help-echo (purecopy (lambda (window object point) - (format "%sead-only: mouse-3 toggles" + (format "%sead-only: mouse-1 toggles" (save-selected-window (select-window window) (if buffer-read-only "R" "Not r"))))) 'local-map (purecopy (make-mode-line-mouse-map - 'mouse-3 + 'mouse-1 #'mode-line-toggle-read-only)) 'mouse-face 'mode-line-highlight) (propertize "%1+" 'help-echo (purecopy (lambda (window object point) - (format "%sodified: mouse-3 toggles" + (format "%sodified: mouse-1 toggles" (save-selected-window (select-window window) (if (buffer-modified-p) "M" "Not m"))))) 'local-map (purecopy (make-mode-line-mouse-map - 'mouse-3 #'mode-line-toggle-modified)) + 'mouse-1 #'mode-line-toggle-modified)) 'mouse-face 'mode-line-highlight)) "Mode-line control for displaying whether current buffer is modified.")
--- a/lisp/calendar/cal-menu.el Sat Sep 17 19:00:49 2005 +0000 +++ b/lisp/calendar/cal-menu.el Sat Sep 17 19:10:55 2005 +0000 @@ -44,7 +44,6 @@ (defvar event) (eval-when-compile (require 'calendar)) -(require 'easymenu) (define-key calendar-mode-map [menu-bar edit] 'undefined) (define-key calendar-mode-map [menu-bar search] 'undefined) @@ -323,12 +322,14 @@ (calendar-cursor-to-date (calendar-current-date)) (calendar-cursor-holidays))) +(autoload 'check-calendar-holidays "holidays") +(autoload 'diary-list-entries "diary-lib") + (defun calendar-mouse-holidays () "Pop up menu of holidays for mouse selected date." (interactive) (let* ((date (calendar-event-to-date)) - (l (mapcar '(lambda (x) (list x)) - (check-calendar-holidays date))) + (l (mapcar 'list (check-calendar-holidays date))) (selection (cal-menu-x-popup-menu event @@ -350,11 +351,10 @@ (diary-list-include-blanks nil) (diary-display-hook 'ignore) (diary-entries - (mapcar '(lambda (x) (split-string (car (cdr x)) "\^M\\|\n")) - (list-diary-entries date 1))) + (mapcar (lambda (x) (split-string (car (cdr x)) "\^M\\|\n")) + (diary-list-entries date 1))) (holidays (if holidays-in-diary-buffer - (mapcar '(lambda (x) (list x)) - (check-calendar-holidays date)))) + (check-calendar-holidays date))) (title (concat "Diary entries " (if diary (format "from %s " diary) "") "for " @@ -365,9 +365,7 @@ (list title (append (list title) - (if holidays - (mapcar '(lambda (x) (list (concat " " (car x)))) - holidays)) + (mapcar (lambda (x) (list (concat " " x))) holidays) (if holidays (list "--shadow-etched-in" "--shadow-etched-in")) (if diary-entries
--- a/lisp/calendar/diary-lib.el Sat Sep 17 19:00:49 2005 +0000 +++ b/lisp/calendar/diary-lib.el Sat Sep 17 19:10:55 2005 +0000 @@ -764,7 +764,8 @@ (pop-up-frames (window-dedicated-p (selected-window)))) (with-current-buffer (or (find-buffer-visiting d-file) (find-file-noselect d-file t)) - (diary-unhide-everything)))) + (diary-unhide-everything) + (display-buffer (current-buffer))))) (defcustom diary-mail-addr (if (boundp 'user-mail-address) user-mail-address "")
--- a/lisp/follow.el Sat Sep 17 19:00:49 2005 +0000 +++ b/lisp/follow.el Sat Sep 17 19:10:55 2005 +0000 @@ -4,7 +4,7 @@ ;; 2005 Free Software Foundation, Inc. ;; Author: Anders Lindgren <andersl@andersl.com> -;; Maintainer: Anders Lindgren <andersl@andersl.com> +;; Maintainer: FSF (Anders' email bounces, Sep 2005) ;; Created: 1995-05-25 ;; Keywords: display, window, minor-mode, convenience ;; Last Changed: 1999-11-17
--- a/lisp/gnus/ChangeLog Sat Sep 17 19:00:49 2005 +0000 +++ b/lisp/gnus/ChangeLog Sat Sep 17 19:10:55 2005 +0000 @@ -1,3 +1,8 @@ +2005-09-13 Katsumi Yamaoka <yamaoka@jpl.org> + + * gnus-sum.el (gnus-summary-edit-article-done): Remove text props + before parsing header. + 2005-09-10 Reiner Steib <Reiner.Steib@gmx.de> * spam-report.el (spam-report-gmane): Fix generation of spam
--- a/lisp/gnus/gnus-sum.el Sat Sep 17 19:00:49 2005 +0000 +++ b/lisp/gnus/gnus-sum.el Sat Sep 17 19:10:55 2005 +0000 @@ -9561,7 +9561,8 @@ (save-excursion (save-restriction (message-narrow-to-head) - (let ((head (buffer-string)) + (let ((head (buffer-substring-no-properties + (point-min) (point-max))) header) (with-temp-buffer (insert (format "211 %d Article retrieved.\n"
--- a/lisp/help-fns.el Sat Sep 17 19:00:49 2005 +0000 +++ b/lisp/help-fns.el Sat Sep 17 19:10:55 2005 +0000 @@ -269,22 +269,20 @@ (defun help-do-arg-highlight (doc args) (with-syntax-table (make-syntax-table emacs-lisp-mode-syntax-table) (modify-syntax-entry ?\- "w") - (while args - (let ((arg (prog1 (car args) (setq args (cdr args))))) - (setq doc (replace-regexp-in-string - ;; This is heuristic, but covers all common cases - ;; except ARG1-ARG2 - (concat "\\<" ; beginning of word - "\\(?:[a-z-]*-\\)?" ; for xxx-ARG - "\\(" - (regexp-quote 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)) + (dolist (arg args doc) + (setq doc (replace-regexp-in-string + ;; This is heuristic, but covers all common cases + ;; except ARG1-ARG2 + (concat "\\<" ; beginning of word + "\\(?:[a-z-]*-\\)?" ; for xxx-ARG + "\\(" + (regexp-quote arg) + "\\)" + "\\(?:es\\|s\\|th\\)?" ; for ARGth, ARGs + "\\(?:-[a-z0-9-]+\\)?" ; for ARG-xxx, ARG-n + "\\>") ; end of word + (help-default-arg-highlight arg) + doc t t 1))))) (defun help-highlight-arguments (usage doc &rest args) (when usage @@ -720,7 +718,7 @@ (dotimes (i 95) (let ((elt (aref docs i))) (when elt - (insert (+ i ?\ ) ": " elt "\n")))) + (insert (+ i ?\s) ": " elt "\n")))) (while (setq table (char-table-parent table)) (insert "\nThe parent category table is:") (describe-vector table 'help-describe-category-set))))))))
--- a/lisp/image.el Sat Sep 17 19:00:49 2005 +0000 +++ b/lisp/image.el Sat Sep 17 19:10:55 2005 +0000 @@ -49,6 +49,14 @@ with one argument, a string containing the image data. If PREDICATE returns a non-nil value, TYPE is the image's type.") +(defvar image-load-path + (list (file-name-as-directory (expand-file-name "images" data-directory)) + data-directory 'load-path) + "List of locations in which to search for image files. +If an element is a string, it defines a directory to search in. +If an element is a variable symbol, the value of that variable is +used as a list of directories to search.") + (defun image-jpeg-p (data) "Value is non-nil if DATA, a string, consists of JFIF image data. We accept the tag Exif because that is the same format." @@ -269,6 +277,20 @@ (delete-overlay overlay))) (setq overlays (cdr overlays))))) +(defun image-search-load-path (file path) + (let (found pathname) + (while (and (not found) (consp path)) + (cond + ((stringp (car path)) + (setq found + (file-readable-p + (setq pathname (expand-file-name file (car path)))))) + ((and (symbolp (car path)) (boundp (car path))) + (if (setq pathname (image-search-load-path + file (symbol-value (car path)))) + (setq found t)))) + (setq path (cdr path))) + (if found pathname))) ;;;###autoload (defun find-image (specs) @@ -286,7 +308,7 @@ specification to be returned. Return nil if no specification is satisfied. -The image is looked for first on `load-path' and then in `data-directory'." +The image is looked for in `image-load-path'." (let (image) (while (and specs (null image)) (let* ((spec (car specs)) @@ -296,20 +318,11 @@ found) (when (image-type-available-p type) (cond ((stringp file) - (let ((path load-path)) - (while (and (not found) path) - (let ((try-file (expand-file-name file (car path)))) - (when (file-readable-p try-file) - (setq found try-file))) - (setq path (cdr path))) - (unless found - (let ((try-file (expand-file-name file data-directory))) - (if (file-readable-p try-file) - (setq found try-file)))) - (if found - (setq image - (cons 'image (plist-put (copy-sequence spec) - :file found)))))) + (if (setq found (image-search-load-path + file image-load-path)) + (setq image + (cons 'image (plist-put (copy-sequence spec) + :file found))))) ((not (null data)) (setq image (cons 'image spec))))) (setq specs (cdr specs))))
--- a/lisp/international/codepage.el Sat Sep 17 19:00:49 2005 +0000 +++ b/lisp/international/codepage.el Sat Sep 17 19:10:55 2005 +0000 @@ -44,6 +44,8 @@ ;;; Code: +(defvar dos-unsupported-char-glyph) + (defun cp-coding-system-for-codepage-1 (coding mnemonic iso-name decoder encoder) "Make coding system CODING for a DOS codepage using translation tables.
--- a/lisp/international/iso-insert.el Sat Sep 17 19:00:49 2005 +0000 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,632 +0,0 @@ -;;; iso-insert.el --- insert functions for ISO 8859/1 -*- coding: iso-8859-1;-*- - -;; Copyright (C) 1987, 1994, 2001 Free Software Foundation, Inc. - -;; Author: Howard Gayle -;; Maintainer: FSF -;; Keywords: i18n - -;; 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., 51 Franklin Street, Fifth Floor, -;; Boston, MA 02110-1301, USA. - -;;; Commentary: - -;; Provides keys for inserting ISO Latin-1 characters. They use the -;; prefix key C-x 8. Type C-x 8 C-h for a list. - -;;; Code: - -(defun insert-no-break-space () - (interactive "*") - (insert ?\ ) -) - -(defun insert-inverted-exclamation-mark () - (interactive "*") - (insert ?\¡) -) - -(defun insert-cent-sign () - (interactive "*") - (insert ?\¢) -) - -(defun insert-pound-sign () - (interactive "*") - (insert ?\£) -) - -(defun insert-general-currency-sign () - (interactive "*") - (insert ?\¤) -) - -(defun insert-yen-sign () - (interactive "*") - (insert ?\¥) -) - -(defun insert-broken-vertical-line () - (interactive "*") - (insert ?\¦) -) - -(defun insert-section-sign () - (interactive "*") - (insert ?\§) -) - -(defun insert-diaeresis () - (interactive "*") - (insert ?\¨) -) - -(defun insert-copyright-sign () - (interactive "*") - (insert ?\©) -) - -(defun insert-ordinal-indicator-feminine () - (interactive "*") - (insert ?\ª) -) - -(defun insert-angle-quotation-mark-left () - (interactive "*") - (insert ?\«) -) - -(defun insert-not-sign () - (interactive "*") - (insert ?\¬) -) - -(defun insert-soft-hyphen () - (interactive "*") - (insert ?\) -) - -(defun insert-registered-sign () - (interactive "*") - (insert ?\®) -) - -(defun insert-macron () - (interactive "*") - (insert ?\¯) -) - -(defun insert-degree-sign () - (interactive "*") - (insert ?\°) -) - -(defun insert-plus-or-minus-sign () - (interactive "*") - (insert ?\±) -) - -(defun insert-superscript-two () - (interactive "*") - (insert ?\²) -) - -(defun insert-superscript-three () - (interactive "*") - (insert ?\³) -) - -(defun insert-acute-accent () - (interactive "*") - (insert ?\´) -) - -(defun insert-micro-sign () - (interactive "*") - (insert ?\µ) -) - -(defun insert-pilcrow () - (interactive "*") - (insert ?\¶) -) - -(defun insert-middle-dot () - (interactive "*") - (insert ?\·) -) - -(defun insert-cedilla () - (interactive "*") - (insert ?\¸) -) - -(defun insert-superscript-one () - (interactive "*") - (insert ?\¹) -) - -(defun insert-ordinal-indicator-masculine () - (interactive "*") - (insert ?\º) -) - -(defun insert-angle-quotation-mark-right () - (interactive "*") - (insert ?\») -) - -(defun insert-fraction-one-quarter () - (interactive "*") - (insert ?\¼) -) - -(defun insert-fraction-one-half () - (interactive "*") - (insert ?\½) -) - -(defun insert-fraction-three-quarters () - (interactive "*") - (insert ?\¾) -) - -(defun insert-inverted-question-mark () - (interactive "*") - (insert ?\¿) -) - -(defun insert-A-grave () - (interactive "*") - (insert ?\À) -) - -(defun insert-A-acute () - (interactive "*") - (insert ?\Á) -) - -(defun insert-A-circumflex () - (interactive "*") - (insert ?\Â) -) - -(defun insert-A-tilde () - (interactive "*") - (insert ?\Ã) -) - -(defun insert-A-umlaut () - (interactive "*") - (insert ?\Ä) -) - -(defun insert-A-ring () - (interactive "*") - (insert ?\Å) -) - -(defun insert-AE () - (interactive "*") - (insert ?\Æ) -) - -(defun insert-C-cedilla () - (interactive "*") - (insert ?\Ç) -) - -(defun insert-E-grave () - (interactive "*") - (insert ?\È) -) - -(defun insert-E-acute () - (interactive "*") - (insert ?\É) -) - -(defun insert-E-circumflex () - (interactive "*") - (insert ?\Ê) -) - -(defun insert-E-umlaut () - (interactive "*") - (insert ?\Ë) -) - -(defun insert-I-grave () - (interactive "*") - (insert ?\Ì) -) - -(defun insert-I-acute () - (interactive "*") - (insert ?\Í) -) - -(defun insert-I-circumflex () - (interactive "*") - (insert ?\Î) -) - -(defun insert-I-umlaut () - (interactive "*") - (insert ?\Ï) -) - -(defun insert-D-stroke () - (interactive "*") - (insert ?\Ð) -) - -(defun insert-N-tilde () - (interactive "*") - (insert ?\Ñ) -) - -(defun insert-O-grave () - (interactive "*") - (insert ?\Ò) -) - -(defun insert-O-acute () - (interactive "*") - (insert ?\Ó) -) - -(defun insert-O-circumflex () - (interactive "*") - (insert ?\Ô) -) - -(defun insert-O-tilde () - (interactive "*") - (insert ?\Õ) -) - -(defun insert-O-umlaut () - (interactive "*") - (insert ?\Ö) -) - -(defun insert-multiplication-sign () - (interactive "*") - (insert ?\×) -) - -(defun insert-O-slash () - (interactive "*") - (insert ?\Ø) -) - -(defun insert-U-grave () - (interactive "*") - (insert ?\Ù) -) - -(defun insert-U-acute () - (interactive "*") - (insert ?\Ú) -) - -(defun insert-U-circumflex () - (interactive "*") - (insert ?\Û) -) - -(defun insert-U-umlaut () - (interactive "*") - (insert ?\Ü) -) - -(defun insert-Y-acute () - (interactive "*") - (insert ?\Ý) -) - -(defun insert-THORN () - (interactive "*") - (insert ?\Þ) -) - -(defun insert-ss () - (interactive "*") - (insert ?\ß) -) - -(defun insert-a-grave () - (interactive "*") - (insert ?\à) -) - -(defun insert-a-acute () - (interactive "*") - (insert ?\á) -) - -(defun insert-a-circumflex () - (interactive "*") - (insert ?\â) -) - -(defun insert-a-tilde () - (interactive "*") - (insert ?\ã) -) - -(defun insert-a-umlaut () - (interactive "*") - (insert ?\ä) -) - -(defun insert-a-ring () - (interactive "*") - (insert ?\å) -) - -(defun insert-ae () - (interactive "*") - (insert ?\æ) -) - -(defun insert-c-cedilla () - (interactive "*") - (insert ?\ç) -) - -(defun insert-e-grave () - (interactive "*") - (insert ?\è) -) - -(defun insert-e-acute () - (interactive "*") - (insert ?\é) -) - -(defun insert-e-circumflex () - (interactive "*") - (insert ?\ê) -) - -(defun insert-e-umlaut () - (interactive "*") - (insert ?\ë) -) - -(defun insert-i-grave () - (interactive "*") - (insert ?\ì) -) - -(defun insert-i-acute () - (interactive "*") - (insert ?\í) -) - -(defun insert-i-circumflex () - (interactive "*") - (insert ?\î) -) - -(defun insert-i-umlaut () - (interactive "*") - (insert ?\ï) -) - -(defun insert-d-stroke () - (interactive "*") - (insert ?\ð) -) - -(defun insert-n-tilde () - (interactive "*") - (insert ?\ñ) -) - -(defun insert-o-grave () - (interactive "*") - (insert ?\ò) -) - -(defun insert-o-acute () - (interactive "*") - (insert ?\ó) -) - -(defun insert-o-circumflex () - (interactive "*") - (insert ?\ô) -) - -(defun insert-o-tilde () - (interactive "*") - (insert ?\õ) -) - -(defun insert-o-umlaut () - (interactive "*") - (insert ?\ö) -) - -(defun insert-division-sign () - (interactive "*") - (insert ?\÷) -) - -(defun insert-o-slash () - (interactive "*") - (insert ?\ø) -) - -(defun insert-u-grave () - (interactive "*") - (insert ?\ù) -) - -(defun insert-u-acute () - (interactive "*") - (insert ?\ú) -) - -(defun insert-u-circumflex () - (interactive "*") - (insert ?\û) -) - -(defun insert-u-umlaut () - (interactive "*") - (insert ?\ü) -) - -(defun insert-y-acute () - (interactive "*") - (insert ?\ý) -) - -(defun insert-thorn () - (interactive "*") - (insert ?\þ) -) - -(defun insert-y-umlaut () - (interactive "*") - (insert ?\ÿ) -) - -(defvar 8859-1-map nil "Keymap for ISO 8859/1 character insertion.") -(if 8859-1-map nil - (setq 8859-1-map (make-keymap)) - (define-key 8859-1-map " " 'insert-no-break-space) - (define-key 8859-1-map "!" 'insert-inverted-exclamation-mark) - (define-key 8859-1-map "\"" (make-sparse-keymap)) - (define-key 8859-1-map "\"\"" 'insert-diaeresis) - (define-key 8859-1-map "\"A" 'insert-A-umlaut) - (define-key 8859-1-map "\"E" 'insert-E-umlaut) - (define-key 8859-1-map "\"I" 'insert-I-umlaut) - (define-key 8859-1-map "\"O" 'insert-O-umlaut) - (define-key 8859-1-map "\"U" 'insert-U-umlaut) - (define-key 8859-1-map "\"a" 'insert-a-umlaut) - (define-key 8859-1-map "\"e" 'insert-e-umlaut) - (define-key 8859-1-map "\"i" 'insert-i-umlaut) - (define-key 8859-1-map "\"o" 'insert-o-umlaut) - (define-key 8859-1-map "\"u" 'insert-u-umlaut) - (define-key 8859-1-map "\"y" 'insert-y-umlaut) - (define-key 8859-1-map "'" (make-sparse-keymap)) - (define-key 8859-1-map "''" 'insert-acute-accent) - (define-key 8859-1-map "'A" 'insert-A-acute) - (define-key 8859-1-map "'E" 'insert-E-acute) - (define-key 8859-1-map "'I" 'insert-I-acute) - (define-key 8859-1-map "'O" 'insert-O-acute) - (define-key 8859-1-map "'U" 'insert-U-acute) - (define-key 8859-1-map "'Y" 'insert-Y-acute) - (define-key 8859-1-map "'a" 'insert-a-acute) - (define-key 8859-1-map "'e" 'insert-e-acute) - (define-key 8859-1-map "'i" 'insert-i-acute) - (define-key 8859-1-map "'o" 'insert-o-acute) - (define-key 8859-1-map "'u" 'insert-u-acute) - (define-key 8859-1-map "'y" 'insert-y-acute) - (define-key 8859-1-map "$" 'insert-general-currency-sign) - (define-key 8859-1-map "+" 'insert-plus-or-minus-sign) - (define-key 8859-1-map "," (make-sparse-keymap)) - (define-key 8859-1-map ",," 'insert-cedilla) - (define-key 8859-1-map ",C" 'insert-C-cedilla) - (define-key 8859-1-map ",c" 'insert-c-cedilla) - (define-key 8859-1-map "-" 'insert-soft-hyphen) - (define-key 8859-1-map "." 'insert-middle-dot) - (define-key 8859-1-map "/" (make-sparse-keymap)) - (define-key 8859-1-map "//" 'insert-division-sign) - (define-key 8859-1-map "/O" 'insert-O-slash) - (define-key 8859-1-map "/o" 'insert-o-slash) - (define-key 8859-1-map "1" (make-sparse-keymap)) - (define-key 8859-1-map "1/" (make-sparse-keymap)) - (define-key 8859-1-map "1/2" 'insert-fraction-one-half) - (define-key 8859-1-map "1/4" 'insert-fraction-one-quarter) - (define-key 8859-1-map "3" (make-sparse-keymap)) - (define-key 8859-1-map "3/" (make-sparse-keymap)) - (define-key 8859-1-map "3/4" 'insert-fraction-three-quarters) - (define-key 8859-1-map "<" 'insert-angle-quotation-mark-left) - (define-key 8859-1-map "=" 'insert-macron) - (define-key 8859-1-map ">" 'insert-angle-quotation-mark-right) - (define-key 8859-1-map "?" 'insert-inverted-question-mark) - (define-key 8859-1-map "A" 'insert-A-ring) - (define-key 8859-1-map "E" 'insert-AE) - (define-key 8859-1-map "C" 'insert-copyright-sign) - (define-key 8859-1-map "D" 'insert-D-stroke) - (define-key 8859-1-map "L" 'insert-pound-sign) - (define-key 8859-1-map "P" 'insert-pilcrow) - (define-key 8859-1-map "R" 'insert-registered-sign) - (define-key 8859-1-map "S" 'insert-section-sign) - (define-key 8859-1-map "T" 'insert-THORN) - (define-key 8859-1-map "Y" 'insert-yen-sign) - (define-key 8859-1-map "^" (make-sparse-keymap)) - (define-key 8859-1-map "^1" 'insert-superscript-one) - (define-key 8859-1-map "^2" 'insert-superscript-two) - (define-key 8859-1-map "^3" 'insert-superscript-three) - (define-key 8859-1-map "^A" 'insert-A-circumflex) - (define-key 8859-1-map "^E" 'insert-E-circumflex) - (define-key 8859-1-map "^I" 'insert-I-circumflex) - (define-key 8859-1-map "^O" 'insert-O-circumflex) - (define-key 8859-1-map "^U" 'insert-U-circumflex) - (define-key 8859-1-map "^a" 'insert-a-circumflex) - (define-key 8859-1-map "^e" 'insert-e-circumflex) - (define-key 8859-1-map "^i" 'insert-i-circumflex) - (define-key 8859-1-map "^o" 'insert-o-circumflex) - (define-key 8859-1-map "^u" 'insert-u-circumflex) - (define-key 8859-1-map "_" (make-sparse-keymap)) - (define-key 8859-1-map "_a" 'insert-ordinal-indicator-feminine) - (define-key 8859-1-map "_o" 'insert-ordinal-indicator-masculine) - (define-key 8859-1-map "`" (make-sparse-keymap)) - (define-key 8859-1-map "`A" 'insert-A-grave) - (define-key 8859-1-map "`E" 'insert-E-grave) - (define-key 8859-1-map "`I" 'insert-I-grave) - (define-key 8859-1-map "`O" 'insert-O-grave) - (define-key 8859-1-map "`U" 'insert-U-grave) - (define-key 8859-1-map "`a" 'insert-a-grave) - (define-key 8859-1-map "`e" 'insert-e-grave) - (define-key 8859-1-map "`i" 'insert-i-grave) - (define-key 8859-1-map "`o" 'insert-o-grave) - (define-key 8859-1-map "`u" 'insert-u-grave) - (define-key 8859-1-map "a" 'insert-a-ring) - (define-key 8859-1-map "e" 'insert-ae) - (define-key 8859-1-map "c" 'insert-cent-sign) - (define-key 8859-1-map "d" 'insert-d-stroke) - (define-key 8859-1-map "o" 'insert-degree-sign) - (define-key 8859-1-map "s" 'insert-ss) - (define-key 8859-1-map "t" 'insert-thorn) - (define-key 8859-1-map "u" 'insert-micro-sign) - (define-key 8859-1-map "x" 'insert-multiplication-sign) - (define-key 8859-1-map "|" 'insert-broken-vertical-line) - (define-key 8859-1-map "~" (make-sparse-keymap)) - (define-key 8859-1-map "~A" 'insert-A-tilde) - (define-key 8859-1-map "~N" 'insert-N-tilde) - (define-key 8859-1-map "~O" 'insert-O-tilde) - (define-key 8859-1-map "~a" 'insert-a-tilde) - (define-key 8859-1-map "~n" 'insert-n-tilde) - (define-key 8859-1-map "~o" 'insert-o-tilde) - (define-key 8859-1-map "~~" 'insert-not-sign) - (if (not (lookup-key global-map "\C-x8")) - (define-key global-map "\C-x8" 8859-1-map)) -) -(defalias '8859-1-map 8859-1-map) - -(provide 'iso-insert) - -;;; arch-tag: eb5f97bd-a034-4851-92ff-ab1f1bf92814 -;;; iso-insert.el ends here
--- a/lisp/mail/sendmail.el Sat Sep 17 19:00:49 2005 +0000 +++ b/lisp/mail/sendmail.el Sat Sep 17 19:10:55 2005 +0000 @@ -1657,6 +1657,9 @@ (if (eq noerase 'new) (pop-to-buffer (generate-new-buffer "*mail*")) + (and noerase + (not (get-buffer "*mail*")) + (setq noerase nil)) (pop-to-buffer "*mail*")) ;; Avoid danger that the auto-save file can't be written. @@ -1673,8 +1676,8 @@ ;; (in case the user has actually visited a file *mail*). ; (set-visited-file-name nil) (let (initialized) - (and (or (not noerase) - (eq noerase 'new)) + (and (not (and noerase + (not (eq noerase 'new)))) (if buffer-file-name (if (buffer-modified-p) (when (y-or-n-p "Buffer has unsaved changes; reinitialize it and discard them? ")
--- a/lisp/mouse.el Sat Sep 17 19:00:49 2005 +0000 +++ b/lisp/mouse.el Sat Sep 17 19:10:55 2005 +0000 @@ -153,7 +153,7 @@ (defvar mouse-major-mode-menu-prefix) ; dynamically bound -(defun mouse-major-mode-menu (event prefix) +(defun mouse-major-mode-menu (event &optional prefix) "Pop up a mode-specific menu of mouse commands. Default to the Edit menu if the major mode doesn't define a menu." ;; Switch to the window clicked on, because otherwise @@ -173,8 +173,7 @@ ;; default to the edit menu. (newmap (if ancestor (make-sparse-keymap (concat mode-name " Mode")) - menu-bar-edit-menu)) - result) + menu-bar-edit-menu))) (if ancestor ;; Make our menu inherit from the desired keymap which we want ;; to display as the menu now.
--- a/lisp/net/ange-ftp.el Sat Sep 17 19:00:49 2005 +0000 +++ b/lisp/net/ange-ftp.el Sat Sep 17 19:10:55 2005 +0000 @@ -1641,81 +1641,75 @@ ;; on to ange-ftp-process-handle-line to deal with. (defun ange-ftp-process-filter (proc str) - (let ((buffer (process-buffer proc)) - (old-buffer (current-buffer))) - - ;; Eliminate nulls. - (while (string-match "\000+" str) - (setq str (replace-match "" nil nil str))) - - ;; see if the buffer is still around... it could have been deleted. - (if (buffer-name buffer) - (unwind-protect - (progn - (set-buffer (process-buffer proc)) - - ;; handle hash mark printing - (and ange-ftp-process-busy - (string-match "\\`#+\\'" str) - (setq str (ange-ftp-process-handle-hash str))) - (comint-output-filter proc str) - ;; Replace STR by the result of the comint processing. - (setq str (buffer-substring comint-last-output-start - (process-mark proc))) - (if ange-ftp-process-busy - (progn - (setq ange-ftp-process-string (concat ange-ftp-process-string - str)) - - ;; if we gave an empty password to the USER command earlier - ;; then we should send a null password now. - (if (string-match "Password: *$" ange-ftp-process-string) - (process-send-string proc "\n")))) - (while (and ange-ftp-process-busy - (string-match "\n" ange-ftp-process-string)) - (let ((line (substring ange-ftp-process-string - 0 - (match-beginning 0))) - (seen-prompt nil)) - (setq ange-ftp-process-string (substring ange-ftp-process-string - (match-end 0))) - (while (string-match "\\`ftp> *" line) - (setq seen-prompt t) - (setq line (substring line (match-end 0)))) - (if (not (and seen-prompt ange-ftp-pending-error-line)) - (ange-ftp-process-handle-line line proc) - ;; If we've seen a potential error message and it - ;; hasn't been cancelled by a good message before - ;; seeing a propt, then the error was real. - (delete-process proc) - (setq ange-ftp-process-busy nil - ange-ftp-process-result-line ange-ftp-pending-error-line)))) - - ;; has the ftp client finished? if so then do some clean-up - ;; actions. - (if (not ange-ftp-process-busy) - (progn - ;; reset the xfer size - (setq ange-ftp-xfer-size 0) - - ;; issue the "done" message since we've finished. - (if (and ange-ftp-process-msg - ange-ftp-process-verbose - ange-ftp-process-result) - (progn - (ange-ftp-message "%s...done" ange-ftp-process-msg) - (ange-ftp-repaint-minibuffer) - (setq ange-ftp-process-msg nil))) - - ;; is there a continuation we should be calling? if so, - ;; we'd better call it, making sure we only call it once. - (if ange-ftp-process-continue - (let ((cont ange-ftp-process-continue)) - (setq ange-ftp-process-continue nil) - (ange-ftp-call-cont cont - ange-ftp-process-result - ange-ftp-process-result-line)))))) - (set-buffer old-buffer))))) + ;; Eliminate nulls. + (while (string-match "\000+" str) + (setq str (replace-match "" nil nil str))) + + ;; see if the buffer is still around... it could have been deleted. + (when (buffer-live-p (process-buffer proc)) + (with-current-buffer (process-buffer proc) + + ;; handle hash mark printing + (and ange-ftp-process-busy + (string-match "^#+$" str) + (setq str (ange-ftp-process-handle-hash str))) + (comint-output-filter proc str) + ;; Replace STR by the result of the comint processing. + (setq str (buffer-substring comint-last-output-start + (process-mark proc))) + (if ange-ftp-process-busy + (progn + (setq ange-ftp-process-string (concat ange-ftp-process-string + str)) + + ;; if we gave an empty password to the USER command earlier + ;; then we should send a null password now. + (if (string-match "Password: *$" ange-ftp-process-string) + (process-send-string proc "\n")))) + (while (and ange-ftp-process-busy + (string-match "\n" ange-ftp-process-string)) + (let ((line (substring ange-ftp-process-string + 0 + (match-beginning 0))) + (seen-prompt nil)) + (setq ange-ftp-process-string (substring ange-ftp-process-string + (match-end 0))) + (while (string-match "\\`ftp> *" line) + (setq seen-prompt t) + (setq line (substring line (match-end 0)))) + (if (not (and seen-prompt ange-ftp-pending-error-line)) + (ange-ftp-process-handle-line line proc) + ;; If we've seen a potential error message and it + ;; hasn't been cancelled by a good message before + ;; seeing a propt, then the error was real. + (delete-process proc) + (setq ange-ftp-process-busy nil + ange-ftp-process-result-line ange-ftp-pending-error-line)))) + + ;; has the ftp client finished? if so then do some clean-up + ;; actions. + (if (not ange-ftp-process-busy) + (progn + ;; reset the xfer size + (setq ange-ftp-xfer-size 0) + + ;; issue the "done" message since we've finished. + (if (and ange-ftp-process-msg + ange-ftp-process-verbose + ange-ftp-process-result) + (progn + (ange-ftp-message "%s...done" ange-ftp-process-msg) + (ange-ftp-repaint-minibuffer) + (setq ange-ftp-process-msg nil))) + + ;; is there a continuation we should be calling? if so, + ;; we'd better call it, making sure we only call it once. + (if ange-ftp-process-continue + (let ((cont ange-ftp-process-continue)) + (setq ange-ftp-process-continue nil) + (ange-ftp-call-cont cont + ange-ftp-process-result + ange-ftp-process-result-line)))))))) (defun ange-ftp-process-sentinel (proc str) "When ftp process changes state, nuke all file-entries in cache." @@ -1795,8 +1789,7 @@ (defun ange-ftp-gwp-start (host user name args) "Login to the gateway machine and fire up an ftp process." - (let* ((gw-user (ange-ftp-get-user ange-ftp-gateway-host)) - ;; It would be nice to make process-connection-type nil, + (let* (;; It would be nice to make process-connection-type nil, ;; but that doesn't work: ftp never responds. ;; Can anyone find a fix for that? (proc (let ((process-connection-type t)) @@ -2137,7 +2130,6 @@ (save-excursion (set-buffer (process-buffer proc)) (let* ((status (ange-ftp-raw-send-cmd proc "hash")) - (result (car status)) (line (cdr status))) (save-match-data (if (string-match ange-ftp-hash-mark-msgs line) @@ -4484,8 +4476,7 @@ ;; `ange-ftp-ls' handles this. (defun ange-ftp-insert-directory (file switches &optional wildcard full) - (let ((short (ange-ftp-abbreviate-filename file)) - (parsed (ange-ftp-ftp-name (expand-file-name file))) + (let ((parsed (ange-ftp-ftp-name (expand-file-name file))) tem) (if parsed (if (and (not wildcard) @@ -4511,10 +4502,9 @@ (defun ange-ftp-file-name-sans-versions (file keep-backup-version) (let* ((short (ange-ftp-abbreviate-filename file)) (parsed (ange-ftp-ftp-name short)) - host-type func) + func) (if parsed - (setq host-type (ange-ftp-host-type (car parsed)) - func (cdr (assq (ange-ftp-host-type (car parsed)) + (setq func (cdr (assq (ange-ftp-host-type (car parsed)) ange-ftp-sans-version-alist)))) (if func (funcall func file keep-backup-version) (ange-ftp-real-file-name-sans-versions file keep-backup-version))))
--- a/lisp/net/newsticker.el Sat Sep 17 19:00:49 2005 +0000 +++ b/lisp/net/newsticker.el Sat Sep 17 19:10:55 2005 +0000 @@ -10,7 +10,7 @@ ;; Created: 17. June 2003 ;; Keywords: News, RSS ;; Time-stamp: "26. August 2005, 16:33:46 (ulf)" -;; CVS-Version: $Id: newsticker.el,v 1.2 2005/09/12 22:54:28 miles Exp $ +;; CVS-Version: $Id: newsticker.el,v 1.3 2005/09/13 08:47:44 lektu Exp $ (defconst newsticker-version "1.8" "Version number of newsticker.el.") @@ -86,7 +86,7 @@ ;; following. ;; (add-hook 'newsticker-mode-hook 'imenu-add-menubar-index) -;; That's it. +;; That's it. ;; Usage ;; ----- @@ -353,6 +353,11 @@ (require 'derived) (require 'xml) +;; Silence warnings +(defvar tool-bar-map) +(defvar w3-mode-map) +(defvar w3m-minor-mode-map) + ;; ====================================================================== ;;; Customizables ;; ====================================================================== @@ -967,7 +972,7 @@ :type 'boolean :set 'newsticker--set-customvar :group 'newsticker-ticker) - + (defcustom newsticker-hide-old-items-in-echo-area t "Decides whether to show only the newest news items in the ticker. @@ -2368,7 +2373,7 @@ (run-at-time newsticker-display-interval newsticker-display-interval 'newsticker--display-tick)))) - + (defun newsticker-stop () "Stop the newsticker and the newsticker-ticker. Cancel the timers for display and retrieval. Run `newsticker-stop-hook' @@ -2429,7 +2434,7 @@ ;; Emacs 21.3.50 does not care if we turn off auto-fill in the ;; definition of newsticker-mode, so we do it here (again) (auto-fill-mode -1) - + (set-buffer-file-coding-system 'utf-8) (if newsticker-use-full-width @@ -2521,7 +2526,7 @@ (w3m-remove-image pos (next-single-property-change pos 'w3m-image)) (w3m-toggle-inline-image t)))))))))))) - + ;; ====================================================================== ;;; keymap stuff ;; ====================================================================== @@ -2789,7 +2794,7 @@ (interactive) (newsticker--buffer-hideshow 'desc-old nil) (newsticker--buffer-redraw)) - + (defun newsticker-show-old-item-desc () "Show the description of old items." (interactive) @@ -2863,7 +2868,7 @@ "Hide description of entry at point." (interactive) (save-excursion - (let* (pos1 pos2 + (let* (pos1 pos2 (inhibit-read-only t) inv-prop org-inv-prop is-invisible) @@ -2890,7 +2895,7 @@ "Show description of entry at point." (interactive) (save-excursion - (let* (pos1 pos2 + (let* (pos1 pos2 (inhibit-read-only t) inv-prop org-inv-prop is-invisible) @@ -3049,7 +3054,7 @@ (set-process-coding-system proc 'no-conversion 'no-conversion) (set-process-sentinel proc 'newsticker--sentinel))))) - + (defun newsticker-mouse-browse-url (event) "Call `browse-url' for the link of the item at which the EVENT occurred." (interactive "e") @@ -3157,7 +3162,7 @@ (let ((start (match-beginning 0))) (unless (search-forward "-->" nil t) (error "Can't find end of comment")) - (delete-region start (point)))) + (delete-region start (point)))) ;; And another one (20050702)! If description is HTML ;; encoded and starts with a `<', wrap the whole ;; description in a CDATA expression. This happened for @@ -3324,7 +3329,7 @@ (guid (if (stringp tguid) tguid (car (xml-node-children tguid))))) - ;;(message "guid=%s" guid) + ;;(message "guid=%s" guid) (setq old-item (newsticker--cache-contains newsticker--cache name-symbol title @@ -3396,7 +3401,7 @@ (when (and imageurl (string-match "%l" newsticker-heading-format)) (newsticker--image-get name imageurl)))))) - + (defun newsticker--display-tick () "Called from the display timer. This function calls a display function, according to the variable @@ -3828,17 +3833,17 @@ feed-name-symbol))) items) (put-text-property pos (point) 'feed (car feed)) - + ;; insert empty line between feeds (let ((p (point))) (insert "\n") (put-text-property p (point) 'hard t))))) (append newsticker-url-list newsticker-url-list-defaults)) - + (newsticker--buffer-set-faces (point-min) (point-max)) (newsticker--buffer-set-invisibility (point-min) (point-max)) (goto-char (point-min))) - + (defun newsticker--buffer-insert-item (item &optional feed-name-symbol) "Insert a news item in the current buffer. Insert the string PREFIX and a formatted representation of the @@ -3889,7 +3894,7 @@ (setq format newsticker-item-format) (if (eq type 'feed) (setq format newsticker-heading-format))) - + (while (> (length format) 0) (let ((prefix (if (> (length format) 1) (substring format 0 2) @@ -3971,7 +3976,7 @@ ;; in case that the format string contained newlines (put-text-property p (point) 'hard t)) (setq format (substring format (match-beginning 2))))))) - + ;; decode HTML if possible... (let ((is-rendered-HTML nil)) (when (and newsticker-html-renderer pos-text-start pos-text-end) @@ -3990,8 +3995,6 @@ (save-excursion (funcall newsticker-html-renderer pos-text-start pos-text-end))) - ;; FIXME: compiler warning about free variable - ;; w3m-minor-mode-map (cond ((eq newsticker-html-renderer 'w3m-region) (add-text-properties pos (point-max) (list 'keymap @@ -4060,7 +4063,7 @@ (add-text-properties pos (point) (list 'nt-title (newsticker--title item) 'nt-desc (newsticker--desc item)))) - + (add-text-properties pos (point) (list 'nt-type type 'nt-face type @@ -4083,7 +4086,7 @@ ;; left margin ;;(unless (memq type '(feed item)) ;;(set-left-margin pos (1- (point)) 1)) - + ;; save rendered stuff (cond ((eq type 'desc) ;; preformatted contents @@ -4201,8 +4204,8 @@ (put-text-property (max (point-min) pos1) (1- pos2) 'invisible (list (intern - (concat - (symbol-name + (concat + (symbol-name (if (eq nt-type 'extra) 'desc nt-type)) "-" (symbol-name nt-age))) @@ -4218,8 +4221,8 @@ (put-text-property (1- pos1) (1- pos2) 'invisible (list (intern - (concat - (symbol-name + (concat + (symbol-name (if (eq nt-type 'extra) 'desc nt-type)) "-" (symbol-name nt-age))) @@ -4253,7 +4256,7 @@ 'newsticker-enclosure-face)))) (when face (put-text-property pos1 (max pos1 pos2) 'face face)))) - + (defun newsticker--insert-image (img string) "Insert IMG with STRING at point. This is a work-around for a strange behavior of Emacs versions before @@ -4528,7 +4531,7 @@ (newsticker--debug-msg "Item `%s' from %s has expired on %s" (newsticker--title item) - (format-time-string "%Y-%02m-%d, %H:%M" + (format-time-string "%Y-%02m-%d, %H:%M" (newsticker--time item)) (format-time-string "%Y-%02m-%d, %H:%M" exp-time)) (setcar (nthcdr 4 item) new-age))))) @@ -4746,7 +4749,7 @@ (setcdr feed-list (sort (cdr feed-list) sort-fun))) newsticker--cache))) - + (defun newsticker--cache-update (&optional save) "Update newsticker cache file. If optional argument SAVE is not nil the cache file is saved to disk." @@ -4832,7 +4835,7 @@ (list name url nil nil nil) t))) outlines)) (customize-variable 'newsticker-url-list)) - + ;; ====================================================================== ;;; Auto marking ;; ======================================================================
--- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/lisp/obsolete/iso-insert.el Sat Sep 17 19:10:55 2005 +0000 @@ -0,0 +1,632 @@ +;;; iso-insert.el --- insert functions for ISO 8859/1 -*- coding: iso-8859-1;-*- + +;; Copyright (C) 1987, 1994, 2001 Free Software Foundation, Inc. + +;; Author: Howard Gayle +;; Maintainer: FSF +;; Keywords: i18n + +;; 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., 51 Franklin Street, Fifth Floor, +;; Boston, MA 02110-1301, USA. + +;;; Commentary: + +;; Provides keys for inserting ISO Latin-1 characters. They use the +;; prefix key C-x 8. Type C-x 8 C-h for a list. + +;;; Code: + +(defun insert-no-break-space () + (interactive "*") + (insert ?\ ) +) + +(defun insert-inverted-exclamation-mark () + (interactive "*") + (insert ?\¡) +) + +(defun insert-cent-sign () + (interactive "*") + (insert ?\¢) +) + +(defun insert-pound-sign () + (interactive "*") + (insert ?\£) +) + +(defun insert-general-currency-sign () + (interactive "*") + (insert ?\¤) +) + +(defun insert-yen-sign () + (interactive "*") + (insert ?\¥) +) + +(defun insert-broken-vertical-line () + (interactive "*") + (insert ?\¦) +) + +(defun insert-section-sign () + (interactive "*") + (insert ?\§) +) + +(defun insert-diaeresis () + (interactive "*") + (insert ?\¨) +) + +(defun insert-copyright-sign () + (interactive "*") + (insert ?\©) +) + +(defun insert-ordinal-indicator-feminine () + (interactive "*") + (insert ?\ª) +) + +(defun insert-angle-quotation-mark-left () + (interactive "*") + (insert ?\«) +) + +(defun insert-not-sign () + (interactive "*") + (insert ?\¬) +) + +(defun insert-soft-hyphen () + (interactive "*") + (insert ?\) +) + +(defun insert-registered-sign () + (interactive "*") + (insert ?\®) +) + +(defun insert-macron () + (interactive "*") + (insert ?\¯) +) + +(defun insert-degree-sign () + (interactive "*") + (insert ?\°) +) + +(defun insert-plus-or-minus-sign () + (interactive "*") + (insert ?\±) +) + +(defun insert-superscript-two () + (interactive "*") + (insert ?\²) +) + +(defun insert-superscript-three () + (interactive "*") + (insert ?\³) +) + +(defun insert-acute-accent () + (interactive "*") + (insert ?\´) +) + +(defun insert-micro-sign () + (interactive "*") + (insert ?\µ) +) + +(defun insert-pilcrow () + (interactive "*") + (insert ?\¶) +) + +(defun insert-middle-dot () + (interactive "*") + (insert ?\·) +) + +(defun insert-cedilla () + (interactive "*") + (insert ?\¸) +) + +(defun insert-superscript-one () + (interactive "*") + (insert ?\¹) +) + +(defun insert-ordinal-indicator-masculine () + (interactive "*") + (insert ?\º) +) + +(defun insert-angle-quotation-mark-right () + (interactive "*") + (insert ?\») +) + +(defun insert-fraction-one-quarter () + (interactive "*") + (insert ?\¼) +) + +(defun insert-fraction-one-half () + (interactive "*") + (insert ?\½) +) + +(defun insert-fraction-three-quarters () + (interactive "*") + (insert ?\¾) +) + +(defun insert-inverted-question-mark () + (interactive "*") + (insert ?\¿) +) + +(defun insert-A-grave () + (interactive "*") + (insert ?\À) +) + +(defun insert-A-acute () + (interactive "*") + (insert ?\Á) +) + +(defun insert-A-circumflex () + (interactive "*") + (insert ?\Â) +) + +(defun insert-A-tilde () + (interactive "*") + (insert ?\Ã) +) + +(defun insert-A-umlaut () + (interactive "*") + (insert ?\Ä) +) + +(defun insert-A-ring () + (interactive "*") + (insert ?\Å) +) + +(defun insert-AE () + (interactive "*") + (insert ?\Æ) +) + +(defun insert-C-cedilla () + (interactive "*") + (insert ?\Ç) +) + +(defun insert-E-grave () + (interactive "*") + (insert ?\È) +) + +(defun insert-E-acute () + (interactive "*") + (insert ?\É) +) + +(defun insert-E-circumflex () + (interactive "*") + (insert ?\Ê) +) + +(defun insert-E-umlaut () + (interactive "*") + (insert ?\Ë) +) + +(defun insert-I-grave () + (interactive "*") + (insert ?\Ì) +) + +(defun insert-I-acute () + (interactive "*") + (insert ?\Í) +) + +(defun insert-I-circumflex () + (interactive "*") + (insert ?\Î) +) + +(defun insert-I-umlaut () + (interactive "*") + (insert ?\Ï) +) + +(defun insert-D-stroke () + (interactive "*") + (insert ?\Ð) +) + +(defun insert-N-tilde () + (interactive "*") + (insert ?\Ñ) +) + +(defun insert-O-grave () + (interactive "*") + (insert ?\Ò) +) + +(defun insert-O-acute () + (interactive "*") + (insert ?\Ó) +) + +(defun insert-O-circumflex () + (interactive "*") + (insert ?\Ô) +) + +(defun insert-O-tilde () + (interactive "*") + (insert ?\Õ) +) + +(defun insert-O-umlaut () + (interactive "*") + (insert ?\Ö) +) + +(defun insert-multiplication-sign () + (interactive "*") + (insert ?\×) +) + +(defun insert-O-slash () + (interactive "*") + (insert ?\Ø) +) + +(defun insert-U-grave () + (interactive "*") + (insert ?\Ù) +) + +(defun insert-U-acute () + (interactive "*") + (insert ?\Ú) +) + +(defun insert-U-circumflex () + (interactive "*") + (insert ?\Û) +) + +(defun insert-U-umlaut () + (interactive "*") + (insert ?\Ü) +) + +(defun insert-Y-acute () + (interactive "*") + (insert ?\Ý) +) + +(defun insert-THORN () + (interactive "*") + (insert ?\Þ) +) + +(defun insert-ss () + (interactive "*") + (insert ?\ß) +) + +(defun insert-a-grave () + (interactive "*") + (insert ?\à) +) + +(defun insert-a-acute () + (interactive "*") + (insert ?\á) +) + +(defun insert-a-circumflex () + (interactive "*") + (insert ?\â) +) + +(defun insert-a-tilde () + (interactive "*") + (insert ?\ã) +) + +(defun insert-a-umlaut () + (interactive "*") + (insert ?\ä) +) + +(defun insert-a-ring () + (interactive "*") + (insert ?\å) +) + +(defun insert-ae () + (interactive "*") + (insert ?\æ) +) + +(defun insert-c-cedilla () + (interactive "*") + (insert ?\ç) +) + +(defun insert-e-grave () + (interactive "*") + (insert ?\è) +) + +(defun insert-e-acute () + (interactive "*") + (insert ?\é) +) + +(defun insert-e-circumflex () + (interactive "*") + (insert ?\ê) +) + +(defun insert-e-umlaut () + (interactive "*") + (insert ?\ë) +) + +(defun insert-i-grave () + (interactive "*") + (insert ?\ì) +) + +(defun insert-i-acute () + (interactive "*") + (insert ?\í) +) + +(defun insert-i-circumflex () + (interactive "*") + (insert ?\î) +) + +(defun insert-i-umlaut () + (interactive "*") + (insert ?\ï) +) + +(defun insert-d-stroke () + (interactive "*") + (insert ?\ð) +) + +(defun insert-n-tilde () + (interactive "*") + (insert ?\ñ) +) + +(defun insert-o-grave () + (interactive "*") + (insert ?\ò) +) + +(defun insert-o-acute () + (interactive "*") + (insert ?\ó) +) + +(defun insert-o-circumflex () + (interactive "*") + (insert ?\ô) +) + +(defun insert-o-tilde () + (interactive "*") + (insert ?\õ) +) + +(defun insert-o-umlaut () + (interactive "*") + (insert ?\ö) +) + +(defun insert-division-sign () + (interactive "*") + (insert ?\÷) +) + +(defun insert-o-slash () + (interactive "*") + (insert ?\ø) +) + +(defun insert-u-grave () + (interactive "*") + (insert ?\ù) +) + +(defun insert-u-acute () + (interactive "*") + (insert ?\ú) +) + +(defun insert-u-circumflex () + (interactive "*") + (insert ?\û) +) + +(defun insert-u-umlaut () + (interactive "*") + (insert ?\ü) +) + +(defun insert-y-acute () + (interactive "*") + (insert ?\ý) +) + +(defun insert-thorn () + (interactive "*") + (insert ?\þ) +) + +(defun insert-y-umlaut () + (interactive "*") + (insert ?\ÿ) +) + +(defvar 8859-1-map nil "Keymap for ISO 8859/1 character insertion.") +(if 8859-1-map nil + (setq 8859-1-map (make-keymap)) + (define-key 8859-1-map " " 'insert-no-break-space) + (define-key 8859-1-map "!" 'insert-inverted-exclamation-mark) + (define-key 8859-1-map "\"" (make-sparse-keymap)) + (define-key 8859-1-map "\"\"" 'insert-diaeresis) + (define-key 8859-1-map "\"A" 'insert-A-umlaut) + (define-key 8859-1-map "\"E" 'insert-E-umlaut) + (define-key 8859-1-map "\"I" 'insert-I-umlaut) + (define-key 8859-1-map "\"O" 'insert-O-umlaut) + (define-key 8859-1-map "\"U" 'insert-U-umlaut) + (define-key 8859-1-map "\"a" 'insert-a-umlaut) + (define-key 8859-1-map "\"e" 'insert-e-umlaut) + (define-key 8859-1-map "\"i" 'insert-i-umlaut) + (define-key 8859-1-map "\"o" 'insert-o-umlaut) + (define-key 8859-1-map "\"u" 'insert-u-umlaut) + (define-key 8859-1-map "\"y" 'insert-y-umlaut) + (define-key 8859-1-map "'" (make-sparse-keymap)) + (define-key 8859-1-map "''" 'insert-acute-accent) + (define-key 8859-1-map "'A" 'insert-A-acute) + (define-key 8859-1-map "'E" 'insert-E-acute) + (define-key 8859-1-map "'I" 'insert-I-acute) + (define-key 8859-1-map "'O" 'insert-O-acute) + (define-key 8859-1-map "'U" 'insert-U-acute) + (define-key 8859-1-map "'Y" 'insert-Y-acute) + (define-key 8859-1-map "'a" 'insert-a-acute) + (define-key 8859-1-map "'e" 'insert-e-acute) + (define-key 8859-1-map "'i" 'insert-i-acute) + (define-key 8859-1-map "'o" 'insert-o-acute) + (define-key 8859-1-map "'u" 'insert-u-acute) + (define-key 8859-1-map "'y" 'insert-y-acute) + (define-key 8859-1-map "$" 'insert-general-currency-sign) + (define-key 8859-1-map "+" 'insert-plus-or-minus-sign) + (define-key 8859-1-map "," (make-sparse-keymap)) + (define-key 8859-1-map ",," 'insert-cedilla) + (define-key 8859-1-map ",C" 'insert-C-cedilla) + (define-key 8859-1-map ",c" 'insert-c-cedilla) + (define-key 8859-1-map "-" 'insert-soft-hyphen) + (define-key 8859-1-map "." 'insert-middle-dot) + (define-key 8859-1-map "/" (make-sparse-keymap)) + (define-key 8859-1-map "//" 'insert-division-sign) + (define-key 8859-1-map "/O" 'insert-O-slash) + (define-key 8859-1-map "/o" 'insert-o-slash) + (define-key 8859-1-map "1" (make-sparse-keymap)) + (define-key 8859-1-map "1/" (make-sparse-keymap)) + (define-key 8859-1-map "1/2" 'insert-fraction-one-half) + (define-key 8859-1-map "1/4" 'insert-fraction-one-quarter) + (define-key 8859-1-map "3" (make-sparse-keymap)) + (define-key 8859-1-map "3/" (make-sparse-keymap)) + (define-key 8859-1-map "3/4" 'insert-fraction-three-quarters) + (define-key 8859-1-map "<" 'insert-angle-quotation-mark-left) + (define-key 8859-1-map "=" 'insert-macron) + (define-key 8859-1-map ">" 'insert-angle-quotation-mark-right) + (define-key 8859-1-map "?" 'insert-inverted-question-mark) + (define-key 8859-1-map "A" 'insert-A-ring) + (define-key 8859-1-map "E" 'insert-AE) + (define-key 8859-1-map "C" 'insert-copyright-sign) + (define-key 8859-1-map "D" 'insert-D-stroke) + (define-key 8859-1-map "L" 'insert-pound-sign) + (define-key 8859-1-map "P" 'insert-pilcrow) + (define-key 8859-1-map "R" 'insert-registered-sign) + (define-key 8859-1-map "S" 'insert-section-sign) + (define-key 8859-1-map "T" 'insert-THORN) + (define-key 8859-1-map "Y" 'insert-yen-sign) + (define-key 8859-1-map "^" (make-sparse-keymap)) + (define-key 8859-1-map "^1" 'insert-superscript-one) + (define-key 8859-1-map "^2" 'insert-superscript-two) + (define-key 8859-1-map "^3" 'insert-superscript-three) + (define-key 8859-1-map "^A" 'insert-A-circumflex) + (define-key 8859-1-map "^E" 'insert-E-circumflex) + (define-key 8859-1-map "^I" 'insert-I-circumflex) + (define-key 8859-1-map "^O" 'insert-O-circumflex) + (define-key 8859-1-map "^U" 'insert-U-circumflex) + (define-key 8859-1-map "^a" 'insert-a-circumflex) + (define-key 8859-1-map "^e" 'insert-e-circumflex) + (define-key 8859-1-map "^i" 'insert-i-circumflex) + (define-key 8859-1-map "^o" 'insert-o-circumflex) + (define-key 8859-1-map "^u" 'insert-u-circumflex) + (define-key 8859-1-map "_" (make-sparse-keymap)) + (define-key 8859-1-map "_a" 'insert-ordinal-indicator-feminine) + (define-key 8859-1-map "_o" 'insert-ordinal-indicator-masculine) + (define-key 8859-1-map "`" (make-sparse-keymap)) + (define-key 8859-1-map "`A" 'insert-A-grave) + (define-key 8859-1-map "`E" 'insert-E-grave) + (define-key 8859-1-map "`I" 'insert-I-grave) + (define-key 8859-1-map "`O" 'insert-O-grave) + (define-key 8859-1-map "`U" 'insert-U-grave) + (define-key 8859-1-map "`a" 'insert-a-grave) + (define-key 8859-1-map "`e" 'insert-e-grave) + (define-key 8859-1-map "`i" 'insert-i-grave) + (define-key 8859-1-map "`o" 'insert-o-grave) + (define-key 8859-1-map "`u" 'insert-u-grave) + (define-key 8859-1-map "a" 'insert-a-ring) + (define-key 8859-1-map "e" 'insert-ae) + (define-key 8859-1-map "c" 'insert-cent-sign) + (define-key 8859-1-map "d" 'insert-d-stroke) + (define-key 8859-1-map "o" 'insert-degree-sign) + (define-key 8859-1-map "s" 'insert-ss) + (define-key 8859-1-map "t" 'insert-thorn) + (define-key 8859-1-map "u" 'insert-micro-sign) + (define-key 8859-1-map "x" 'insert-multiplication-sign) + (define-key 8859-1-map "|" 'insert-broken-vertical-line) + (define-key 8859-1-map "~" (make-sparse-keymap)) + (define-key 8859-1-map "~A" 'insert-A-tilde) + (define-key 8859-1-map "~N" 'insert-N-tilde) + (define-key 8859-1-map "~O" 'insert-O-tilde) + (define-key 8859-1-map "~a" 'insert-a-tilde) + (define-key 8859-1-map "~n" 'insert-n-tilde) + (define-key 8859-1-map "~o" 'insert-o-tilde) + (define-key 8859-1-map "~~" 'insert-not-sign) + (if (not (lookup-key global-map "\C-x8")) + (define-key global-map "\C-x8" 8859-1-map)) +) +(defalias '8859-1-map 8859-1-map) + +(provide 'iso-insert) + +;;; arch-tag: eb5f97bd-a034-4851-92ff-ab1f1bf92814 +;;; iso-insert.el ends here
--- a/lisp/pcvs-defs.el Sat Sep 17 19:00:49 2005 +0000 +++ b/lisp/pcvs-defs.el Sat Sep 17 19:10:55 2005 +0000 @@ -38,11 +38,14 @@ "*Name or full path of the cvs executable.") (defvar cvs-version + ;; With the divergence of the CVSNT codebase and version numbers, this is + ;; not really good any more. (ignore-errors (with-temp-buffer (call-process cvs-program nil t nil "-v") (goto-char (point-min)) - (when (re-search-forward "(CVS) \\([0-9]+\\)\\.\\([0-9]+\\)" nil t) + (when (re-search-forward "(CVS\\(NT\\)?) \\([0-9]+\\)\\.\\([0-9]+\\)" + nil t) (cons (string-to-number (match-string 1)) (string-to-number (match-string 2)))))) "*Version of `cvs' installed on your system. @@ -490,8 +493,11 @@ ;; cvs-1.10 and above can take file arguments in other directories ;; while others need to be executed once per directory (defvar cvs-execute-single-dir - (if (and (consp cvs-version) - (or (>= (cdr cvs-version) 10) (> (car cvs-version) 1))) + (if (or (null cvs-version) + (or (>= (cdr cvs-version) 10) (> (car cvs-version) 1))) + ;; Supposedly some recent versions of CVS output some directory info + ;; as they recurse downthe tree, but it's not good enough in the case + ;; where we run "cvs status foo bar/foo". '("status") t) "Whether cvs commands should be executed a directory at a time. @@ -506,7 +512,7 @@ a case the sanity check made by pcl-cvs fails and you will have to manually set this variable to t (until the cvs server is upgraded). When the above problem occurs, pcl-cvs should (hopefully) catch cvs' error -message and replace it with a message tell you to change this variable.") +message and replace it with a message telling you to change this variable.") ;; (provide 'pcvs-defs)
--- a/lisp/progmodes/hideshow.el Sat Sep 17 19:00:49 2005 +0000 +++ b/lisp/progmodes/hideshow.el Sat Sep 17 19:10:55 2005 +0000 @@ -1,12 +1,12 @@ ;;; hideshow.el --- minor mode cmds to selectively display code/comment blocks ;; Copyright (C) 1994, 1995, 1996, 1997, 1998, 1999, 2000, 2001, 2002, 2003 -;; 2004, 2005 Free Software Foundation +;; 2004, 2005 Free Software Foundation, Inc. ;; Author: Thien-Thi Nguyen <ttn@gnu.org> ;; Dan Nicolaescu <dann@ics.uci.edu> ;; Keywords: C C++ java lisp tools editing comments blocks hiding outlines -;; Maintainer-Version: 5.58.2.4 +;; Maintainer-Version: 5.65.2.2 ;; Time-of-Day-Author-Most-Likely-to-be-Recalcitrant: early morning ;; This file is part of GNU Emacs. @@ -208,11 +208,11 @@ ;; Thanks go to the following people for valuable ideas, code and ;; bug reports. ;; -;; Dean Andrews, Alf-Ivar Holm, Holger Bauer, Christoph Conrad, Dave -;; Love, Dirk Herrmann, Gael Marziou, Jan Djarv, Guillaume Leray, -;; Moody Ahmad, Preston F. Crow, Lars Lindberg, Reto Zimmermann, -;; Keith Sheffield, Chew Meng Kuan, Tony Lam, Pete Ware, François -;; Pinard, Stefan Monnier, Joseph Eydelnant, Michael Ernst +;; Dean Andrews, Alf-Ivar Holm, Holger Bauer, Christoph Conrad, Dave Love, +;; Dirk Herrmann, Gael Marziou, Jan Djarv, Guillaume Leray, Moody Ahmad, +;; Preston F. Crow, Lars Lindberg, Reto Zimmermann, Keith Sheffield, +;; Chew Meng Kuan, Tony Lam, Pete Ware, François Pinard, Stefan Monnier, +;; Joseph Eydelnant, Michael Ernst, Peter Heslin ;; ;; Special thanks go to Dan Nicolaescu, who reimplemented hideshow using ;; overlays (rather than selective display), added isearch magic, folded @@ -243,7 +243,6 @@ :prefix "hs-" :group 'languages) -;;;###autoload (defcustom hs-hide-comments-when-hiding-all t "*Hide the comments too when you do an `hs-hide-all'." :type 'boolean @@ -307,6 +306,11 @@ (defvar hs-hide-all-non-comment-function nil "*Function called if non-nil when doing `hs-hide-all' for non-comments.") +(defvar hs-allow-nesting nil + "*If non-nil, hiding remembers internal blocks. +This means that when the outer block is shown again, any +previously hidden internal blocks remain hidden.") + (defvar hs-hide-hook nil "*Hook called (with `run-hooks') at the end of commands to hide text. These commands include the toggling commands (when the result is to hide @@ -412,12 +416,19 @@ ;; support functions (defun hs-discard-overlays (from to) - "Delete hideshow overlays in region defined by FROM and TO." + "Delete hideshow overlays in region defined by FROM and TO. +Skip \"internal\" overlays if `hs-allow-nesting' is non-nil." (when (< to from) (setq from (prog1 to (setq to from)))) - (dolist (ov (overlays-in from to)) - (when (overlay-get ov 'hs) - (delete-overlay ov)))) + (if hs-allow-nesting + (let (ov) + (while (> to (setq from (next-overlay-change from))) + (when (setq ov (hs-overlay-at from)) + (setq from (overlay-end ov)) + (delete-overlay ov)))) + (dolist (ov (overlays-in from to)) + (when (overlay-get ov 'hs) + (delete-overlay ov))))) (defun hs-make-overlay (b e kind &optional b-offset e-offset) "Return a new overlay in region defined by B and E with type KIND. @@ -532,19 +543,16 @@ ;; `q' is the point at the end of the block (progn (hs-forward-sexp mdata 1) (end-of-line) - (point)))) + (point))) + ov) (when (and (< p (point)) (> (count-lines p q) 1)) - (hs-discard-overlays p q) + (cond ((and hs-allow-nesting (setq ov (hs-overlay-at p))) + (delete-overlay ov)) + ((not hs-allow-nesting) + (hs-discard-overlays p q))) (hs-make-overlay p q 'code (- pure-p p))) (goto-char (if end q (min p pure-p))))))) -(defun hs-safety-is-job-n () - "Warn if `buffer-invisibility-spec' does not contain symbol `hs'." - (unless (and (listp buffer-invisibility-spec) - (assq 'hs buffer-invisibility-spec)) - (message "Warning: `buffer-invisibility-spec' does not contain hs!!") - (sit-for 2))) - (defun hs-inside-comment-p () "Return non-nil if point is inside a comment, otherwise nil. Actually, return a list containing the buffer position of the start @@ -587,7 +595,8 @@ (while (and (< (point) q) (> (point) p) (not (looking-at hs-c-start-regexp))) - (setq p (point)) ;; use this to avoid an infinite cycle + ;; avoid an infinite cycle + (setq p (point)) (forward-comment 1) (skip-chars-forward " \t\n\f")) (when (or (not (looking-at hs-c-start-regexp)) @@ -657,7 +666,8 @@ (setq minp (1+ (point))) (funcall hs-forward-sexp-func 1) (setq maxp (1- (point)))) - (hs-discard-overlays minp maxp) ; eliminate weirdness + (unless hs-allow-nesting + (hs-discard-overlays minp maxp)) (goto-char minp) (while (progn (forward-comment (buffer-size)) @@ -667,7 +677,6 @@ (hs-hide-level-recursive (1- arg) minp maxp) (goto-char (match-beginning hs-block-start-mdata-select)) (hs-hide-block-at-point t))) - (hs-safety-is-job-n) (goto-char maxp)) (defmacro hs-life-goes-on (&rest body) @@ -681,6 +690,15 @@ (put 'hs-life-goes-on 'edebug-form-spec '(&rest form)) +(defun hs-overlay-at (position) + "Return hideshow overlay at POSITION, or nil if none to be found." + (let ((overlays (overlays-at position)) + ov found) + (while (and (not found) (setq ov (car overlays))) + (setq found (and (overlay-get ov 'hs) ov) + overlays (cdr overlays))) + found)) + (defun hs-already-hidden-p () "Return non-nil if point is in an already-hidden block, otherwise nil." (save-excursion @@ -694,12 +712,7 @@ ;; point is inside a block (goto-char (match-end 0))))) (end-of-line) - (let ((overlays (overlays-at (point))) - (found nil)) - (while (and (not found) (overlayp (car overlays))) - (setq found (overlay-get (car overlays) 'hs) - overlays (cdr overlays))) - found))) + (hs-overlay-at (point)))) (defun hs-c-like-adjust-block-beginning (initial) "Adjust INITIAL, the buffer position after `hs-block-start-regexp'. @@ -723,7 +736,8 @@ (hs-life-goes-on (message "Hiding all blocks ...") (save-excursion - (hs-discard-overlays (point-min) (point-max)) ; eliminate weirdness + (unless hs-allow-nesting + (hs-discard-overlays (point-min) (point-max))) (goto-char (point-min)) (let ((count 0) (re (concat "\\(" @@ -746,13 +760,12 @@ (funcall hs-hide-all-non-comment-function) (hs-hide-block-at-point t))) ;; found a comment, probably - (let ((c-reg (hs-inside-comment-p))) ; blech! + (let ((c-reg (hs-inside-comment-p))) (when (and c-reg (car c-reg)) (if (> (count-lines (car c-reg) (nth 1 c-reg)) 1) (hs-hide-block-at-point t c-reg) (goto-char (nth 1 c-reg)))))) - (message "Hiding ... %d" (setq count (1+ count))))) - (hs-safety-is-job-n)) + (message "Hiding ... %d" (setq count (1+ count)))))) (beginning-of-line) (message "Hiding all blocks ... done") (run-hooks 'hs-hide-hook))) @@ -762,7 +775,8 @@ (interactive) (hs-life-goes-on (message "Showing all blocks ...") - (hs-discard-overlays (point-min) (point-max)) + (let ((hs-allow-nesting nil)) + (hs-discard-overlays (point-min) (point-max))) (message "Showing all blocks ... done") (run-hooks 'hs-show-hook))) @@ -781,7 +795,6 @@ (looking-at hs-block-start-regexp) (hs-find-block-beginning)) (hs-hide-block-at-point end c-reg) - (hs-safety-is-job-n) (run-hooks 'hs-hide-hook)))))) (defun hs-show-block (&optional end) @@ -793,17 +806,15 @@ (hs-life-goes-on (or ;; first see if we have something at the end of the line - (catch 'eol-begins-hidden-region-p - (let ((here (point))) - (dolist (ov (save-excursion (end-of-line) (overlays-at (point)))) - (when (overlay-get ov 'hs) - (goto-char - (cond (end (overlay-end ov)) - ((eq 'comment (overlay-get ov 'hs)) here) - (t (+ (overlay-start ov) (overlay-get ov 'hs-b-offset))))) - (delete-overlay ov) - (throw 'eol-begins-hidden-region-p t))) - nil)) + (let ((ov (hs-overlay-at (save-excursion (end-of-line) (point)))) + (here (point))) + (when ov + (goto-char + (cond (end (overlay-end ov)) + ((eq 'comment (overlay-get ov 'hs)) here) + (t (+ (overlay-start ov) (overlay-get ov 'hs-b-offset))))) + (delete-overlay ov) + t)) ;; not immediately obvious, look for a suitable block (let ((c-reg (hs-inside-comment-p)) p q) @@ -812,13 +823,13 @@ (setq p (car c-reg) q (cadr c-reg)))) ((and (hs-find-block-beginning) - (looking-at hs-block-start-regexp)) ; fresh match-data, ugh + ;; ugh, fresh match-data + (looking-at hs-block-start-regexp)) (setq p (point) q (progn (hs-forward-sexp (hs-match-data t) 1) (point))))) (when (and p q) (hs-discard-overlays p q) (goto-char (if end q (1+ p))))) - (hs-safety-is-job-n) (run-hooks 'hs-show-hook)))) (defun hs-hide-level (arg) @@ -830,7 +841,6 @@ (message "Hiding blocks ...") (hs-hide-level-recursive arg (point-min) (point-max)) (message "Hiding blocks ... done")) - (hs-safety-is-job-n) (run-hooks 'hs-hide-hook))) (defun hs-toggle-hiding ()
--- a/lisp/progmodes/vhdl-mode.el Sat Sep 17 19:00:49 2005 +0000 +++ b/lisp/progmodes/vhdl-mode.el Sat Sep 17 19:10:55 2005 +0000 @@ -134,12 +134,15 @@ "Non-nil if GNU Emacs 22, ... is used.") (defvar compilation-file-regexp-alist) +(defvar conf-alist) +(defvar conf-entry) +(defvar conf-key) +(defvar ent-alist) (defvar itimer-version) (defvar lazy-lock-defer-contextually) (defvar lazy-lock-defer-on-scrolling) (defvar lazy-lock-defer-on-the-fly) - ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; ;;; Variables ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; @@ -363,7 +366,7 @@ Case adjustment : adjust case of inserted unit names \(*) The regular expression must match the error message starting from the - beginning of the line (but not necessarily to the end of the line). + beginning of the line (but not necessarily to the end of the line). Compile options allows insertion of the library name (see `vhdl-project-alist') in order to set the compilers library option (e.g. \"vcom -work my_lib\"). @@ -1059,7 +1062,7 @@ <cursor> elsif <clock>'event and <clock> = '1' then -- rising clock edge if <enable> = '1' then -- synchronous load - + end if; end if; end process <label>;" @@ -1328,7 +1331,7 @@ WaveGen_Proc: process begin -- insert signal assignments here - + wait until Clk = '1'; end process WaveGen_Proc; " @@ -4403,16 +4406,16 @@ outputs from this component -> output port created - signals that are inputs to AND outputs from subcomponents are considered as internal connections -> internal signal created - + Purpose: With appropriate naming conventions it is possible to create higher design levels with only a few mouse clicks or key strokes. A new design level can be created by simply generating a new component, placing the required subcomponents from the hierarchy browser, and wiring everything automatically. - + Note: Automatic wiring only works reliably on templates of new components and component instantiations that were created by VHDL mode. - + Component declarations can be placed in a components package (option `vhdl-use-components-package') which can be automatically generated for an entire directory or project (`C-c C-c M-p'). The VHDL'93 direct @@ -4434,7 +4437,7 @@ | Note: Configurations of subcomponents (i.e. hierarchical configuration | declarations) are currently not considered when displaying | configurations in speedbar. - + See the options group `vhdl-compose' for all relevant user options. @@ -15291,7 +15294,7 @@ (defface vhdl-speedbar-architecture-face '((((min-colors 88) (class color) (background light)) (:foreground "Blue1")) (((class color) (background light)) (:foreground "Blue")) - + (((class color) (background dark)) (:foreground "LightSkyBlue"))) "Face used for displaying architecture names." :group 'speedbar-faces)
--- a/lisp/recentf.el Sat Sep 17 19:00:49 2005 +0000 +++ b/lisp/recentf.el Sat Sep 17 19:10:55 2005 +0000 @@ -74,6 +74,15 @@ :group 'recentf :type 'file) +(defcustom recentf-save-file-modes 384 ;; 0600 + "Mode bits of recentf save file, as an integer, or nil. +If non-nil, after writing `recentf-save-file', set its mode bits to +this value. By default give R/W access only to the user who owns that +file. See also the function `set-file-modes'." + :group 'recentf + :type '(choice (const :tag "Don't change" nil) + integer)) + (defcustom recentf-exclude nil "*List of regexps and predicates for filenames excluded from the recent list. When a filename matches any of the regexps or satisfies any of the @@ -257,7 +266,7 @@ If it returns nil, the filename is left unchanged." :group 'recentf :type '(choice (const :tag "None" nil) - (const abbreviate-file-name) + (const abbreviate-file-name) function)) (defcustom recentf-show-file-shortcuts-flag t @@ -1206,6 +1215,8 @@ (format ";;; coding: %s\n" recentf-save-file-coding-system) ";;; End:\n") (write-file (expand-file-name recentf-save-file)) + (when recentf-save-file-modes + (set-file-modes recentf-save-file recentf-save-file-modes)) nil) (error (warn "recentf mode: %s" (error-message-string error)))))
--- a/lisp/textmodes/reftex-vars.el Sat Sep 17 19:00:49 2005 +0000 +++ b/lisp/textmodes/reftex-vars.el Sat Sep 17 19:10:55 2005 +0000 @@ -29,6 +29,7 @@ (eval-when-compile (require 'cl)) (eval-and-compile + (defvar reftex-tables-dirty) (defun reftex-set-dirty (symbol value) (setq reftex-tables-dirty t) (set symbol value))) @@ -101,22 +102,22 @@ ("enumerate" ?i "item:" "~\\ref{%s}" item (regexp "items?" "Punkte?")) - + ("equation" ?e "eq:" "~(\\ref{%s})" t (regexp "equations?" "eqs?\\." "eqn\\." "Gleichung\\(en\\)?" "Gl\\.")) ("eqnarray" ?e "eq:" nil eqnarray-like) - + ("figure" ?f "fig:" "~\\ref{%s}" caption (regexp "figure?[sn]?" "figs?\\." "Abbildung\\(en\\)?" "Abb\\.")) ("figure*" ?f nil nil caption) - + ("table" ?t "tab:" "~\\ref{%s}" caption (regexp "tables?" "tab\\." "Tabellen?")) ("table*" ?t nil nil caption) - + ("\\footnote[]{}" ?n "fn:" "~\\ref{%s}" 2 (regexp "footnotes?" "Fussnoten?")) - + ("any" ?\ " " "~\\ref{%s}" nil) ;; The label macro is hard coded, but it *could* be defined like this: @@ -208,7 +209,7 @@ `?t' should point to a textual citation (citation as a noun). `?p' should point to a parenthetical citation.") -(defconst reftex-index-macros-builtin +(defconst reftex-index-macros-builtin '((default "Default \\index and \\glossary macros" (("\\index{*}" "idx" ?i "" nil t) ("\\glossary{*}" "glo" ?g "" nil t))) @@ -220,7 +221,7 @@ (Index-Shortcut "index.sty with \\shortindexingon" (("\\index[]{*}" 1 ?i "" nil t) ("\\index*[]{*}" 1 ?I "" nil nil) - ("^[]{*}" 1 ?^ "" texmathp t) + ("^[]{*}" 1 ?^ "" texmathp t) ("_[]{*}" 1 ?_ "" texmathp nil)))) "Builtin stuff for reftex-index-macros. Lower-case symbols correspond to a style file of the same name in the LaTeX @@ -232,7 +233,7 @@ (defgroup reftex nil "LaTeX label and citation support." :tag "RefTeX" - :link '(url-link :tag "Home Page" + :link '(url-link :tag "Home Page" "http://zon.astro.uva.nl/~dominik/Tools/") :link '(emacs-commentary-link :tag "Commentary in reftex.el" "reftex.el") :link '(custom-manual "(reftex)Top") @@ -327,14 +328,14 @@ automatic recentering is turned on. When the frame gets destroyed, automatic recentering is turned off again. -This feature can be turned on and off from the menu +This feature can be turned on and off from the menu \(Ref->Options)." :group 'reftex-table-of-contents-browser :type '(choice (const :tag "never" nil) (const :tag "always" t) (const :tag "in dedicated frame only" frame))) - + (defcustom reftex-toc-split-windows-horizontally nil "*Non-nil means, create TOC window by splitting window horizontally." :group 'reftex-table-of-contents-browser @@ -426,7 +427,7 @@ '(amsmath endnotes fancybox floatfig longtable picinpar rotating sidecap subfigure supertab wrapfig LaTeX) "Default label alist specifications. LaTeX should always be the last entry. -The value of this variable is a list of symbols with associations in the +The value of this variable is a list of symbols with associations in the constant `reftex-label-alist-builtin'. Check that constant for a full list of options." :group 'reftex-defining-label-environments @@ -625,7 +626,7 @@ (defcustom reftex-section-prefixes '((0 . "part:") (1 . "cha:") (t . "sec:")) "Prefixes for section labels. When the label prefix given in an entry in `reftex-label-alist' contains `%S', -this list is used to determine the correct prefix string depending on the +this list is used to determine the correct prefix string depending on the current section level. The list is an alist, with each entry of the form (KEY . PREFIX) Possible keys are sectioning macro names like `chapter', section levels @@ -687,7 +688,7 @@ (regexp) (repeat :tag "List" (string :tag "prefix (with colon)")))) - + (defcustom reftex-special-environment-functions nil "List of functions to be called when trying to figure out current environment. These are special functions to detect \"environments\" which do not @@ -733,7 +734,7 @@ (let ((pos (point)) p1) (save-excursion ;; Search for any of the linguex item macros at the beginning of a line - (if (re-search-backward + (if (re-search-backward \"^[ \\t]*\\\\(\\\\\\\\\\\\(ex\\\\|a\\\\|b\\\\|c\\\\|d\\\\|e\\\\|f\\\\)g?\\\\.\\\\)\" bound t) (progn (setq p1 (match-beginning 1)) @@ -743,7 +744,7 @@ nil ;; OK, we got it (cons \"linguex\" p1))) - ;; Return nil for not found + ;; Return nil for not found nil)))) 3. Tell RefTeX to use this function @@ -942,7 +943,7 @@ (defcustom reftex-vref-is-default nil "*Non-nil means, the varioref macro \\vref is used as default. -In the selection buffer, the `v' key toggles the reference macro between +In the selection buffer, the `v' key toggles the reference macro between `\\ref' and `\\vref'. The value of this variable determines the default which is active when entering the selection process. Instead of nil or t, this may also be a string of type letters indicating @@ -952,7 +953,7 @@ (defcustom reftex-fref-is-default nil "*Non-nil means, the fancyref macro \\fref is used as default. -In the selection buffer, the `V' key toggles the reference macro between +In the selection buffer, the `V' key toggles the reference macro between `\\ref', `\\fref' and `\\Fref'. The value of this variable determines the default which is active when entering the selection process. Instead of nil or t, this may also be a string of type letters indicating @@ -976,7 +977,7 @@ (defcustom reftex-format-ref-function nil "Function which produces the string to insert as a reference. -Normally should be nil, because the format to insert a reference can +Normally should be nil, because the format to insert a reference can already be specified in `reftex-label-alist'. This hook also is used by the special commands to insert `\\vref' and `\\fref' references, so even if you set this, your setting will be ignored by @@ -1057,13 +1058,13 @@ %i institution %j journal %k key %m month %n number %o organization %p pages %P first page %r address %s school %u publisher %t title -%v volume %y year +%v volume %y year %B booktitle, abbreviated %T title, abbreviated Usually, only %l is needed. The other stuff is mainly for the echo area display, and for (setq reftex-comment-citations t). -%< as a special operator kills punctuation and space around it after the +%< as a special operator kills punctuation and space around it after the string has been formatted. A pair of square brackets indicates an optional argument, and RefTeX @@ -1078,7 +1079,7 @@ strings. In order to configure this variable, you can either set `reftex-cite-format' directly yourself or set it to the SYMBOL of one of -the predefined styles. The predefined symbols are those which have an +the predefined styles. The predefined symbols are those which have an association in the constant `reftex-cite-format-builtin'. E.g.: (setq reftex-cite-format 'natbib)" :group 'reftex-citation-support @@ -1172,7 +1173,7 @@ (defcustom reftex-format-cite-function nil "Function which produces the string to insert as a citation. -Normally should be nil, because the format to insert a reference can +Normally should be nil, because the format to insert a reference can already be specified in `reftex-cite-format'. The function will be called with two arguments, the CITATION KEY and the DEFAULT FORMAT, which is taken from `reftex-cite-format'. The function @@ -1255,7 +1256,7 @@ :group 'reftex-index-support :set 'reftex-set-dirty :type `(list - (repeat + (repeat :inline t (list :value ("" "idx" ?a "" nil) (string :tag "Macro with args") @@ -1282,7 +1283,7 @@ This is a list with (MACRO-KEY DEFAULT-TAG). MACRO-KEY: Character identifying an index macro - see `reftex-index-macros'. -DEFAULT-TAG: This is the tag to be used if the macro requires a TAG argument. +DEFAULT-TAG: This is the tag to be used if the macro requires a TAG argument. When this is nil and a TAG is needed, RefTeX will ask for it. When this is the empty string and the TAG argument of the index macro is optional, the TAG argument will be omitted." @@ -1423,7 +1424,7 @@ (defcustom reftex-index-include-context nil "*Non-nil means, display the index definition context in the index buffer. -This flag may also be toggled from the index buffer with the `c' key." +This flag may also be toggled from the index buffer with the `c' key." :group 'reftex-index-support :type 'boolean) @@ -1446,7 +1447,7 @@ argument of a macro. Note that crossref viewing for citations, references (both ways) and index entries is hard-coded. This variable is only to configure additional structures for which crossreference -viewing can be useful. Each entry has the structure +viewing can be useful. Each entry has the structure \(MACRO-RE SEARCH-RE HIGHLIGHT). @@ -1467,7 +1468,7 @@ displayed, the echo area will display information about that cross reference. You can also set the variable to the symbol `window'. In this case a small temporary window is used for the display. -This feature can be turned on and off from the menu +This feature can be turned on and off from the menu \(Ref->Options)." :group 'reftex-viewing-cross-references :type '(choice (const :tag "off" nil) @@ -1513,7 +1514,7 @@ - If an element is the name of an environment variable, its content is used. - If an element starts with an exclamation mark, it is used as a command to retrieve the path. A typical command with the kpathsearch library would - be `!kpsewhich -show-path=.tex'. + be `!kpsewhich -show-path=.tex'. - Otherwise the element itself is interpreted as a path. Multiple directories can be separated by the system dependent `path-separator'. Directories ending in `//' or `!!' will be expanded recursively. @@ -1528,7 +1529,7 @@ - If an element is the name of an environment variable, its content is used. - If an element starts with an exclamation mark, it is used as a command to retrieve the path. A typical command with the kpathsearch library would - be `!kpsewhich -show-path=.bib'. + be `!kpsewhich -show-path=.bib'. - Otherwise the element itself is interpreted as a path. Multiple directories can be separated by the system dependent `path-separator'. Directories ending in `//' or `!!' will be expanded recursively. @@ -1573,7 +1574,7 @@ TEXINPUTS and BIBINPUTS to find TeX files and BibTeX database files. With this option turned on, it calls an external program specified in the option `reftex-external-file-finders' instead. As a side effect, -the variables `reftex-texpath-environment-variables' and +the variables `reftex-texpath-environment-variables' and `reftex-bibpath-environment-variables' will be ignored." :group 'reftex-finding-files :type 'boolean) @@ -1664,7 +1665,7 @@ (defcustom reftex-save-parse-info nil "*Non-nil means, save information gathered with parsing in a file. The file MASTER.rel in the same directory as MASTER.tex is used to save the -information. When this variable is t, +information. When this variable is t, - accessing the parsing information for the first time in an editing session will read that file (if available) instead of parsing the document. - exiting Emacs or killing a buffer in reftex-mode will cause a new version @@ -1857,7 +1858,7 @@ may require a restart of Emacs in order to become effective." :group 'reftex-miscellaneous-configurations :group 'LaTeX - :type '(choice + :type '(choice (const :tag "No plug-ins" nil) (const :tag "All possible plug-ins" t) (list
--- a/lisp/url/ChangeLog Sat Sep 17 19:00:49 2005 +0000 +++ b/lisp/url/ChangeLog Sat Sep 17 19:10:55 2005 +0000 @@ -1,3 +1,13 @@ +2005-09-15 Chong Yidong <cyd@stupidchicken.com> + + * url-mailto.el (url-mailto): Delete mail buffer after sending + autogenerated mail. + Call `compose-mail with `new' argument if possible. + +2005-09-13 Chong Yidong <cyd@stupidchicken.com> + + * url-mailto.el (url-mailto): Always use a new mail buffer. + 2005-09-01 Chong Yidong <cyd@stupidchicken.com> * url-util.el (url-parse-query-string): New optional argument
--- a/lisp/url/url-mailto.el Sat Sep 17 19:00:49 2005 +0000 +++ b/lisp/url/url-mailto.el Sat Sep 17 19:10:55 2005 +0000 @@ -92,7 +92,11 @@ (setq args (cons (list "to" to) args)))) (setq subject (cdr-safe (assoc "subject" args))) - (if (fboundp url-mail-command) (funcall url-mail-command) (mail)) + (if (fboundp url-mail-command) + (if (eq url-mail-command 'compose-mail) + (compose-mail nil nil nil 'new) + (funcall url-mail-command)) + (mail 'new)) (while args (if (string= (caar args) "body") (progn @@ -124,12 +128,14 @@ ;; It seems Microsoft-ish to send without warning. ;; Fixme: presumably this should depend on a privacy setting. (if (y-or-n-p "Send this auto-generated mail? ") - (cond ((eq url-mail-command 'compose-mail) - (funcall (get mail-user-agent 'sendfunc) nil)) - ;; otherwise, we can't be sure - ((fboundp 'message-send-and-exit) - (message-send-and-exit)) - (t (mail-send-and-exit nil))))) + (let ((buffer (current-buffer))) + (cond ((eq url-mail-command 'compose-mail) + (funcall (get mail-user-agent 'sendfunc) nil)) + ;; otherwise, we can't be sure + ((fboundp 'message-send-and-exit) + (message-send-and-exit)) + (t (mail-send-and-exit nil))) + (kill-buffer buffer)))) nil)) (provide 'url-mailto)
--- a/lispref/ChangeLog Sat Sep 17 19:00:49 2005 +0000 +++ b/lispref/ChangeLog Sat Sep 17 19:10:55 2005 +0000 @@ -1,3 +1,18 @@ +2005-09-15 Chong Yidong <cyd@stupidchicken.com> + + * display.texi (Defining Images): Document `image-load-path'. + +2005-09-15 Richard M. Stallman <rms@gnu.org> + + * objects.texi (Printed Representation): Minor cleanup. + (Box Diagrams): Minor fix. + (Cons Cell Type): Move (...) index item here. + (Box Diagrams): From here. + (Array Type): Minor fix. + (Type Predicates): Delete index "predicates". + (Hash Table Type): Clarify xref. + (Dotted Pair Notation): Minor fix. + 2005-09-10 Chong Yidong <cyd@stupidchicken.com> * files.texi (Saving Buffers): Fix typo.
--- a/lispref/display.texi Sat Sep 17 19:00:49 2005 +0000 +++ b/lispref/display.texi Sat Sep 17 19:10:55 2005 +0000 @@ -3946,10 +3946,29 @@ @var{file} exists, is used to construct the image specification to be returned. If no specification is satisfied, @code{nil} is returned. -The image is looked for first on @code{load-path} and then in -@code{data-directory}. +The image is looked for in @code{image-load-path}. @end defun +@defvar image-load-path +@tindex image-load-path +This variable's value is a list of locations in which to search for +image files. If an element is a string, it is taken to be the name of +a directory to search. If an element is a variable symbol, the value +of that variable is used as a list of directories to search. + +The default is to search in @file{@code{data-directory}/images}, then +in @code{data-directory}, and finally in the directories specified by +@code{load-path}. Subdirectories are not automatically included in +the search, so if you put an image file in a subdirectory, you have to +supply the subdirectory name explicitly. For example, if you put an +image file @file{bar.xpm} in @file{@code{data-directory}/images/foo/}, +you should define the image as: + +@example + (defimage foo-image '((:type xpm :file "foo/bar.xpm"))) +@end example +@end defvar + @node Showing Images @subsection Showing Images
--- a/lispref/objects.texi Sat Sep 17 19:00:49 2005 +0000 +++ b/lispref/objects.texi Sat Sep 17 19:10:55 2005 +0000 @@ -78,10 +78,10 @@ In most cases, an object's printed representation is also a read syntax for the object. However, some types have no read syntax, since it does not make sense to enter objects of these types as constants in -a Lisp program. These objects are printed in @dfn{hash notation}: the -characters @samp{#<} followed by a descriptive string (typically the -type name followed by the name of the object), and closed with a -matching @samp{>}. For example: +a Lisp program. These objects are printed in @dfn{hash notation}, +which consists of the characters @samp{#<}, a descriptive string +(typically the type name followed by the name of the object), and a +closing @samp{>}. For example: @example (current-buffer) @@ -621,6 +621,7 @@ @dfn{atoms}. @cindex parenthesis +@cindex @samp{(@dots{})} in lists The read syntax and printed representation for lists are identical, and consist of a left parenthesis, an arbitrary number of elements, and a right parenthesis. Here are examples of lists: @@ -706,7 +707,6 @@ @end group @end smallexample -@cindex @samp{(@dots{})} in lists @cindex @code{nil} in lists @cindex empty list A list with no elements in it is the @dfn{empty list}; it is identical @@ -749,7 +749,7 @@ @end group @end example - The same list represented in the first box notation looks like this: + The same list represented in the second box notation looks like this: @example @group @@ -776,7 +776,7 @@ @dfn{Dotted pair notation} is a general syntax for cons cells that represents the @sc{car} and @sc{cdr} explicitly. In this syntax, @code{(@var{a} .@: @var{b})} stands for a cons cell whose @sc{car} is -the object @var{a}, and whose @sc{cdr} is the object @var{b}. Dotted +the object @var{a} and whose @sc{cdr} is the object @var{b}. Dotted pair notation is more general than list syntax because the @sc{cdr} does not have to be a list. However, it is more cumbersome in cases where list syntax would work. In dotted pair notation, the list @@ -913,9 +913,9 @@ type of array has its own read syntax; see the following sections for details. - The array type is contained in the sequence type and -contains the string type, the vector type, the bool-vector type, and the -char-table type. + The array type is a subset of the sequence type, and contains the +string type, the vector type, the bool-vector type, and the char-table +type. @node String Type @subsection String Type @@ -1166,8 +1166,8 @@ A hash table is a very fast kind of lookup table, somewhat like an alist in that it maps keys to corresponding values, but much faster. -Hash tables have no read syntax, and -print using hash notation. @xref{Hash Tables}. +Hash tables have no read syntax, and print using hash notation. +@xref{Hash Tables}, for functions that operate on hash tables. @example (make-hash-table) @@ -1607,7 +1607,6 @@ @node Type Predicates @section Type Predicates -@cindex predicates @cindex type checking @kindex wrong-type-argument @@ -1942,6 +1941,7 @@ @end group @end example +@cindex equality of strings Comparison of strings is case-sensitive, but does not take account of text properties---it compares only the characters in the strings. For technical reasons, a unibyte string and a multibyte string are
--- a/man/ChangeLog Sat Sep 17 19:00:49 2005 +0000 +++ b/man/ChangeLog Sat Sep 17 19:10:55 2005 +0000 @@ -1,3 +1,25 @@ +2005-09-15 Richard M. Stallman <rms@gnu.org> + + * buffers.texi (List Buffers): Fix xref. + + * rmail.texi (Rmail Basics): Fix xref. + + * emacs.texi (Top): Update subnode menus. + + * files.texi (Saving Commands): New node, broken out of Saving. + (Customize Save): New node, broken out of Saving. + Clarify effect of write-region-inhibit-fsync. + (Misc File Ops): Say write-region-inhibit-fsync affects write-region. + + * newsticker.texi: Fix @setfilename. + + * Makefile.in (INFO_TARGETS, DVI_TARGETS): Add newsticker targets. + (../info/newsticker, newsticker.dvi): New targets. + +2005-09-14 Romain Francoise <romain@orebokech.com> + + * files.texi (Saving): Mention write-region-inhibit-fsync. + 2005-09-05 Chong Yidong <cyd@stupidchicken.com> * custom.texi (Custom Themes): New node.
--- a/man/Makefile.in Sat Sep 17 19:00:49 2005 +0000 +++ b/man/Makefile.in Sat Sep 17 19:10:55 2005 +0000 @@ -42,7 +42,7 @@ ../info/idlwave ../info/eudc ../info/ebrowse ../info/pcl-cvs \ ../info/woman ../info/eshell ../info/org ../info/url \ ../info/speedbar ../info/tramp ../info/ses ../info/smtpmail \ - ../info/flymake + ../info/flymake ../info/newsticker DVI_TARGETS = emacs.dvi calc.dvi cc-mode.dvi cl.dvi dired-x.dvi \ ediff.dvi forms.dvi gnus.dvi message.dvi emacs-mime.dvi \ gnus.dvi message.dvi sieve.dvi pgg.dvi mh-e.dvi \ @@ -50,7 +50,7 @@ ada-mode.dvi autotype.dvi idlwave.dvi eudc.dvi ebrowse.dvi \ pcl-cvs.dvi woman.dvi eshell.dvi org.dvi url.dvi \ speedbar.dvi tramp.dvi ses.dvi smtpmail.dvi flymake.dvi \ - emacs-xtra.dvi + newsticker.dvi emacs-xtra.dvi INFOSOURCES = info.texi # The following rule does not work with all versions of `make'. @@ -322,6 +322,11 @@ flymake.dvi: flymake.texi $(ENVADD) $(TEXI2DVI) ${srcdir}/flymake.texi +../info/newsticker: newsticker.texi + cd $(srcdir); $(MAKEINFO) newsticker.texi +newsticker.dvi: newsticker.texi + $(ENVADD) $(TEXI2DVI) ${srcdir}/newsticker.texi + mostlyclean: rm -f *.log *.cp *.fn *.ky *.pg *.vr core *.tp *.core gnustmp.*
--- a/man/buffers.texi Sat Sep 17 19:00:49 2005 +0000 +++ b/man/buffers.texi Sat Sep 17 19:10:55 2005 +0000 @@ -179,7 +179,7 @@ @samp{*} in the first field of a line indicates the buffer is ``modified.'' If several buffers are modified, it may be time to save some with @kbd{C-x s} -(@pxref{Saving}). @samp{%} indicates a read-only buffer. @samp{.} marks the +(@pxref{Save Commands}). @samp{%} indicates a read-only buffer. @samp{.} marks the current buffer. Here is an example of a buffer list:@refill @smallexample
--- a/man/emacs.texi Sat Sep 17 19:00:49 2005 +0000 +++ b/man/emacs.texi Sat Sep 17 19:10:55 2005 +0000 @@ -378,7 +378,9 @@ Saving Files +* Save Commands:: Commands for saving files. * Backup:: How Emacs saves the old version of your file. +* Customize Save:: Customizing the saving of files. * Interlocking:: How Emacs protects against simultaneous editing of one file by two users. * File Shadowing:: Copying files to "shadows" automatically.
--- a/man/files.texi Sat Sep 17 19:00:49 2005 +0000 +++ b/man/files.texi Sat Sep 17 19:10:55 2005 +0000 @@ -366,6 +366,21 @@ @dfn{Saving} a buffer in Emacs means writing its contents back into the file that was visited in the buffer. +@menu +* Save Commands:: Commands for saving files. +* Backup:: How Emacs saves the old version of your file. +* Customize Save:: Customizing the saving of files. +* Interlocking:: How Emacs protects against simultaneous editing + of one file by two users. +* Shadowing: File Shadowing. Copying files to "shadows" automatically. +* Time Stamps:: Emacs can update time stamps on saved files. +@end menu + +@node Save Commands +@subsection Commands for Saving Files + + These are the commands that relate to saving and writing files. + @table @kbd @item C-x C-s Save the current buffer in its visited file on disk (@code{save-buffer}). @@ -483,33 +498,6 @@ by simultaneous editing and requires your immediate attention. @xref{Interlocking,, Simultaneous Editing}. -@vindex require-final-newline - If the value of the variable @code{require-final-newline} is -@code{t}, Emacs silently puts a newline at the end of any file that -doesn't already end in one, every time a file is saved or written. If -the value is @code{visit}, Emacs adds a newline at the end of any file -that doesn't have one, just after it visits the file. (This marks the -buffer as modified, and you can undo it.) If the value is -@code{visit-save}, that means to add newlines both on visiting and on -saving. If the value is @code{nil}, Emacs leaves the end of the file -unchanged; if it's neither @code{nil} nor @code{t}, Emacs asks you -whether to add a newline. The default is @code{nil}. - -@vindex mode-require-final-newline - Many major modes are designed for specific kinds of files that are -always supposed to end in newlines. These major modes set the -variable @code{require-final-newline} according to -@code{mode-require-final-newline}. By setting the latter variable, -you can control how these modes handle final newlines. - -@menu -* Backup:: How Emacs saves the old version of your file. -* Interlocking:: How Emacs protects against simultaneous editing - of one file by two users. -* Shadowing: File Shadowing. Copying files to "shadows" automatically. -* Time Stamps:: Emacs can update time stamps on saved files. -@end menu - @node Backup @subsection Backup Files @cindex backup file @@ -716,6 +704,38 @@ any alternate names for the same file. This has nothing to do with Emacs---the version control system does it. +@node Customize Save +@subsection Customizing Saving of Files + +@vindex require-final-newline + If the value of the variable @code{require-final-newline} is +@code{t}, saving or writing a file silently puts a newline at the end +if there isn't already one there. If the value is @code{visit}, Emacs +adds a newline at the end of any file that doesn't have one, just +after it visits the file. (This marks the buffer as modified, and you +can undo it.) If the value is @code{visit-save}, that means to add +newlines both on visiting and on saving. If the value is @code{nil}, +Emacs leaves the end of the file unchanged; if it's neither @code{nil} +nor @code{t}, Emacs asks you whether to add a newline. The default is +@code{nil}. + +@vindex mode-require-final-newline + Many major modes are designed for specific kinds of files that are +always supposed to end in newlines. These major modes set the +variable @code{require-final-newline} according to +@code{mode-require-final-newline}. By setting the latter variable, +you can control how these modes handle final newlines. + +@vindex write-region-inhibit-fsync + When Emacs saves a file, it invokes the @code{fsync} system call to +force the data immediately out to disk. This is important for safety +if the system crashes or in case of power outage. However, it can be +disruptive on laptops using power saving, because it requires the disk +to spin up each time you save a file. Setting +@code{write-region-inhibit-fsync} to a non-@code{nil} value disables +this synchronization. Be careful---this means increased risk of data +loss. + @node Interlocking @subsection Protection against Simultaneous Editing @@ -2999,8 +3019,10 @@ @findex write-region @kbd{M-x write-region} is the inverse of @kbd{M-x insert-file}; it copies the contents of the region into the specified file. @kbd{M-x -append-to-file} adds the text of the region to the end of the specified -file. @xref{Accumulating Text}. +append-to-file} adds the text of the region to the end of the +specified file. @xref{Accumulating Text}. The variable +@code{write-region-inhibit-fsync} applies to these commands, as well +as saving files; see @ref{Customize Save}. @findex delete-file @cindex deletion (of files)
--- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/man/newsticker.texi Sat Sep 17 19:10:55 2005 +0000 @@ -0,0 +1,676 @@ +\input texinfo @c -*-texinfo-*- +@comment $Id: newsticker.texi,v 1.4 2005/09/15 12:32:57 rms Exp $ +@comment %**start of header +@setfilename ../info/newsticker +@set VERSION 1.8 +@set UPDATED ``$Id: newsticker.texi,v 1.4 2005/09/15 12:32:57 rms Exp $'' +@settitle Newsticker @value{VERSION} +@syncodeindex vr cp +@syncodeindex fn cp +@syncodeindex pg cp +@comment %**end of header + +@copying +This manual is for Newsticker (version @value{VERSION}, @value{UPDATED}). + +@noindent +Copyright @copyright{} 2004, 2005 Free Software Foundation, Inc. + +@quotation +Permission is granted to copy, distribute and/or modify this document +under the terms of the GNU Free Documentation License, Version 1.2 or +any later version published by the Free Software Foundation; with no +Invariant Sections, no Front-Cover Texts, and no Back-Cover Texts. A +copy of the license is included in the section entitled ``GNU Free +Documentation License''. +@end quotation +@end copying + +@dircategory Emacs +@direntry +* Newsticker: (newsticker). A Newsticker for Emacs. +@end direntry + +@titlepage +@title Newsticker -- a Newsticker for Emacs +@subtitle for version @value{VERSION}, @value{UPDATED} +@author Ulf Jasper +@author @email{ulf.jasper@@web.de} +@author @uref{http://de.geocities.com/ulf_jasper} +@page +@vskip 0pt plus 1filll +@insertcopying +@end titlepage + +@contents + +@ifnottex +@node Top +@top Newsticker + +@insertcopying +@end ifnottex + +@menu +* Overview:: +* Requirements:: +* Installation:: +* Usage:: +* Configuration:: +* Remarks:: +* GNU Free Documentation License:: +* Index:: +@end menu + +@node Overview +@chapter Overview + +Newsticker provides a newsticker for Emacs. A newsticker is a thing +that asynchronously retrieves headlines from a list of news sites, +prepares these headlines for reading, and allows for loading the +corresponding articles in a web browser. + +Headlines consist of a title and (possibly) a small description. They +are contained in RSS (RDF Site Summary) files. Newsticker should work +with all RSS files that follow the @uref{http://purl.org/rss/1.0/spec, +RDF Rich Site Summary 1.0} specification. It should also work with +version 2.0 as well as other/older/alternative rss formats (like +0.9<something> or such). In other words: Newsticker is a ``RSS +reader'' or ``RSS aggregator''. + +Newsticker provides several commands for reading headlines, navigating +through them, marking them as read/unread, hiding old headlines etc. +Headlines can be displayed as plain text or as rendered HTML. + +Headlines can be displayed in the echo area, either scrolling like +messages in a stock-quote ticker, or just changing. + +Newsticker allows for automatic processing of headlines by providing +hooks and (sample) functions for automatically downloading images and +enclosed files (as delivered by podcasts, e.g.). + +@ifhtml +Here are screen shots of the @uref{newsticker-1.7.png, version 1.7 +(current version)} and some older screen shots: +@uref{newsticker-1.6.png, version 1.6}, +@uref{newsticker-1.5.png, version 1.5}, +@uref{newsticker-1.4.png, version 1.4} +@uref{newsticker-1.3.png, version 1.3}, +@uref{newsticker-1.0.png, version 1.0}. +@end ifhtml + +@node Requirements +@chapter Requirements + +Newsticker can be used with +@uref{http://www.gnu.org/software/emacs/emacs.html, GNU Emacs} version +21.1 or later as well as @uref{http://www.xemacs.org, XEmacs}. It +requires an XML-parser (@file{xml.el}) which is part of GNU Emacs. If +you are using XEmacs you want to get the @file{net-utils} package +which contains @file{xml.el} for XEmacs. + +Newsticker requires a program which can retrieve files via http and +prints them to stdout. By default Newsticker will use +@uref{http://www.gnu.org/software/wget/wget.html, wget} for this task. + + +@node Installation +@chapter Installation + +Place Newsticker in a directory where Emacs can find it. Add the +following line to your Emacs startup file (@file{~/.emacs}). + +@example +(add-to-list 'load-path "/path/to/newsticker/") +(autoload 'newsticker-start "newsticker" "Emacs Newsticker" t) +(autoload 'newsticker-show-news "newsticker" "Emacs Newsticker" t) +@end example + +Newsticker-mode supports imenu. This allows for navigating with the +help of a menu. In order to use this feature you should also add the +following. + +@example +(add-hook 'newsticker-mode-hook 'imenu-add-menubar-index) +@end example + +That's it. + +@node Usage +@chapter Usage + +@findex newsticker-show-news +The command @command{newsticker-show-news} will display all available +headlines in a special buffer, called @samp{*newsticker*}. It will +also start the asynchronous download of headlines. The modeline in +the @samp{*newsticker*} buffer informs whenever new headlines have +arrived. Clicking mouse-button 2 or pressing RET in this buffer on a +headline will call @command{browse-url} to load the corresponding news +story in your favourite web browser. + +@findex newsticker-start-ticker +@findex newsticker-stop-ticker +The scrolling, or flashing of headlines in the echo area, can be +started with the command @command{newsticker-start-ticker}. It can be +stopped with @command{newsticker-stop-ticker}. + +@findex newsticker-start +@findex newsticker-stop +If you just want to start the periodic download of headlines use the +command @command{newsticker-start}. Calling @command{newsticker-stop} +will stop the periodic download, but will call +@command{newsticker-stop-ticker} as well. + +@node Configuration +@chapter Configuration + +All Newsticker options are customizable, i.e. they can be changed with +Emacs customization methods: Call the command +@command{customize-group} and enter @samp{newsticker} for the customization +group. + +All Newsticker options have reasonable default values, so that in most +cases it is not necessary to customize settings before starting Newsticker +for the first time. + +Newsticker options are organized in the following groups. + +@itemize + +@item +@command{newsticker-feed} contains options that define which news +feeds are retrieved and how this is done. + +@itemize +@item +@vindex newsticker-url-list +@command{newsticker-url-list} defines the list of headlines which are +retrieved. +@item +@vindex newsticker-retrieval-interval +@command{newsticker-retrieval-interval} defines how often headlines +are retrieved. +@end itemize + +@item +@command{newsticker-headline-processing} contains options that define +how the retrieved headlines are processed. + +@itemize +@item +@vindex newsticker-keep-obsolete-items +@command{newsticker-keep-obsolete-items} decides whether unread +headlines that have been removed from the feed are kept in the +Newsticker cache. +@end itemize + +@item +@command{newsticker-layout} contains options that define how the +buffer for reading RSS headlines is formatted. + +@itemize +@item +@vindex newsticker-heading-format +@command{newsticker-item-format} defines how the title of a headline +is formatted. +@end itemize + +@item +@command{newsticker-ticker} contains options that define how headlines +are shown in the echo area. + +@itemize +@item +@vindex newsticker-display-interval +@vindex newsticker-scroll-smoothly +@command{newsticker-display-interval} and +@command{newsticker-scroll-smoothly} define how headlines are shown in +the echo area. +@end itemize + +@item +@command{newsticker-hooks} contains options for hooking other Emacs +commands to newsticker functions. +@itemize +@item +@vindex newsticker-new-item-functions +@command{newsticker-new-item-functions} allows for automatic +processing of headlines. See `newsticker-download-images', and +`newsticker-download-enclosures' for sample functions. +@end itemize + +@item +@command{newsticker-miscellaneous} contains other Newsticker options. + +@end itemize + +Please have a look at the customization buffers for the complete list +of options. + +@node Remarks +@chapter Remarks + +This newsticker is designed do its job silently in the background +without disturbing you. However, it is probably impossible to prevent +such a tool from slightly attenuating your Editor's responsiveness +every once in a while. + +Byte-compiling newsticker.el is recommended. + + +@node GNU Free Documentation License +@chapter GNU Free Documentation License + +@verbatim + + GNU Free Documentation License + ============================== + + Version 1.2, November 2002 + Copyright (C) 2000,2001,2002 Free Software Foundation, Inc. + 59 Temple Place, Suite 330, Boston, MA 02111-1307, USA + + Everyone is permitted to copy and distribute verbatim copies + of this license document, but changing it is not allowed. + + 0. PREAMBLE + + The purpose of this License is to make a manual, textbook, or other + functional and useful document "free" in the sense of freedom: to + assure everyone the effective freedom to copy and redistribute it, + with or without modifying it, either commercially or + noncommercially. Secondarily, this License preserves for the + author and publisher a way to get credit for their work, while not + being considered responsible for modifications made by others. + + This License is a kind of "copyleft", which means that derivative + works of the document must themselves be free in the same sense. + It complements the GNU General Public License, which is a copyleft + license designed for free software. + + We have designed this License in order to use it for manuals for + free software, because free software needs free documentation: a + free program should come with manuals providing the same freedoms + that the software does. But this License is not limited to + software manuals; it can be used for any textual work, regardless + of subject matter or whether it is published as a printed book. + We recommend this License principally for works whose purpose is + instruction or reference. + + 1. APPLICABILITY AND DEFINITIONS + + This License applies to any manual or other work, in any medium, + that contains a notice placed by the copyright holder saying it + can be distributed under the terms of this License. Such a notice + grants a world-wide, royalty-free license, unlimited in duration, + to use that work under the conditions stated herein. The + "Document", below, refers to any such manual or work. Any member + of the public is a licensee, and is addressed as "you". You + accept the license if you copy, modify or distribute the work in a + way requiring permission under copyright law. + + A "Modified Version" of the Document means any work containing the + Document or a portion of it, either copied verbatim, or with + modifications and/or translated into another language. + + A "Secondary Section" is a named appendix or a front-matter section + of the Document that deals exclusively with the relationship of the + publishers or authors of the Document to the Document's overall + subject (or to related matters) and contains nothing that could + fall directly within that overall subject. (Thus, if the Document + is in part a textbook of mathematics, a Secondary Section may not + explain any mathematics.) The relationship could be a matter of + historical connection with the subject or with related matters, or + of legal, commercial, philosophical, ethical or political position + regarding them. + + The "Invariant Sections" are certain Secondary Sections whose + titles are designated, as being those of Invariant Sections, in + the notice that says that the Document is released under this + License. If a section does not fit the above definition of + Secondary then it is not allowed to be designated as Invariant. + The Document may contain zero Invariant Sections. If the Document + does not identify any Invariant Sections then there are none. + + The "Cover Texts" are certain short passages of text that are + listed, as Front-Cover Texts or Back-Cover Texts, in the notice + that says that the Document is released under this License. A + Front-Cover Text may be at most 5 words, and a Back-Cover Text may + be at most 25 words. + + A "Transparent" copy of the Document means a machine-readable copy, + represented in a format whose specification is available to the + general public, that is suitable for revising the document + straightforwardly with generic text editors or (for images + composed of pixels) generic paint programs or (for drawings) some + widely available drawing editor, and that is suitable for input to + text formatters or for automatic translation to a variety of + formats suitable for input to text formatters. A copy made in an + otherwise Transparent file format whose markup, or absence of + markup, has been arranged to thwart or discourage subsequent + modification by readers is not Transparent. An image format is + not Transparent if used for any substantial amount of text. A + copy that is not "Transparent" is called "Opaque". + + Examples of suitable formats for Transparent copies include plain + ASCII without markup, Texinfo input format, LaTeX input format, + SGML or XML using a publicly available DTD, and + standard-conforming simple HTML, PostScript or PDF designed for + human modification. Examples of transparent image formats include + PNG, XCF and JPG. Opaque formats include proprietary formats that + can be read and edited only by proprietary word processors, SGML or + XML for which the DTD and/or processing tools are not generally + available, and the machine-generated HTML, PostScript or PDF + produced by some word processors for output purposes only. + + The "Title Page" means, for a printed book, the title page itself, + plus such following pages as are needed to hold, legibly, the + material this License requires to appear in the title page. For + works in formats which do not have any title page as such, "Title + Page" means the text near the most prominent appearance of the + work's title, preceding the beginning of the body of the text. + + A section "Entitled XYZ" means a named subunit of the Document + whose title either is precisely XYZ or contains XYZ in parentheses + following text that translates XYZ in another language. (Here XYZ + stands for a specific section name mentioned below, such as + "Acknowledgements", "Dedications", "Endorsements", or "History".) + To "Preserve the Title" of such a section when you modify the + Document means that it remains a section "Entitled XYZ" according + to this definition. + + The Document may include Warranty Disclaimers next to the notice + which states that this License applies to the Document. These + Warranty Disclaimers are considered to be included by reference in + this License, but only as regards disclaiming warranties: any other + implication that these Warranty Disclaimers may have is void and + has no effect on the meaning of this License. + + 2. VERBATIM COPYING + + You may copy and distribute the Document in any medium, either + commercially or noncommercially, provided that this License, the + copyright notices, and the license notice saying this License + applies to the Document are reproduced in all copies, and that you + add no other conditions whatsoever to those of this License. You + may not use technical measures to obstruct or control the reading + or further copying of the copies you make or distribute. However, + you may accept compensation in exchange for copies. If you + distribute a large enough number of copies you must also follow + the conditions in section 3. + + You may also lend copies, under the same conditions stated above, + and you may publicly display copies. + + 3. COPYING IN QUANTITY + + If you publish printed copies (or copies in media that commonly + have printed covers) of the Document, numbering more than 100, and + the Document's license notice requires Cover Texts, you must + enclose the copies in covers that carry, clearly and legibly, all + these Cover Texts: Front-Cover Texts on the front cover, and + Back-Cover Texts on the back cover. Both covers must also clearly + and legibly identify you as the publisher of these copies. The + front cover must present the full title with all words of the + title equally prominent and visible. You may add other material + on the covers in addition. Copying with changes limited to the + covers, as long as they preserve the title of the Document and + satisfy these conditions, can be treated as verbatim copying in + other respects. + + If the required texts for either cover are too voluminous to fit + legibly, you should put the first ones listed (as many as fit + reasonably) on the actual cover, and continue the rest onto + adjacent pages. + + If you publish or distribute Opaque copies of the Document + numbering more than 100, you must either include a + machine-readable Transparent copy along with each Opaque copy, or + state in or with each Opaque copy a computer-network location from + which the general network-using public has access to download + using public-standard network protocols a complete Transparent + copy of the Document, free of added material. If you use the + latter option, you must take reasonably prudent steps, when you + begin distribution of Opaque copies in quantity, to ensure that + this Transparent copy will remain thus accessible at the stated + location until at least one year after the last time you + distribute an Opaque copy (directly or through your agents or + retailers) of that edition to the public. + + It is requested, but not required, that you contact the authors of + the Document well before redistributing any large number of + copies, to give them a chance to provide you with an updated + version of the Document. + + 4. MODIFICATIONS + + You may copy and distribute a Modified Version of the Document + under the conditions of sections 2 and 3 above, provided that you + release the Modified Version under precisely this License, with + the Modified Version filling the role of the Document, thus + licensing distribution and modification of the Modified Version to + whoever possesses a copy of it. In addition, you must do these + things in the Modified Version: + + A. Use in the Title Page (and on the covers, if any) a title + distinct from that of the Document, and from those of + previous versions (which should, if there were any, be listed + in the History section of the Document). You may use the + same title as a previous version if the original publisher of + that version gives permission. + + B. List on the Title Page, as authors, one or more persons or + entities responsible for authorship of the modifications in + the Modified Version, together with at least five of the + principal authors of the Document (all of its principal + authors, if it has fewer than five), unless they release you + from this requirement. + + C. State on the Title page the name of the publisher of the + Modified Version, as the publisher. + + D. Preserve all the copyright notices of the Document. + + E. Add an appropriate copyright notice for your modifications + adjacent to the other copyright notices. + + F. Include, immediately after the copyright notices, a license + notice giving the public permission to use the Modified + Version under the terms of this License, in the form shown in + the Addendum below. + + G. Preserve in that license notice the full lists of Invariant + Sections and required Cover Texts given in the Document's + license notice. + + H. Include an unaltered copy of this License. + + I. Preserve the section Entitled "History", Preserve its Title, + and add to it an item stating at least the title, year, new + authors, and publisher of the Modified Version as given on + the Title Page. If there is no section Entitled "History" in + the Document, create one stating the title, year, authors, + and publisher of the Document as given on its Title Page, + then add an item describing the Modified Version as stated in + the previous sentence. + + J. Preserve the network location, if any, given in the Document + for public access to a Transparent copy of the Document, and + likewise the network locations given in the Document for + previous versions it was based on. These may be placed in + the "History" section. You may omit a network location for a + work that was published at least four years before the + Document itself, or if the original publisher of the version + it refers to gives permission. + + K. For any section Entitled "Acknowledgements" or "Dedications", + Preserve the Title of the section, and preserve in the + section all the substance and tone of each of the contributor + acknowledgements and/or dedications given therein. + + L. Preserve all the Invariant Sections of the Document, + unaltered in their text and in their titles. Section numbers + or the equivalent are not considered part of the section + titles. + + M. Delete any section Entitled "Endorsements". Such a section + may not be included in the Modified Version. + + N. Do not retitle any existing section to be Entitled + "Endorsements" or to conflict in title with any Invariant + Section. + + O. Preserve any Warranty Disclaimers. + + If the Modified Version includes new front-matter sections or + appendices that qualify as Secondary Sections and contain no + material copied from the Document, you may at your option + designate some or all of these sections as invariant. To do this, + add their titles to the list of Invariant Sections in the Modified + Version's license notice. These titles must be distinct from any + other section titles. + + You may add a section Entitled "Endorsements", provided it contains + nothing but endorsements of your Modified Version by various + parties--for example, statements of peer review or that the text + has been approved by an organization as the authoritative + definition of a standard. + + You may add a passage of up to five words as a Front-Cover Text, + and a passage of up to 25 words as a Back-Cover Text, to the end + of the list of Cover Texts in the Modified Version. Only one + passage of Front-Cover Text and one of Back-Cover Text may be + added by (or through arrangements made by) any one entity. If the + Document already includes a cover text for the same cover, + previously added by you or by arrangement made by the same entity + you are acting on behalf of, you may not add another; but you may + replace the old one, on explicit permission from the previous + publisher that added the old one. + + The author(s) and publisher(s) of the Document do not by this + License give permission to use their names for publicity for or to + assert or imply endorsement of any Modified Version. + + 5. COMBINING DOCUMENTS + + You may combine the Document with other documents released under + this License, under the terms defined in section 4 above for + modified versions, provided that you include in the combination + all of the Invariant Sections of all of the original documents, + unmodified, and list them all as Invariant Sections of your + combined work in its license notice, and that you preserve all + their Warranty Disclaimers. + + The combined work need only contain one copy of this License, and + multiple identical Invariant Sections may be replaced with a single + copy. If there are multiple Invariant Sections with the same name + but different contents, make the title of each such section unique + by adding at the end of it, in parentheses, the name of the + original author or publisher of that section if known, or else a + unique number. Make the same adjustment to the section titles in + the list of Invariant Sections in the license notice of the + combined work. + + In the combination, you must combine any sections Entitled + "History" in the various original documents, forming one section + Entitled "History"; likewise combine any sections Entitled + "Acknowledgements", and any sections Entitled "Dedications". You + must delete all sections Entitled "Endorsements." + + 6. COLLECTIONS OF DOCUMENTS + + You may make a collection consisting of the Document and other + documents released under this License, and replace the individual + copies of this License in the various documents with a single copy + that is included in the collection, provided that you follow the + rules of this License for verbatim copying of each of the + documents in all other respects. + + You may extract a single document from such a collection, and + distribute it individually under this License, provided you insert + a copy of this License into the extracted document, and follow + this License in all other respects regarding verbatim copying of + that document. + + 7. AGGREGATION WITH INDEPENDENT WORKS + + A compilation of the Document or its derivatives with other + separate and independent documents or works, in or on a volume of + a storage or distribution medium, is called an "aggregate" if the + copyright resulting from the compilation is not used to limit the + legal rights of the compilation's users beyond what the individual + works permit. When the Document is included in an aggregate, this + License does not apply to the other works in the aggregate which + are not themselves derivative works of the Document. + + If the Cover Text requirement of section 3 is applicable to these + copies of the Document, then if the Document is less than one half + of the entire aggregate, the Document's Cover Texts may be placed + on covers that bracket the Document within the aggregate, or the + electronic equivalent of covers if the Document is in electronic + form. Otherwise they must appear on printed covers that bracket + the whole aggregate. + + 8. TRANSLATION + + Translation is considered a kind of modification, so you may + distribute translations of the Document under the terms of section + 4. Replacing Invariant Sections with translations requires special + permission from their copyright holders, but you may include + translations of some or all Invariant Sections in addition to the + original versions of these Invariant Sections. You may include a + translation of this License, and all the license notices in the + Document, and any Warranty Disclaimers, provided that you also + include the original English version of this License and the + original versions of those notices and disclaimers. In case of a + disagreement between the translation and the original version of + this License or a notice or disclaimer, the original version will + prevail. + + If a section in the Document is Entitled "Acknowledgements", + "Dedications", or "History", the requirement (section 4) to + Preserve its Title (section 1) will typically require changing the + actual title. + + 9. TERMINATION + + You may not copy, modify, sublicense, or distribute the Document + except as expressly provided for under this License. Any other + attempt to copy, modify, sublicense or distribute the Document is + void, and will automatically terminate your rights under this + License. However, parties who have received copies, or rights, + from you under this License will not have their licenses + terminated so long as such parties remain in full compliance. + + 10. FUTURE REVISIONS OF THIS LICENSE + + The Free Software Foundation may publish new, revised versions of + the GNU Free Documentation License from time to time. Such new + versions will be similar in spirit to the present version, but may + differ in detail to address new problems or concerns. See + `http://www.gnu.org/copyleft/'. + + Each version of the License is given a distinguishing version + number. If the Document specifies that a particular numbered + version of this License "or any later version" applies to it, you + have the option of following the terms and conditions either of + that specified version or of any later version that has been + published (not as a draft) by the Free Software Foundation. If + the Document does not specify a version number of this License, + you may choose any version ever published (not as a draft) by the + Free Software Foundation. + +@end verbatim + +@node Index +@unnumbered Index + +@printindex cp + +@bye + + + +@ignore + arch-tag: 7a4de539-117c-4658-b799-0b9e3d0ccec0 +@end ignore
--- a/man/rmail.texi Sat Sep 17 19:00:49 2005 +0000 +++ b/man/rmail.texi Sat Sep 17 19:10:55 2005 +0000 @@ -92,7 +92,7 @@ other buffers, and never happen to switch back, you have exited. Just make sure to save the Rmail file eventually (like any other file you have changed). @kbd{C-x s} is a good enough way to do this -(@pxref{Saving}). The Rmail command @kbd{b}, @code{rmail-bury}, +(@pxref{Save Commands}). The Rmail command @kbd{b}, @code{rmail-bury}, buries the Rmail buffer and its summary buffer without expunging and saving the Rmail file.
--- a/src/ChangeLog Sat Sep 17 19:00:49 2005 +0000 +++ b/src/ChangeLog Sat Sep 17 19:10:55 2005 +0000 @@ -1,3 +1,47 @@ +2005-09-15 Richard M. Stallman <rms@gnu.org> + + * xdisp.c (overlay_arrow_at_row): Add HAVE_WINDOW_SYSTEM conditional. + (display_mode_element): Instead of `lisp_string' and `this', + record `offset' and increment that. + `last_offset' replaces `last'. + + * Makefile.in (XMENU_OBJ): Variable deleted. + (obj): Use xmenu.o unconditionally. + (SOME_MACHINE_OBJECTS): Delete xmenu.o. + + * emacs.c (main): Don't conditionalize syms_of_xmenu on HAVE_XMENU. + +2005-09-15 Kim F. Storm <storm@cua.dk> + + * xdisp.c (move_it_vertically): Don't try to fetch byte BEGV-1. + (reseat_at_next_visible_line_start): Likewise (in xassert). + +2005-09-14 Romain Francoise <romain@orebokech.com> + + * fileio.c (write_region_inhibit_fsync): New variable. + (Fwrite_region): Use it to skip call to fsync. + (syms_of_fileio): Initialize it. + +2005-09-14 Kenichi Handa <handa@m17n.org> + + * coding.c (code_convert_region_unwind): Argument format changed. + (run_pre_post_conversion_on_str): If pre-write-conversion function + changed the current buffer, delete the new buffer. + (run_pre_write_conversin_on_c_str): Likewise. + + * fileio.c (Fexpand_file_name): Check multibyteness of + default_directory. + +2005-09-13 Kenichi Handa <handa@m17n.org> + + * composite.c (compose_chars_in_text): Delete it. + + * composite.h (compose_chars_in_text): Delete extern. + +2005-09-13 Kim F. Storm <storm@cua.dk> + + * print.c (print_error_message): Fix last change. + 2005-09-12 Kim F. Storm <storm@cua.dk> * composite.c (compose_chars_in_text): Fix setup of `pend'.
--- a/src/Makefile.in Sat Sep 17 19:00:49 2005 +0000 +++ b/src/Makefile.in Sat Sep 17 19:10:55 2005 +0000 @@ -310,10 +310,6 @@ #ifdef HAVE_MENUS -#ifndef HAVE_CARBON -XMENU_OBJ = xmenu.o -#endif - #ifdef USE_GTK GTK_OBJ= gtkutil.o #endif @@ -449,9 +445,6 @@ LIBX= $(LIBXMENU) LD_SWITCH_X_SITE -lX10 LIBX10_MACHINE LIBX10_SYSTEM #endif /* not HAVE_X11 */ #else /* not HAVE_X_WINDOWS */ -#if defined(HAVE_MENUS) && !defined(HAVE_CARBON) -XMENU_OBJ = xmenu.o -#endif #endif /* not HAVE_X_WINDOWS */ LIBSOUND= @LIBSOUND@ @@ -577,7 +570,7 @@ /* lastfile must follow all files whose initialized data areas should be dumped as pure by dump-emacs. */ -obj= dispnew.o frame.o scroll.o xdisp.o $(XMENU_OBJ) window.o \ +obj= dispnew.o frame.o scroll.o xdisp.o xmenu.o window.o \ charset.o coding.o category.o ccl.o \ cm.o term.o xfaces.o $(XOBJ) $(GTK_OBJ)\ emacs.o keyboard.o macros.o keymap.o sysdep.o \ @@ -596,7 +589,7 @@ These go in the DOC file on all machines in case they are needed there. */ SOME_MACHINE_OBJECTS = sunfns.o dosfns.o msdos.o \ - xterm.o xfns.o xmenu.o xselect.o xrdb.o xsmfns.o fringe.o image.o \ + xterm.o xfns.o xselect.o xrdb.o xsmfns.o fringe.o image.o \ mac.o macterm.o macfns.o macmenu.o macselect.o fontset.o \ w32.o w32bdf.o w32console.o w32fns.o w32heap.o w32inevt.o \ w32menu.o w32proc.o w32reg.o w32select.o w32term.o w32xfns.o
--- a/src/coding.c Sat Sep 17 19:00:49 2005 +0000 +++ b/src/coding.c Sat Sep 17 19:10:55 2005 +0000 @@ -5349,8 +5349,8 @@ } \ } while (0) -/* ARG is (CODING . BUFFER) where CODING is what to be set in - Vlast_coding_system_used and BUFFER if non-nil is a buffer to +/* ARG is (CODING BUFFER ...) where CODING is what to be set in + Vlast_coding_system_used and the remaining elements are buffers to kill. */ static Lisp_Object code_convert_region_unwind (arg) @@ -5358,8 +5358,8 @@ { inhibit_pre_post_conversion = 0; Vlast_coding_system_used = XCAR (arg); - if (! NILP (XCDR (arg))) - Fkill_buffer (XCDR (arg)); + for (arg = XCDR (arg); ! NILP (arg); arg = XCDR (arg)) + Fkill_buffer (XCAR (arg)); return Qnil; } @@ -6077,6 +6077,7 @@ int multibyte = STRING_MULTIBYTE (str); Lisp_Object old_deactivate_mark; Lisp_Object buffer_to_kill; + Lisp_Object unwind_arg; record_unwind_protect (Fset_buffer, Fcurrent_buffer ()); /* It is not crucial to specbind this. */ @@ -6087,15 +6088,25 @@ unibyte<->multibyte conversion. For that, we adjust the multibyteness of the working buffer to that of STR. */ buffer_to_kill = set_conversion_work_buffer (multibyte); - record_unwind_protect (code_convert_region_unwind, - Fcons (Vlast_coding_system_used, buffer_to_kill)); + if (NILP (buffer_to_kill)) + unwind_arg = Fcons (Vlast_coding_system_used, Qnil); + else + unwind_arg = list2 (Vlast_coding_system_used, buffer_to_kill); + record_unwind_protect (code_convert_region_unwind, unwind_arg); insert_from_string (str, 0, 0, SCHARS (str), SBYTES (str), 0); UNGCPRO; inhibit_pre_post_conversion = 1; if (encodep) - call2 (coding->pre_write_conversion, make_number (BEG), make_number (Z)); + { + struct buffer *prev = current_buffer; + + call2 (coding->pre_write_conversion, make_number (BEG), make_number (Z)); + if (prev != current_buffer) + /* We must kill the current buffer too. */ + Fsetcdr (unwind_arg, Fcons (Fcurrent_buffer (), XCDR (unwind_arg))); + } else { Vlast_coding_system_used = coding->symbol; @@ -6129,6 +6140,7 @@ { struct gcpro gcpro1, gcpro2; struct buffer *cur = current_buffer; + struct buffer *prev; Lisp_Object old_deactivate_mark, old_last_coding_system_used; Lisp_Object args[3]; Lisp_Object buffer_to_kill; @@ -6145,6 +6157,7 @@ insert_1_both (*str, nchars, nbytes, 0, 0, 0); UNGCPRO; inhibit_pre_post_conversion = 1; + prev = current_buffer; args[0] = coding->pre_write_conversion; args[1] = make_number (BEG); args[2] = make_number (Z); @@ -6164,6 +6177,8 @@ bcopy (BEG_ADDR, *str, coding->produced); coding->src_multibyte = ! NILP (current_buffer->enable_multibyte_characters); + if (prev != current_buffer) + Fkill_buffer (Fcurrent_buffer ()); set_buffer_internal (cur); if (! NILP (buffer_to_kill)) Fkill_buffer (buffer_to_kill);
--- a/src/composite.c Sat Sep 17 19:00:49 2005 +0000 +++ b/src/composite.c Sat Sep 17 19:10:55 2005 +0000 @@ -589,132 +589,6 @@ Qcomposition, prop, string); } -/* Compose sequences of characters in the region between START and END - by functions registered in Vcomposition_function_table. If STRING - is non-nil, operate on characters contained between indices START - and END in STRING. */ - -void -compose_chars_in_text (start, end, string) - int start, end; - Lisp_Object string; -{ - int count = 0; - struct gcpro gcpro1; - Lisp_Object tail, elt, val, to; - /* Set to nonzero if we don't have to compose ASCII characters. */ - int skip_ascii; - int i, len, stop, c; - const unsigned char *ptr, *pend; - - if (! CHAR_TABLE_P (Vcomposition_function_table)) - return; - - if (STRINGP (string)) - { - count = SPECPDL_INDEX (); - GCPRO1 (string); - stop = end; - ptr = SDATA (string) + string_char_to_byte (string, start); - pend = SDATA (string) + SBYTES (string); - } - else - { - record_unwind_protect (save_excursion_restore, save_excursion_save ()); - TEMP_SET_PT (start); - stop = (start < GPT && GPT < end ? GPT : end); - ptr = CHAR_POS_ADDR (start); - pend = CHAR_POS_ADDR (end); - } - - /* Preserve the match data. */ - record_unwind_save_match_data (); - - /* If none of ASCII characters have composition functions, we can - skip them quickly. */ - for (i = 0; i < 128; i++) - if (!NILP (CHAR_TABLE_REF (Vcomposition_function_table, i))) - break; - skip_ascii = (i == 128); - - - while (1) - { - if (skip_ascii) - while (start < stop && ASCII_BYTE_P (*ptr)) - start++, ptr++; - - if (start >= stop) - { - if (stop == end || start >= end) - break; - stop = end; - if (STRINGP (string)) - ptr = SDATA (string) + string_char_to_byte (string, start); - else - ptr = CHAR_POS_ADDR (start); - } - - c = STRING_CHAR_AND_LENGTH (ptr, pend - ptr, len); - tail = CHAR_TABLE_REF (Vcomposition_function_table, c); - while (CONSP (tail)) - { - elt = XCAR (tail); - if (CONSP (elt) - && STRINGP (XCAR (elt)) - && !NILP (Ffboundp (XCDR (elt)))) - { - if (STRINGP (string)) - val = Fstring_match (XCAR (elt), string, make_number (start)); - else - { - val = Flooking_at (XCAR (elt)); - if (!NILP (val)) - val = make_number (start); - } - if (INTEGERP (val) && XFASTINT (val) == start) - { - to = Fmatch_end (make_number (0)); - val = call4 (XCDR (elt), val, to, XCAR (elt), string); - if (INTEGERP (val) && XINT (val) > 1) - { - start += XINT (val); - if (STRINGP (string)) - { - ptr = SDATA (string) + string_char_to_byte (string, start); - pend = SDATA (string) + SBYTES (string); - } - else - ptr = CHAR_POS_ADDR (start); - } - else if (STRINGP (string)) - { - start++; - ptr = SDATA (string) + string_char_to_byte (string, start); - pend = SDATA (string) + SBYTES (string); - } - else - { - start++; - ptr += len; - } - break; - } - } - tail = XCDR (tail); - } - if (!CONSP (tail)) - { - /* No composition done. Try the next character. */ - start++; - ptr += len; - } - } - - unbind_to (count, Qnil); - if (STRINGP (string)) - UNGCPRO; -} /* Emacs Lisp APIs. */
--- a/src/composite.h Sat Sep 17 19:00:49 2005 +0000 +++ b/src/composite.h Sat Sep 17 19:10:55 2005 +0000 @@ -209,7 +209,6 @@ extern void syms_of_composite P_ ((void)); extern void compose_text P_ ((int, int, Lisp_Object, Lisp_Object, Lisp_Object)); -extern void compose_chars_in_text P_ ((int, int, Lisp_Object)); #endif /* not EMACS_COMPOSITE_H */
--- a/src/emacs.c Sat Sep 17 19:00:49 2005 +0000 +++ b/src/emacs.c Sat Sep 17 19:10:55 2005 +0000 @@ -1628,14 +1628,12 @@ #endif #endif /* HAVE_X_WINDOWS */ -#ifdef HAVE_MENUS #ifndef HAVE_NTGUI #ifndef MAC_OS /* Called before init_window_once for Mac OS Classic. */ syms_of_xmenu (); #endif #endif -#endif #ifdef HAVE_NTGUI syms_of_w32term ();
--- a/src/fileio.c Sat Sep 17 19:00:49 2005 +0000 +++ b/src/fileio.c Sat Sep 17 19:10:55 2005 +0000 @@ -227,6 +227,11 @@ expanding file names. This can be bound to / or \. */ Lisp_Object Vdirectory_sep_char; +#ifdef HAVE_FSYNC +/* Nonzero means skip the call to fsync in Fwrite-region. */ +int write_region_inhibit_fsync; +#endif + extern Lisp_Object Vuser_login_name; #ifdef WINDOWSNT @@ -1058,6 +1063,7 @@ #endif /* DOS_NT */ int length; Lisp_Object handler, result; + int multibyte; CHECK_STRING (name); @@ -1135,6 +1141,7 @@ name = FILE_SYSTEM_CASE (name); nm = SDATA (name); + multibyte = STRING_MULTIBYTE (name); #ifdef DOS_NT /* We will force directory separators to be either all \ or /, so make @@ -1300,8 +1307,7 @@ if (index (nm, '/')) { nm = sys_translate_unix (nm); - return make_specified_string (nm, -1, strlen (nm), - STRING_MULTIBYTE (name)); + return make_specified_string (nm, -1, strlen (nm), multibyte); } #endif /* VMS */ #ifdef DOS_NT @@ -1313,8 +1319,7 @@ if (IS_DIRECTORY_SEP (nm[1])) { if (strcmp (nm, SDATA (name)) != 0) - name = make_specified_string (nm, -1, strlen (nm), - STRING_MULTIBYTE (name)); + name = make_specified_string (nm, -1, strlen (nm), multibyte); } else #endif @@ -1323,8 +1328,7 @@ { char temp[] = " :"; - name = make_specified_string (nm, -1, p - nm, - STRING_MULTIBYTE (name)); + name = make_specified_string (nm, -1, p - nm, multibyte); temp[0] = DRIVE_LETTER (drive); name = concat2 (build_string (temp), name); } @@ -1332,8 +1336,7 @@ #else /* not DOS_NT */ if (nm == SDATA (name)) return name; - return make_specified_string (nm, -1, strlen (nm), - STRING_MULTIBYTE (name)); + return make_specified_string (nm, -1, strlen (nm), multibyte); #endif /* not DOS_NT */ } } @@ -1445,6 +1448,7 @@ && !newdir) { newdir = SDATA (default_directory); + multibyte |= STRING_MULTIBYTE (default_directory); #ifdef DOS_NT /* Note if special escape prefix is present, but remove for now. */ if (newdir[0] == '/' && newdir[1] == ':') @@ -1710,8 +1714,7 @@ CORRECT_DIR_SEPS (target); #endif /* DOS_NT */ - result = make_specified_string (target, -1, o - target, - STRING_MULTIBYTE (name)); + result = make_specified_string (target, -1, o - target, multibyte); /* Again look to see if the file name has special constructs in it and perhaps call the corresponding file handler. This is needed @@ -5300,7 +5303,7 @@ Disk full in NFS may be reported here. */ /* mib says that closing the file will try to write as fast as NFS can do it, and that means the fsync here is not crucial for autosave files. */ - if (!auto_saving && fsync (desc) < 0) + if (!auto_saving && !write_region_inhibit_fsync && fsync (desc) < 0) { /* If fsync fails with EINTR, don't treat that as serious. */ if (errno != EINTR) @@ -6746,6 +6749,13 @@ a non-nil value. */); Vauto_save_list_file_name = Qnil; +#ifdef HAVE_FSYNC + DEFVAR_BOOL ("write-region-inhibit-fsync", &write_region_inhibit_fsync, + doc: /* *Non-nil means don't call fsync after saving files. +Enabling this variable may result in data loss! */); + write_region_inhibit_fsync = 0; +#endif + defsubr (&Sfind_file_name_handler); defsubr (&Sfile_name_directory); defsubr (&Sfile_name_nondirectory);
--- a/src/print.c Sat Sep 17 19:00:49 2005 +0000 +++ b/src/print.c Sat Sep 17 19:10:55 2005 +0000 @@ -1028,7 +1028,7 @@ Lisp_Object cname = SYMBOL_NAME (caller); char *name = alloca (SBYTES (cname)); bcopy (SDATA (cname), name, SBYTES (cname)); - message_dolog (name, strlen (name), 0, 0); + message_dolog (name, SBYTES (cname), 0, 0); message_dolog (": ", 2, 0, 0); }
--- a/src/xdisp.c Sat Sep 17 19:00:49 2005 +0000 +++ b/src/xdisp.c Sat Sep 17 19:10:55 2005 +0000 @@ -4794,7 +4794,8 @@ && indented_beyond_p (IT_CHARPOS (*it), IT_BYTEPOS (*it), (double) it->selective)) /* iftc */ { - xassert (FETCH_BYTE (IT_BYTEPOS (*it) - 1) == '\n'); + xassert (IT_BYTEPOS (*it) == BEGV + || FETCH_BYTE (IT_BYTEPOS (*it) - 1) == '\n'); newline_found_p = forward_to_next_line_start (it, &skipped_p); } @@ -6512,6 +6513,7 @@ /* If buffer ends in ZV without a newline, move to the start of the line to satisfy the post-condition. */ if (IT_CHARPOS (*it) == ZV + && ZV > BEGV && FETCH_BYTE (IT_BYTEPOS (*it) - 1) != '\n') move_it_by_lines (it, 0, 0); } @@ -10019,12 +10021,14 @@ if (FRAME_WINDOW_P (it->f) && WINDOW_LEFT_FRINGE_WIDTH (it->w) > 0) { +#ifdef HAVE_WINDOW_SYSTEM if (val = Fget (var, Qoverlay_arrow_bitmap), SYMBOLP (val)) { int fringe_bitmap; if ((fringe_bitmap = lookup_fringe_bitmap (val)) != 0) return make_number (fringe_bitmap); } +#endif return make_number (-1); /* Use default arrow bitmap */ } return overlay_arrow_string_or_property (var); @@ -15969,7 +15973,7 @@ { /* A string: output it and check for %-constructs within it. */ unsigned char c; - const unsigned char *this, *lisp_string; + int offset = 0; if (!NILP (props) || risky) { @@ -16027,8 +16031,7 @@ } } - this = SDATA (elt); - lisp_string = this; + offset = 0; if (literal) { @@ -16051,42 +16054,44 @@ break; } + /* Handle the non-literal case. */ + while ((precision <= 0 || n < precision) - && *this + && SREF (elt, offset) != 0 && (mode_line_target != MODE_LINE_DISPLAY || it->current_x < it->last_visible_x)) { - const unsigned char *last = this; + int last_offset = offset; /* Advance to end of string or next format specifier. */ - while ((c = *this++) != '\0' && c != '%') + while ((c = SREF (elt, offset++)) != '\0' && c != '%') ; - if (this - 1 != last) + if (offset - 1 != last_offset) { int nchars, nbytes; /* Output to end of string or up to '%'. Field width is length of string. Don't output more than PRECISION allows us. */ - --this; - - prec = c_string_width (last, this - last, precision - n, + offset--; + + prec = c_string_width (SDATA (elt) + last_offset, + offset - last_offset, precision - n, &nchars, &nbytes); switch (mode_line_target) { case MODE_LINE_NOPROP: case MODE_LINE_TITLE: - n += store_mode_line_noprop (last, 0, prec); + n += store_mode_line_noprop (SDATA (elt) + last_offset, 0, prec); break; case MODE_LINE_STRING: { - int bytepos = last - lisp_string; + int bytepos = last_offset; int charpos = string_byte_to_char (elt, bytepos); int endpos = (precision <= 0 - ? string_byte_to_char (elt, - this - lisp_string) + ? string_byte_to_char (elt, offset) : charpos + nchars); n += store_mode_line_string (NULL, @@ -16097,7 +16102,7 @@ break; case MODE_LINE_DISPLAY: { - int bytepos = last - lisp_string; + int bytepos = last_offset; int charpos = string_byte_to_char (elt, bytepos); n += display_string (NULL, elt, Qnil, 0, charpos, it, 0, prec, 0, @@ -16108,12 +16113,12 @@ } else /* c == '%' */ { - const unsigned char *percent_position = this; + int percent_position = offset; /* Get the specified minimum width. Zero means don't pad. */ field = 0; - while ((c = *this++) >= '0' && c <= '9') + while ((c = SREF (elt, offset++)) >= '0' && c <= '9') field = field * 10 + c - '0'; /* Don't pad beyond the total padding allowed. */ @@ -16133,7 +16138,7 @@ int bytepos, charpos; unsigned char *spec; - bytepos = percent_position - lisp_string; + bytepos = percent_position; charpos = (STRING_MULTIBYTE (elt) ? string_byte_to_char (elt, bytepos) : bytepos); @@ -16191,8 +16196,6 @@ else /* c == 0 */ break; } - this += SDATA (elt) - lisp_string; - lisp_string = SDATA (elt); } } break;