Mercurial > emacs
changeset 107284:366dab1d1b3e
Merge from mainline.
author | Katsumi Yamaoka <yamaoka@jpl.org> |
---|---|
date | Sun, 21 Feb 2010 21:56:15 +0000 |
parents | 396dc65ad74c (current diff) 8554c569b8fd (diff) |
children | edfde380e83e |
files | |
diffstat | 24 files changed, 309 insertions(+), 93 deletions(-) [+] |
line wrap: on
line diff
--- a/doc/emacs/ChangeLog Thu Feb 18 21:54:17 2010 +0000 +++ b/doc/emacs/ChangeLog Sun Feb 21 21:56:15 2010 +0000 @@ -1,3 +1,8 @@ +2010-02-21 Chong Yidong <cyd@stupidchicken.com> + + * frames.texi (Frame Commands): Note that the last ordinary frame can + be deleted in daemon mode (Bug#5616). + 2010-02-18 Glenn Morris <rgm@gnu.org> * trouble.texi (Contributing): Repository is no longer CVS.
--- a/doc/emacs/frames.texi Thu Feb 18 21:54:17 2010 +0000 +++ b/doc/emacs/frames.texi Sun Feb 21 21:56:15 2010 +0000 @@ -622,18 +622,24 @@ Delete all frames except the selected one. @end table + The @kbd{C-x 5 0} (@code{delete-frame}) command will never delete +the last frame, to prevent you from losing the ability to interact +with the Emacs process. Note that when Emacs is run as a daemon +(@pxref{Emacs Server}), there is always a ``virtual frame'' that +remains after all the ordinary, interactive frames are deleted. In +this case, @kbd{C-x 5 0} can delete the last interactive frame; you +can use @command{emacsclient} to reconnect to the Emacs session. + @vindex focus-follows-mouse - To make the command @kbd{C-x 5 o} work properly, you should tell -Emacs how the system (or the window manager) handles focus-switching -between windows. There are two possibilities: either simply moving -the mouse onto a window selects it (gives it focus), or you have to -click on it to do so. On X, this focus policy also affects whether -the focus is given to a frame that Emacs raises. Unfortunately there -is no way Emacs can find out automatically which way the system -handles this, so you have to explicitly say, by setting the variable -@code{focus-follows-mouse}. If just moving the mouse onto a window -selects it, that variable should be @code{t}; if a click is necessary, -the variable should be @code{nil}. The default is @code{t}. + On X, you may have to tell Emacs how the system (or the window +manager) handles focus-switching between windows, in order for the +command @kbd{C-x 5 o} (@code{other-frame}) to work properly. +Unfortunately, there is no way for Emacs to detect this automatically, +so you should set the variable @code{focus-follows-mouse}. If simply +moving the mouse onto a window selects it and gives it focus, the +variable should be @code{t}; if you have to click on the window to +select it, the variable should be @code{nil}. The default is +@code{t}. The window manager that is part of MS-Windows always gives focus to a frame that raises, so this variable has no effect in the native
--- a/doc/emacs/trouble.texi Thu Feb 18 21:54:17 2010 +0000 +++ b/doc/emacs/trouble.texi Sun Feb 21 21:56:15 2010 +0000 @@ -1023,7 +1023,7 @@ rest of Emacs. The development version of Emacs can be downloaded from the -repository, where it is actively maintained by a group of developers. +repository where it is actively maintained by a group of developers. See the Emacs project page @url{http://savannah.gnu.org/projects/emacs/} for details.
--- a/lib-src/ChangeLog Thu Feb 18 21:54:17 2010 +0000 +++ b/lib-src/ChangeLog Sun Feb 21 21:56:15 2010 +0000 @@ -1,3 +1,8 @@ +2010-02-20 Kevin Ryde <user42@zip.com.au> + + * etags.c (Scheme_functions): Don't loop past a null character + (Bug#5601). + 2010-01-29 Kester Habermann <kester@linuxtag.org> (tiny change) * etags.c (Fortran_functions): Handle recursive keyword
--- a/lib-src/etags.c Thu Feb 18 21:54:17 2010 +0000 +++ b/lib-src/etags.c Sun Feb 21 21:56:15 2010 +0000 @@ -5004,8 +5004,9 @@ if (strneq (bp, "(def", 4) || strneq (bp, "(DEF", 4)) { bp = skip_non_spaces (bp+4); - /* Skip over open parens and white space */ - while (notinname (*bp)) + /* Skip over open parens and white space. Don't continue past + '\0'. */ + while (*bp && notinname (*bp)) bp++; get_tag (bp, NULL); }
--- a/lisp/ChangeLog Thu Feb 18 21:54:17 2010 +0000 +++ b/lisp/ChangeLog Sun Feb 21 21:56:15 2010 +0000 @@ -1,3 +1,52 @@ +2010-02-21 Chong Yidong <cyd@stupidchicken.com> + + * files.el (directory-listing-before-filename-regexp): Use + stricter matching for iso-style dates, to avoid false matches with + date-like filenames (Bug#5597). + + * htmlfontify.el (htmlfontify): Doc fix. + + * eshell/eshell.el (eshell): Doc fix. + + * startup.el (fancy-about-screen): In mode-line, apply + mode-line-buffer-id face only to the buffer name (Bug#5613). + +2010-02-20 Kevin Ryde <user42@zip.com.au> + + * progmodes/compile.el (compilation-error-regexp-alist-alist): In + `watcom' anchor regexp to start of line, to avoid slowness + (Bug#5599). + +2010-02-20 Eli Zaretskii <eliz@gnu.org> + + * subr.el (remove-yank-excluded-properties): Explain in a comment + why `category' property is removed. + +2010-02-19 Chong Yidong <cyd@stupidchicken.com> + + * isearch.el (isearch-update-post-hook, isearch-update): Revert + 2010-02-17 change. + +2010-02-19 Ulf Jasper <ulf.jasper@web.de> + + * calendar/icalendar.el (icalendar--convert-ordinary-to-ical) + (icalendar--convert-weekly-to-ical) + (icalendar--convert-yearly-to-ical) + (icalendar--convert-block-to-ical) + (icalendar--convert-cyclic-to-ical) + (icalendar--convert-anniversary-to-ical): Take care of time + specifications where hour has 1-digit only (Bug#5549). + +2010-02-19 Nick Roberts <nickrob@snap.net.nz> + + * progmodes/gdb-ui.el (gdb-assembler-handler): Accommodate change + of disassemble output in GDB 7.1. + +2010-02-19 Glenn Morris <rgm@gnu.org> + + * progmodes/f90.el (f90-electric-insert): Give it a delete-selection + property. (Bug#5593) + 2010-02-18 Sam Steingold <sds@gnu.org> * vc-cvs.el (vc-cvs-merge-news): Yet another fix of message parsing.
--- a/lisp/calendar/icalendar.el Thu Feb 18 21:54:17 2010 +0000 +++ b/lisp/calendar/icalendar.el Sun Feb 21 21:56:15 2010 +0000 @@ -1175,9 +1175,9 @@ (if (string-match (concat nonmarker "\\([^ /]+[ /]+[^ /]+[ /]+[^ ]+\\)\\s-*" ; date - "\\(0?\\([1-9][0-9]?:[0-9][0-9]\\)\\([ap]m\\)?" ; start time + "\\(\\([0-9][0-9]?:[0-9][0-9]\\)\\([ap]m\\)?" ; start time "\\(" - "-0?\\([1-9][0-9]?:[0-9][0-9]\\)\\([ap]m\\)?\\)?" ; end time + "-\\([0-9][0-9]?:[0-9][0-9]\\)\\([ap]m\\)?\\)?" ; end time "\\)?" "\\s-*\\(.*?\\) ?$") entry-main) @@ -1271,10 +1271,10 @@ entries. ENTRY-MAIN is the first line of the diary entry." (if (and (string-match (concat nonmarker "\\([a-z]+\\)\\s-+" - "\\(0?\\([1-9][0-9]?:[0-9][0-9]\\)" + "\\(\\([0-9][0-9]?:[0-9][0-9]\\)" "\\([ap]m\\)?" - "\\(-0?" - "\\([1-9][0-9]?:[0-9][0-9]\\)" + "\\(-" + "\\([0-9][0-9]?:[0-9][0-9]\\)" "\\([ap]m\\)?\\)?" "\\)?" "\\s-*\\(.*?\\) ?$") @@ -1353,12 +1353,12 @@ entries. ENTRY-MAIN is the first line of the diary entry." (if (string-match (concat nonmarker (if (eq (icalendar--date-style) 'european) - "0?\\([1-9]+[0-9]?\\)\\s-+\\([a-z]+\\)\\s-+" - "\\([a-z]+\\)\\s-+0?\\([1-9]+[0-9]?\\)\\s-+") + "\\([0-9]+[0-9]?\\)\\s-+\\([a-z]+\\)\\s-+" + "\\([a-z]+\\)\\s-+\\([0-9]+[0-9]?\\)\\s-+") "\\*?\\s-*" - "\\(0?\\([1-9][0-9]?:[0-9][0-9]\\)\\([ap]m\\)?" + "\\(\\([0-9][0-9]?:[0-9][0-9]\\)\\([ap]m\\)?" "\\(" - "-0?\\([1-9][0-9]?:[0-9][0-9]\\)\\([ap]m\\)?\\)?" + "-\\([0-9][0-9]?:[0-9][0-9]\\)\\([ap]m\\)?\\)?" "\\)?" "\\s-*\\([^0-9]+.*?\\) ?$" ; must not match years ) @@ -1461,9 +1461,9 @@ (if (string-match (concat nonmarker "%%(diary-block \\([^ /]+[ /]+[^ /]+[ /]+[^ ]+\\)" " +\\([^ /]+[ /]+[^ /]+[ /]+[^ ]+\\))\\s-*" - "\\(0?\\([1-9][0-9]?:[0-9][0-9]\\)\\([ap]m\\)?" + "\\(\\([0-9][0-9]?:[0-9][0-9]\\)\\([ap]m\\)?" "\\(" - "-0?\\([1-9][0-9]?:[0-9][0-9]\\)\\([ap]m\\)?\\)?" + "-\\([0-9][0-9]?:[0-9][0-9]\\)\\([ap]m\\)?\\)?" "\\)?" "\\s-*\\(.*?\\) ?$") entry-main) @@ -1569,9 +1569,9 @@ (if (string-match (concat nonmarker "%%(diary-cyclic \\([^ ]+\\) +" "\\([^ /]+[ /]+[^ /]+[ /]+[^ ]+\\))\\s-*" - "\\(0?\\([1-9][0-9]?:[0-9][0-9]\\)\\([ap]m\\)?" + "\\(\\([0-9][0-9]?:[0-9][0-9]\\)\\([ap]m\\)?" "\\(" - "-0?\\([1-9][0-9]?:[0-9][0-9]\\)\\([ap]m\\)?\\)?" + "-\\([0-9][0-9]?:[0-9][0-9]\\)\\([ap]m\\)?\\)?" "\\)?" "\\s-*\\(.*?\\) ?$") entry-main) @@ -1642,9 +1642,9 @@ entries. ENTRY-MAIN is the first line of the diary entry." (if (string-match (concat nonmarker "%%(diary-anniversary \\([^)]+\\))\\s-*" - "\\(0?\\([1-9][0-9]?:[0-9][0-9]\\)\\([ap]m\\)?" + "\\(\\([0-9][0-9]?:[0-9][0-9]\\)\\([ap]m\\)?" "\\(" - "-0?\\([1-9][0-9]?:[0-9][0-9]\\)\\([ap]m\\)?\\)?" + "-\\([0-9][0-9]?:[0-9][0-9]\\)\\([ap]m\\)?\\)?" "\\)?" "\\s-*\\(.*?\\) ?$") entry-main)
--- a/lisp/eshell/eshell.el Thu Feb 18 21:54:17 2010 +0000 +++ b/lisp/eshell/eshell.el Sun Feb 21 21:56:15 2010 +0000 @@ -229,11 +229,10 @@ (require 'esh-mode) (defgroup eshell nil - "Eshell is a command shell implemented entirely in Emacs Lisp. It -invokes no external processes beyond those requested by the user. It -is intended to be a functional replacement for command shells such as -bash, zsh, rc, 4dos; since Emacs itself is capable of handling most of -the tasks accomplished by such tools." + "A command shell implemented entirely in Emacs Lisp. +It invokes no external processes beyond those requested by the +user, and is intended to be a functional replacement for command +shells such as bash, zsh, rc, 4dos." :tag "The Emacs shell" :link '(info-link "(eshell)Top") :version "21.1"
--- a/lisp/files.el Thu Feb 18 21:54:17 2010 +0000 +++ b/lisp/files.el Sun Feb 21 21:56:15 2010 +0000 @@ -5592,8 +5592,10 @@ ;; -r--r--r-- 1 may 1997 1168 Oct 19 16:49 README ;; The "[BkKMGTPEZY]?" below supports "ls -alh" output. - ;; The ".*" below finds the last match if there are multiple matches. - ;; This avoids recognizing `jservice 10 1024' as a date in the line: + + ;; For non-iso date formats, we add the ".*" in order to find + ;; the last possible match. This avoids recognizing + ;; `jservice 10 1024' as a date in the line: ;; drwxr-xr-x 3 jservice 10 1024 Jul 2 1997 esg-host ;; vc dired listings provide the state or blanks between file @@ -5601,9 +5603,10 @@ ;; parantheses: ;; -rw-r--r-- (modified) 2005-10-22 21:25 files.el ;; This is not supported yet. - (purecopy (concat ".*[0-9][BkKMGTPEZY]?" s - "\\(" western "\\|" western-comma "\\|" east-asian "\\|" iso "\\)" - s "+"))) + (purecopy (concat "\\([0-9][BkKMGTPEZY]? " iso + "\\|.*[0-9][BkKMGTPEZY]? " + "\\(" western "\\|" western-comma "\\|" east-asian "\\)" + "\\) +"))) "Regular expression to match up to the file name in a directory listing. The default value is designed to recognize dates and times regardless of the language.")
--- a/lisp/htmlfontify.el Thu Feb 18 21:54:17 2010 +0000 +++ b/lisp/htmlfontify.el Sun Feb 21 21:56:15 2010 +0000 @@ -176,10 +176,9 @@ (htmlfontify-copy-and-link-dir srcdir destdir \".src\" \".html\")))") (defgroup htmlfontify nil - "Copy and convert buffers and files to HTML, adding hyperlinks between -files (driven by etags) if requested.\n -See also `htmlfontify-manual'." + "Convert buffers and files to HTML." :group 'applications + :link '(variable-link htmlfontify-manual) :prefix "hfy-") (defcustom hfy-page-header 'hfy-default-header
--- a/lisp/isearch.el Thu Feb 18 21:54:17 2010 +0000 +++ b/lisp/isearch.el Sun Feb 21 21:56:15 2010 +0000 @@ -156,9 +156,6 @@ (defvar isearch-mode-hook nil "Function(s) to call after starting up an incremental search.") -(defvar isearch-update-post-hook nil - "Function(s) to call after isearch has found matches in the buffer.") - (defvar isearch-mode-end-hook nil "Function(s) to call after terminating an incremental search. When these functions are called, `isearch-mode-end-hook-quit' @@ -871,8 +868,7 @@ (isearch-lazy-highlight-new-loop)) ;; We must prevent the point moving to the end of composition when a ;; part of the composition has just been searched. - (setq disable-point-adjustment t) - (run-hooks 'isearch-update-post-hook)) + (setq disable-point-adjustment t)) (defun isearch-done (&optional nopush edit) "Exit Isearch mode.
--- a/lisp/progmodes/compile.el Thu Feb 18 21:54:17 2010 +0000 +++ b/lisp/progmodes/compile.el Sun Feb 21 21:56:15 2010 +0000 @@ -350,7 +350,7 @@ "^\\([^, \n\t]+\\), line \\([0-9]+\\), char \\([0-9]+\\)[:., \(-]" 1 2 3) (watcom - "\\(\\(?:[a-zA-Z]:\\)?[^:(\t\n]+\\)(\\([0-9]+\\)): ?\ + "^[ \t]*\\(\\(?:[a-zA-Z]:\\)?[^:(\t\n]+\\)(\\([0-9]+\\)): ?\ \\(?:\\(Error! E[0-9]+\\)\\|\\(Warning! W[0-9]+\\)\\):" 1 2 nil (4))
--- a/lisp/progmodes/f90.el Thu Feb 18 21:54:17 2010 +0000 +++ b/lisp/progmodes/f90.el Sun Feb 21 21:56:15 2010 +0000 @@ -1356,6 +1356,8 @@ (if auto-fill-function (f90-do-auto-fill) ; also updates line (f90-update-line))) +;; Behave like self-insert-command for delete-selection-mode (bug#5593). +(put 'f90-electric-insert 'delete-selection t) (defun f90-get-correct-indent () "Get correct indent for a line starting with line number.
--- a/lisp/progmodes/gdb-ui.el Thu Feb 18 21:54:17 2010 +0000 +++ b/lisp/progmodes/gdb-ui.el Sun Feb 21 21:56:15 2010 +0000 @@ -3573,18 +3573,24 @@ (setq gdb-pending-triggers (delq 'gdb-invalidate-assembler gdb-pending-triggers)) - (let ((buf (gdb-get-buffer 'gdb-assembler-buffer))) - (and buf - (with-current-buffer buf - (let* ((window (get-buffer-window buf 0)) - (p (window-point window)) - (buffer-read-only nil)) - (erase-buffer) - (insert-buffer-substring (gdb-get-buffer-create + (let ((buf (gdb-get-buffer 'gdb-partial-output-buffer))) + (with-current-buffer buf + (goto-char (point-min)) + ;; The disassemble command in GDB 7.1 onwards displays an overlay arrow. + (while (re-search-forward "\\(^ 0x\\|=> 0x\\)" nil t) + (replace-match "0x" nil nil)))) + (let ((buf (gdb-get-buffer 'gdb-assembler-buffer))) + (and buf + (with-current-buffer buf + (let* ((window (get-buffer-window buf 0)) + (p (window-point window)) + (buffer-read-only nil)) + (erase-buffer) + (insert-buffer-substring (gdb-get-buffer-create 'gdb-partial-output-buffer)) - (set-window-point window p))))) - ;; put customisation here - (gdb-assembler-custom)) + (set-window-point window p))))) + ;; put customisation here + (gdb-assembler-custom)) (defun gdb-assembler-custom () (let ((buffer (gdb-get-buffer 'gdb-assembler-buffer))
--- a/lisp/startup.el Thu Feb 18 21:54:17 2010 +0000 +++ b/lisp/startup.el Sun Feb 21 21:56:15 2010 +0000 @@ -1626,8 +1626,10 @@ (select-frame frame) (switch-to-buffer "*About GNU Emacs*") (setq buffer-undo-list t - mode-line-format (propertize "---- %b %-" - 'face 'mode-line-buffer-id)) + mode-line-format + (concat "----" + (propertize "%b" 'face 'mode-line-buffer-id) + "%-")) (let ((inhibit-read-only t)) (erase-buffer) (if pure-space-overflow
--- a/lisp/subr.el Thu Feb 18 21:54:17 2010 +0000 +++ b/lisp/subr.el Sun Feb 21 21:56:15 2010 +0000 @@ -2442,7 +2442,11 @@ "Remove `yank-excluded-properties' between START and END positions. Replaces `category' properties with their defined properties." (let ((inhibit-read-only t)) - ;; Replace any `category' property with the properties it stands for. + ;; Replace any `category' property with the properties it stands + ;; for. This is to remove `mouse-face' properties that are placed + ;; on categories in *Help* buffers' buttons. See + ;; http://lists.gnu.org/archive/html/emacs-devel/2002-04/msg00648.html + ;; for the details. (unless (memq yank-excluded-properties '(t nil)) (save-excursion (goto-char start)
--- a/msdos/ChangeLog Thu Feb 18 21:54:17 2010 +0000 +++ b/msdos/ChangeLog Sun Feb 21 21:56:15 2010 +0000 @@ -1,3 +1,8 @@ +2010-02-19 Eli Zaretskii <eliz@gnu.org> + + * INSTALL: Remove a CVS-specific note. Update for latest versions + of Windows. + 2009-09-17 Eli Zaretskii <eliz@gnu.org> * sed1v2.inp (OTHER_FILES): Edit to empty.
--- a/msdos/INSTALL Thu Feb 18 21:54:17 2010 +0000 +++ b/msdos/INSTALL Sun Feb 21 21:56:15 2010 +0000 @@ -5,8 +5,9 @@ See the end of the file for license conditions. The DJGPP port of GNU Emacs builds and runs on plain DOS and also on -all versions of MS-Windows from version 3.X on, including Windows XP -and Vista. +all versions of MS-Windows from version 3.X on, including Windows XP, +Vista, and Windows 7 (however, see below for issues with Windows Vista +and 7). To build and install the DJGPP port, you need to have the DJGPP ports of GCC (the GNU C compiler), GNU Make, rm, mv, and sed. See the @@ -19,28 +20,25 @@ Bootstrapping Emacs or recompiling Lisp files in the `lisp' subdirectory using the various targets in the lisp/Makefile file requires additional utilities: `find' (from Findutils), GNU `echo' and -`test' (from Sh-utils), `ls' and `chmod' (from Fileutils), `grep' -(from Grep), and a port of Bash. However, you should not normally -need to run lisp/Makefile, as all the Lisp files are distributed in -byte-compiled form as well. As for bootstrapping, you will only need -that if you check-out development sources from the Emacs source -repository. (Note: If you are checking out of CVS, use the -kb option -of the `checkout' and `update' commands, to preserve the original -Unix-style EOL format of the files. If some files are converted to -DOS EOL format by the default operation of CVS, the build might fail.) +`test' (from Sh-utils or Coreutils), `ls' and `chmod' (from Fileutils +or Coreutils), `grep' (from Grep), and a port of Bash. However, you +should not normally need to run lisp/Makefile, as all the Lisp files +are distributed in byte-compiled form as well. As for bootstrapping +itself, you will only need that if you check-out development sources +from the Emacs source repository. If you are building the DJGPP version of Emacs on a DOS-like system which supports long file names (e.g. Windows 9X or Windows XP), you need to make sure that long file names are handled consistently both -when you unpack the distribution and compile it. If you intend to -compile with DJGPP v2.0 or later, and long file names support is -enabled (LFN=y in the environment), you need to unpack Emacs -distribution in a way that doesn't truncate the original long +when you unpack the distribution and compile it. With DJGPP v2.0 or +later, long file names support is by default, so you need to unpack +Emacs distribution in a way that doesn't truncate the original long filenames to the DOS 8.3 namespace; the easiest way to do this is to -use djtar program which comes with DJGPP, since it will note the LFN -setting and behave accordingly. You can build Emacs with LFN=n, if -some of your tools don't support long file names: just ensure that LFN -is set to `n' during both unpacking and compiling. +use djtar program which comes with DJGPP, since it will behave +consistently with the rest of DJGPP tools. Alternatively, you can +build Emacs with LFN=n, if some of your tools don't support long file +names: just ensure that LFN is set to `n' during both unpacking and +compiling. (By the time you read this, you have already unpacked the Emacs distribution, but if the explanations above imply that you should have @@ -100,14 +98,14 @@ should be able to find them in your djdevNNN.zip archive (where NNN is the DJGPP version number). -On Windows NT, Windows 2000/XP/Vista, running "config msdos" might -print an error message like "VDM has been already loaded". This is -because those systems have a program called `redir.exe' which is +On Windows NT and Windows 2000/XP/Vista/7, running "config msdos" +might print an error message like "VDM has been already loaded". This +is because those systems have a program called `redir.exe' which is incompatible with a program by the same name supplied with DJGPP, which is used by config.bat. To resolve this, move the DJGPP's `bin' subdirectory to the front of your PATH environment variable. -Windows Vista has several bugs in its DPMI server related to memory +Windows Vista/7 has several bugs in its DPMI server related to memory allocation: it fails DPMI resize memory block function, and it arbitrarily limits the default amount of DPMI memory to 32MB. To work around these bugs, first configure Emacs to use the `malloc' function @@ -117,8 +115,8 @@ config --with-system-malloc msdos make install -In addition, you'll need to install Service Pack 1 (SP1) or later to -Windows Vista and enlarge its DPMI memory limit by setting the value +In addition, for Windows Vista you'll need to install Service Pack 1 +(SP1) or later and enlarge its DPMI memory limit by setting the value of this Registry key: HKEY_LOCAL_MACHINE\System\CurrentControlSet\Control\Wow\DpmiLimit @@ -164,8 +162,8 @@ Emacs features which require asynchronous subprocesses that depend on multitasking do not work in the DJGPP port. Synchronous subprocesses -do work, so features such as compilation and grep run synchronously, -unlike opn other platforms. +do work, so features such as compilation, grep, and Ispell run +synchronously, unlike on other platforms. Version 2.0 of djgpp has two bugs that affect Emacs. We've included corrected versions of two files from djgpp in the msdos subdirectory:
--- a/src/ChangeLog Thu Feb 18 21:54:17 2010 +0000 +++ b/src/ChangeLog Sun Feb 21 21:56:15 2010 +0000 @@ -1,3 +1,7 @@ +2010-02-21 Chong Yidong <cyd@stupidchicken.com> + + * m/arm.h: Define the LIB_GCC flag to be -lgcc_s (Bug#5518). + 2010-02-18 Stefan Monnier <monnier@iro.umontreal.ca> * term.c (fatal): Add a final \n if needed (bug#5596).
--- a/src/dispextern.h Thu Feb 18 21:54:17 2010 +0000 +++ b/src/dispextern.h Sun Feb 21 21:56:15 2010 +0000 @@ -2257,8 +2257,8 @@ && ((IT)->c == '\n' \ || ((IT)->c == '\r' && (IT)->selective))) -/* Call produce_glyphs or produce_glyphs_hook, if set. Shortcut to - avoid the function call overhead. */ +/* Call produce_glyphs or FRAME_RIF->produce_glyphs, if set. Shortcut + to avoid the function call overhead. */ #define PRODUCE_GLYPHS(IT) \ do { \
--- a/src/m/arm.h Thu Feb 18 21:54:17 2010 +0000 +++ b/src/m/arm.h Sun Feb 21 21:56:15 2010 +0000 @@ -36,5 +36,11 @@ #define NO_REMAP +/* armin76@gentoo.org reported that the lgcc_s flag is necessary to + build on ARM EABI under GNU/Linux (Bug#5518). */ +#ifdef GNU_LINUX +#define LIB_GCC -lgcc_s +#endif + /* arch-tag: 07856f0c-f0c8-4bd8-99af-0b7fa1e5ee42 (do not change this comment) */
--- a/src/term.c Thu Feb 18 21:54:17 2010 +0000 +++ b/src/term.c Sun Feb 21 21:56:15 2010 +0000 @@ -1568,8 +1568,9 @@ and where in the glyph matrix we currently are (glyph row and hpos). produce_glyphs fills in output fields of *IT with information such as the pixel width and height of a character, and maybe output actual glyphs at - the same time if IT->glyph_row is non-null. See the explanation of - struct display_iterator in dispextern.h for an overview. + the same time if IT->glyph_row is non-null. For an overview, see + the explanation in dispextern.h, before the definition of the + display_element_type enumeration. produce_glyphs also stores the result of glyph width, ascent etc. computations in *IT.
--- a/test/ChangeLog Thu Feb 18 21:54:17 2010 +0000 +++ b/test/ChangeLog Sun Feb 21 21:56:15 2010 +0000 @@ -1,3 +1,16 @@ +2010-02-19 Ulf Jasper <ulf.jasper@web.de> + + * icalendar-testsuite.el + (icalendar-testsuite--run-function-tests): Added new tests. + (icalendar-testsuite--test-diarytime-to-isotime): Added another + testcase. + (icalendar-testsuite--test-convert-ordinary-to-ical): New. + (icalendar-testsuite--test-convert-weekly-to-ical): New. + (icalendar-testsuite--test-convert-yearly-to-ical): New. + (icalendar-testsuite--test-convert-block-to-ical): New. + (icalendar-testsuite--test-convert-cyclic-to-ical): New. + (icalendar-testsuite--test-convert-anniversary-to-ical): New. + 2010-01-18 Juanma Barranquero <lekktu@gmail.com> * cedet/semantic-tests.el (semanticdb-test-gnu-global)
--- a/test/icalendar-testsuite.el Thu Feb 18 21:54:17 2010 +0000 +++ b/test/icalendar-testsuite.el Sun Feb 21 21:56:15 2010 +0000 @@ -52,6 +52,12 @@ (icalendar-testsuite--test-datestring-to-isodate) (icalendar-testsuite--test-datetime-to-diary-date) (icalendar-testsuite--test-diarytime-to-isotime) + (icalendar-testsuite--test-convert-ordinary-to-ical) + (icalendar-testsuite--test-convert-weekly-to-ical) + (icalendar-testsuite--test-convert-yearly-to-ical) + (icalendar-testsuite--test-convert-block-to-ical) + (icalendar-testsuite--test-convert-cyclic-to-ical) + (icalendar-testsuite--test-convert-anniversary-to-ical) (icalendar-testsuite--test-calendar-style) (icalendar-testsuite--test-create-uid) (icalendar-testsuite--test-parse-vtimezone)) @@ -213,6 +219,12 @@ (defun icalendar-testsuite--test-diarytime-to-isotime () "Test method for `icalendar--diarytime-to-isotime'." + (assert (string= (icalendar--diarytime-to-isotime "01:15" "") + "T011500")) + (assert (string= (icalendar--diarytime-to-isotime "1:15" "") + "T011500")) + (assert (string= (icalendar--diarytime-to-isotime "0:01" "") + "T000100")) (assert (string= (icalendar--diarytime-to-isotime "0100" "") "T010000")) (assert (string= (icalendar--diarytime-to-isotime "0100" "am") @@ -236,6 +248,106 @@ (assert (string= (icalendar--diarytime-to-isotime "1259" "pm") "T125900"))) +(defun icalendar-testsuite--test-convert-ordinary-to-ical () + "Test method for `icalendar--convert-ordinary-to-ical'." + (let* ((calendar-date-style 'iso) + result) + ;; without time + (setq result (icalendar--convert-ordinary-to-ical "&?" "2010 2 15 subject")) + (assert (= 2 (length result))) + (assert (string= "\nDTSTART;VALUE=DATE:20100215\nDTEND;VALUE=DATE:20100216" + (car result))) + (assert (string= "subject" (cadr result))) + + ;; with time + (setq result (icalendar--convert-ordinary-to-ical + "&?" "&2010 2 15 12:34-23:45 s")) + (assert (= 2 (length result))) + (assert (string= (concat "\nDTSTART;VALUE=DATE-TIME:20100215T123400" + "\nDTEND;VALUE=DATE-TIME:20100215T234500") + (car result))) + (assert (string= "s" (cadr result))) + + ;; with time, again -- test bug#5549 + (setq result (icalendar--convert-ordinary-to-ical + "x?" "x2010 2 15 0:34-1:45 s")) + (assert (= 2 (length result))) + (assert (string= (concat "\nDTSTART;VALUE=DATE-TIME:20100215T003400" + "\nDTEND;VALUE=DATE-TIME:20100215T014500") + (car result))) + (assert (string= "s" (cadr result))))) + +(defun icalendar-testsuite--test-convert-weekly-to-ical () + "Test method for `icalendar--convert-weekly-to-ical'." + (let* ((calendar-date-style 'iso) + result + (calendar-day-name-array + ["Sunday" "Monday" "Tuesday" "Wednesday" "Thursday" "Friday" + "Saturday"])) + (setq result (icalendar--convert-weekly-to-ical "" "Monday 8:30 subject")) + (assert (= 2 (length result))) + (assert (string= (concat "\nDTSTART;VALUE=DATE-TIME:20050103T083000" + "\nDTEND;VALUE=DATE-TIME:20050103T093000" + "\nRRULE:FREQ=WEEKLY;INTERVAL=1;BYDAY=MO") + (car result))) + (assert (string= "subject" (cadr result))))) + +(defun icalendar-testsuite--test-convert-yearly-to-ical () + "Test method for `icalendar--convert-yearly-to-ical'." + (let* ((calendar-date-style 'iso) + result + (calendar-month-name-array + ["January" "February" "March" "April" "May" "June" "July" "August" + "September" "October" "November" "December"])) + (setq result (icalendar--convert-yearly-to-ical "" "May 1 Tag der Arbeit")) + (assert (= 2 (length result))) + (assert (string= (concat + "\nDTSTART;VALUE=DATE:19000501" + "\nDTEND;VALUE=DATE:19000502" + "\nRRULE:FREQ=YEARLY;INTERVAL=1;BYMONTH=5;BYMONTHDAY=1") + (car result))) + (assert (string= "Tag der Arbeit" (cadr result))))) + +(defun icalendar-testsuite--test-convert-block-to-ical () + "Test method for `icalendar--convert-block-to-ical'." + (let* ((calendar-date-style 'iso) + result) + (setq result (icalendar--convert-block-to-ical + "" "%%(diary-block 2004 7 19 2004 8 27) Sommerferien")) + (assert (= 2 (length result))) + (assert (string= (concat + "\nDTSTART;VALUE=DATE:20040719" + "\nDTEND;VALUE=DATE:20040828") + (car result))) + (assert (string= "Sommerferien" (cadr result))))) + +(defun icalendar-testsuite--test-convert-cyclic-to-ical () + "Test method for `icalendar--convert-cyclic-to-ical'." + (let* ((calendar-date-style 'iso) + result) + (setq result (icalendar--convert-block-to-ical + "" "%%(diary-block 2004 7 19 2004 8 27) Sommerferien")) + (assert (= 2 (length result))) + (assert (string= (concat + "\nDTSTART;VALUE=DATE:20040719" + "\nDTEND;VALUE=DATE:20040828") + (car result))) + (assert (string= "Sommerferien" (cadr result))))) + +(defun icalendar-testsuite--test-convert-anniversary-to-ical () + "Test method for `icalendar--convert-anniversary-to-ical'." + (let* ((calendar-date-style 'iso) + result) + (setq result (icalendar--convert-anniversary-to-ical + "" "%%(diary-anniversary 1964 6 30) g")) + (assert (= 2 (length result))) + (assert (string= (concat + "\nDTSTART;VALUE=DATE:19640630" + "\nDTEND;VALUE=DATE:19640701" + "\nRRULE:FREQ=YEARLY;INTERVAL=1;BYMONTH=06;BYMONTHDAY=30") + (car result))) + (assert (string= "g" (cadr result))))) + (defun icalendar-testsuite--test-calendar-style () "Test method for `icalendar--date-style'." (dolist (calendar-date-style '(iso american european))