------------------------------------------------------------ revno: 115157 fixes bug: http://debbugs.gnu.org/14748 author: era eriksson committer: Glenn Morris branch nick: trunk timestamp: Wed 2013-11-20 00:52:15 -0800 message: * doc/misc/ses.texi (Quick Tutorial): New chapter. (The Basics, Formulas): Copyedits. (Resizing, Printer functions): Add index entries. diff: === modified file 'doc/misc/ChangeLog' --- doc/misc/ChangeLog 2013-11-17 07:51:24 +0000 +++ doc/misc/ChangeLog 2013-11-20 08:52:15 +0000 @@ -1,3 +1,9 @@ +2013-11-20 era eriksson + + * ses.texi (Quick Tutorial): New chapter. (Bug#14748) + (The Basics, Formulas): Copyedits. + (Resizing, Printer functions): Add index entries. + 2013-11-17 Jay Belanger * calc.texi (Customizing Calc): Mention new variable === modified file 'doc/misc/ses.texi' --- doc/misc/ses.texi 2013-07-25 07:10:56 +0000 +++ doc/misc/ses.texi 2013-11-20 08:52:15 +0000 @@ -66,6 +66,7 @@ @menu * Sales Pitch:: Why use @acronym{SES}? +* Quick Tutorial:: A quick introduction * The Basics:: Basic spreadsheet commands * Advanced Features:: Want to know more? * For Gurus:: Want to know @emph{even more}? @@ -98,6 +99,95 @@ @c =================================================================== +@node Quick Tutorial +@chapter Quick Tutorial +@cindex introduction +@cindex tutorial + +If you want to get started quickly and think that you know what to +expect from a simple spreadsheet, this chapter may be all that you +need. + +First, visit a new file with the @file{.ses} extension. +Emacs presents you with an empty spreadsheet containing a single cell. + +Begin by inserting a headline: @kbd{"Income"@key{RET}}. The double +quotes indicate that this is a text cell. (Notice that Emacs +automatically inserts the closing quotation mark.) + +To insert your first income value, you must first resize the +spreadsheet. Press @key{TAB} to add a new cell and navigate back up +to it. Enter a number, such as @samp{2.23}. Then proceed to add a +few more income entries, e.g.: + +@example +@group +A + Income + 2.23 + 0.02 + 15.76 + -4.00 +@end group +@end example + +To add up the values, enter a Lisp expression: + +@example +(+ A2 A3 A4 A5) +@end example + +Perhaps you want to add a cell to the right of cell A4 to explain +why you have a negative entry. Pressing @kbd{TAB} in that cell +adds an entire new column @samp{B}, where you can add such a note. + +The column is fairly narrow by default, but pressing @kbd{w} allows +you to resize it as needed. Make it 20 characters wide. You can +now add descriptive legends for all the entries, e.g.: + +@example +@group +A B + Income + 2.23 Consulting fee + 0.02 Informed opinion + 15.76 Lemonade stand + -4 Loan to Joe + 14.01 Total +@end group +@end example + +By default, the labels in column B are right-justified. To change +that, you can enter a printer function for the whole column, using +e.g., @kbd{M-p ("%s")}. You can override a column's printer function +in any individual cell using @kbd{p}. + +If Joe pays back his loan, you might blank that entry; e.g., by +positioning the cursor in cell A5 and pressing @kbd{C-d} twice. +If you do that, the total cell will display @samp{######}. That is +because the regular @code{+} operator does not handle a range that +contains some empty cells. Instead of emptying the cell, you could +enter a literal @samp{0}, or delete the entire row using @kbd{C-k}. +An alternative is to use the special function @code{ses+} instead of +the regular @code{+}: + +@example +(ses+ A2 A3 A4 A5) +@end example + +To make a formula robust against changes in the spreadsheet geometry, +you can use the @code{ses-range} macro to refer to a range of cells by +the end-points, e.g.: + +@example +(apply 'ses+ (ses-range A2 A5)) +@end example + +(The @code{apply} is necessary because @code{ses-range} produces a +@emph{list} of values. This allows for more complex possibilities.) + +@c =================================================================== + @node The Basics @comment node-name, next, previous, up @chapter The Basics @@ -117,6 +207,7 @@ number. Cell B7 is the 2nd column of the 7th row. For very wide spreadsheets, there are two column letters: cell AB7 is the 28th column of the 7th row. Super wide spreadsheets get AAA1, etc. +You move around with the regular Emacs movement commands. @table @kbd @item j @@ -161,13 +252,17 @@ @section Cell formulas @cindex formulas @cindex formulas, entering +@cindex values +@cindex cell values +@cindex editing cells @findex ses-read-cell @findex ses-read-symbol @findex ses-edit-cell @findex ses-recalculate-cell @findex ses-recalculate-all -To enter a number into the current cell, just start typing: +To insert a value into a cell, simply type a numeric expression, +@samp{"double-quoted text"}, or a Lisp expression. @table @kbd @item 0..9 @@ -213,6 +308,13 @@ @node Resizing @section Resizing the spreadsheet @cindex resizing spreadsheets +@cindex dimensions +@cindex row, adding or removing +@cindex column, adding or removing +@cindex adding rows or columns +@cindex inserting rows or columns +@cindex removing rows or columns +@cindex deleting rows or columns @findex ses-insert-row @findex ses-insert-column @findex ses-delete-row @@ -269,6 +371,8 @@ @node Printer functions @section Printer functions @cindex printer functions +@cindex cell formatting +@cindex formatting cells @findex ses-read-cell-printer @findex ses-read-column-printer @findex ses-read-default-printer ------------------------------------------------------------ revno: 115156 fixes bug: http://debbugs.gnu.org/14748 author: era eriksson committer: Glenn Morris branch nick: trunk timestamp: Wed 2013-11-20 00:16:20 -0800 message: * lisp/ses.el (ses-mode): Doc fix. diff: === modified file 'lisp/ChangeLog' --- lisp/ChangeLog 2013-11-20 02:44:38 +0000 +++ lisp/ChangeLog 2013-11-20 08:16:20 +0000 @@ -1,3 +1,7 @@ +2013-11-20 era eriksson + + * ses.el (ses-mode): Doc fix. (Bug#14748) + 2013-11-20 Leo Liu * window.el (display-buffer-alist): Doc fix. (Bug#13594) === modified file 'lisp/ses.el' --- lisp/ses.el 2013-08-10 15:17:29 +0000 +++ lisp/ses.el 2013-11-20 08:16:20 +0000 @@ -1886,13 +1886,39 @@ ;;;###autoload (defun ses-mode () "Major mode for Simple Emacs Spreadsheet. -See \"ses-example.ses\" (in `data-directory') for more info. - -Key definitions: + +When you invoke SES in a new buffer, it is divided into cells +that you can enter data into. You can navigate the cells with +the arrow keys and add more cells with the tab key. The contents +of these cells can be numbers, text, or Lisp expressions. (To +enter text, enclose it in double quotes.) + +In an expression, you can use cell coordinates to refer to the +contents of another cell. For example, you can sum a range of +cells with `(+ A1 A2 A3)'. There are specialized functions like +`ses+' (addition for ranges with empty cells), `ses-average' (for +performing calculations on cells), and `ses-range' and `ses-select' +\(for extracting ranges of cells). + +Each cell also has a print function that controls how it is +displayed. + +Each SES buffer is divided into a print area and a data area. +Normally, you can simply use SES to look at and manipulate the print +area, and let SES manage the data area outside the visible region. + +See \"ses-example.ses\" (in `data-directory') for an example +spreadsheet, and the Info node `(ses)Top.' + +In the following, note the separate keymaps for cell editing mode +and print mode specifications. Key definitions: + \\{ses-mode-map} -These key definitions are active only in the print area (the visible part): +These key definitions are active only in the print area (the visible +part): \\{ses-mode-print-map} -These are active only in the minibuffer, when entering or editing a formula: +These are active only in the minibuffer, when entering or editing a +formula: \\{ses-mode-edit-map}" (interactive) (unless (and (boundp 'ses--deferred-narrow) ------------------------------------------------------------ revno: 115155 author: Dave Goldberg committer: Katsumi Yamaoka branch nick: trunk timestamp: Wed 2013-11-20 04:25:37 +0000 message: lisp/gnus/message.el (message-beginning-of-line): Use beginning-of-visual-line when visual-line-mode is turned on diff: === modified file 'lisp/gnus/ChangeLog' --- lisp/gnus/ChangeLog 2013-11-15 00:07:54 +0000 +++ lisp/gnus/ChangeLog 2013-11-20 04:25:37 +0000 @@ -1,3 +1,8 @@ +2013-11-20 Dave Goldberg + + * message.el (message-beginning-of-line): + Use beginning-of-visual-line when visual-line-mode is turned on. + 2013-11-15 Jan Tatarik * gnus-icalendar.el (gnus-icalendar-event->gnus-calendar) === modified file 'lisp/gnus/message.el' --- lisp/gnus/message.el 2013-09-17 09:24:02 +0000 +++ lisp/gnus/message.el 2013-11-20 04:25:37 +0000 @@ -6271,6 +6271,9 @@ :link '(custom-manual "(message)Movement") :type 'boolean) +(defvar visual-line-mode) +(declare-function beginning-of-visual-line "simple" (&optional n)) + (defun message-beginning-of-line (&optional n) "Move point to beginning of header value or to beginning of line. The prefix argument N is passed directly to `beginning-of-line'. @@ -6297,7 +6300,9 @@ (goto-char (if (and eoh (or (< eoh here) (= bol here))) eoh bol))) - (beginning-of-line n))) + (if (and (boundp 'visual-line-mode) visual-line-mode) + (beginning-of-visual-line n) + (beginning-of-line n)))) (defun message-buffer-name (type &optional to group) "Return a new (unique) buffer name based on TYPE and TO." ------------------------------------------------------------ revno: 115154 committer: Xue Fuqiao branch nick: trunk timestamp: Wed 2013-11-20 10:52:35 +0800 message: Remove a FIXME. diff: === modified file 'doc/lispref/files.texi' --- doc/lispref/files.texi 2013-11-19 09:47:02 +0000 +++ doc/lispref/files.texi 2013-11-20 02:52:35 +0000 @@ -1663,8 +1663,6 @@ permissions. @end defun -@c FIXME: The return value is decimal? Octal? We should explain it -@c further. --xfq @defun default-file-modes This function returns the default file permissions, as an integer. @end defun ------------------------------------------------------------ revno: 115153 fixes bug: http://debbugs.gnu.org/13594 committer: Leo Liu branch nick: trunk timestamp: Wed 2013-11-20 10:44:38 +0800 message: * doc/lispref/windows.texi (Choosing Window): Mention `no-display-ok'. * etc/NEWS: Mention new display action alist entry `no-display-ok'. (Bug#13594) * lisp/window.el (display-buffer-alist): Doc fix. (Bug#13594) diff: === modified file 'doc/lispref/ChangeLog' --- doc/lispref/ChangeLog 2013-11-19 09:47:02 +0000 +++ doc/lispref/ChangeLog 2013-11-20 02:44:38 +0000 @@ -1,3 +1,7 @@ +2013-11-20 Leo Liu + + * windows.texi (Choosing Window): Mention `no-display-ok'. (Bug#13594) + 2013-11-19 Xue Fuqiao * os.texi (File Notifications): Add an index. === modified file 'doc/lispref/windows.texi' --- doc/lispref/windows.texi 2013-08-05 11:37:47 +0000 +++ doc/lispref/windows.texi 2013-11-20 02:44:38 +0000 @@ -1842,7 +1842,10 @@ @noindent Each action function is called in turn, passing the buffer as the first argument and the combined action alist as the second argument, -until one of the functions returns non-@code{nil}. +until one of the functions returns non-@code{nil}. The caller can +pass @code{(no-display-ok . t)} as an element of the action alist to +indicate its readiness to handle the case of not displaying the +buffer. The argument @var{action} can also have a non-@code{nil}, non-list value. This has the special meaning that the buffer should be === modified file 'etc/ChangeLog' --- etc/ChangeLog 2013-11-18 02:27:12 +0000 +++ etc/ChangeLog 2013-11-20 02:44:38 +0000 @@ -1,3 +1,8 @@ +2013-11-20 Leo Liu + + * NEWS: Mention new display action alist entry `no-display-ok'. + (Bug#13594) + 2013-11-18 Leo Liu * NEWS: Mention new features for Octave mode. === modified file 'etc/NEWS' --- etc/NEWS 2013-11-19 02:26:34 +0000 +++ etc/NEWS 2013-11-20 02:44:38 +0000 @@ -1800,6 +1800,10 @@ *** New option `switch-to-buffer-preserve-window-point' to restore a window's point when switching buffers. +*** New display action alist entry `no-display-ok' to indicate the +caller of `display-buffer' is ready to handle the case of not +displaying the buffer. + *** New display action alist entries `window-height' and `window-width' specify the size of new windows created by `display-buffer'. === modified file 'lisp/ChangeLog' --- lisp/ChangeLog 2013-11-19 20:23:53 +0000 +++ lisp/ChangeLog 2013-11-20 02:44:38 +0000 @@ -1,3 +1,7 @@ +2013-11-20 Leo Liu + + * window.el (display-buffer-alist): Doc fix. (Bug#13594) + 2013-11-19 Dan Nicolaescu * vc/vc-git.el (vc-git-dir-extra-headers): Add headers === modified file 'lisp/window.el' --- lisp/window.el 2013-11-19 02:34:04 +0000 +++ lisp/window.el 2013-11-20 02:44:38 +0000 @@ -5355,15 +5355,17 @@ ACTION is a cons cell (FUNCTION . ALIST), where FUNCTION is a function or a list of functions. Each such function should accept two arguments: a buffer to display and an alist of the - same form as ALIST. If (no-display-ok . t) is in ALIST, the - caller is prepared for the case of not displaying the buffer - and FUNCTION can safely return a non-window value to suppress - displaying. See `display-buffer' for details. + same form as ALIST. See `display-buffer' for details. `display-buffer' scans this alist until it either finds a matching regular expression or the function specified by a -condition returns non-nil. In any of these cases, it adds the -associated action to the list of actions it will try." +condition returns non-nil. It can pass (no-display-ok . t) in +its action alist to indicate readiness for the case of not +displaying the buffer and FUNCTION can safely return a non-window +value to suppress displaying. + +In any of these cases, it adds the associated action to the list +of actions it will try." :type `(alist :key-type (choice :tag "Condition" regexp ------------------------------------------------------------ revno: 115152 committer: Glenn Morris branch nick: trunk timestamp: Tue 2013-11-19 20:50:37 -0500 message: * make-dist: Distribute build-aux/msys-to-w32. diff: === modified file 'ChangeLog' --- ChangeLog 2013-11-20 01:48:50 +0000 +++ ChangeLog 2013-11-20 01:50:37 +0000 @@ -1,3 +1,7 @@ +2013-11-20 Glenn Morris + + * make-dist: Distribute build-aux/msys-to-w32. + 2013-11-20 Dani Moncayo * build-aux/msys-to-w32: New file. === modified file 'build-aux/msys-to-w32' (properties changed: -x to +x) === modified file 'make-dist' --- make-dist 2013-11-12 02:50:28 +0000 +++ make-dist 2013-11-20 01:50:37 +0000 @@ -353,7 +353,7 @@ echo "Making links to \`build-aux'" (cd build-aux - ln compile config.guess config.sub depcomp ../${tempdir}/build-aux + ln compile config.guess config.sub depcomp msys-to-w32 ../${tempdir}/build-aux ln install-sh missing move-if-change update-subdirs ../${tempdir}/build-aux) echo "Making links to \`build-aux/snippet'" ------------------------------------------------------------ revno: 115151 author: Dani Moncayo committer: Glenn Morris branch nick: trunk timestamp: Tue 2013-11-19 20:48:50 -0500 message: * Makefile.in (msys_to_w32, msys_lisppath_to_w32): Remove. (msys_w32prefix_subst): Rename from msys_prefix_subst. Operate on w32prefixpattern. (epaths-force-w32): Use build-aux/msys-to-w32. * build-aux/msys-to-w32: New file. diff: === modified file 'ChangeLog' --- ChangeLog 2013-11-17 03:58:30 +0000 +++ ChangeLog 2013-11-20 01:48:50 +0000 @@ -1,3 +1,11 @@ +2013-11-20 Dani Moncayo + + * build-aux/msys-to-w32: New file. + * Makefile.in (msys_to_w32, msys_lisppath_to_w32): Remove. + (msys_w32prefix_subst): Rename from msys_prefix_subst. + Operate on w32prefixpattern. + (epaths-force-w32): Use build-aux/msys-to-w32. + 2013-11-17 Paul Eggert * configure.ac (DEBUGGER_SEES_C_MACROS): Remove. === modified file 'Makefile.in' --- Makefile.in 2013-11-13 08:04:57 +0000 +++ Makefile.in 2013-11-20 01:48:50 +0000 @@ -317,22 +317,9 @@ -e 's;\(#.*PATH_DOC\).*$$;\1 "${etcdocdir}";') && \ ${srcdir}/build-aux/move-if-change epaths.h.$$$$ src/epaths.h -# Convert MSYS-style /x/foo or Windows-style x:\foo file names -# into x:/foo that Windows can grok. -msys_to_w32=sed -e 's,\\\\,/,g' -e 's,^/\([A-Za-z]\)/,\1:/,' - -# Transform directory search path and its components. Original can -# be MSYS or Windows style. Set path separator to ";", directory -# separator to "/" and transform MSYS-style "/c/" to "c:/". -# Remove empty path components and escape semicolons. -msys_lisppath_to_w32=sed -e 's,\\\\,/,g' \ - -e 's,\(^\|[:;]\)\([A-Za-z]\):/,\1/\2/,g' \ - -e 's/:/;/g' -e 's,\(^\|;\)/\([A-Za-z]\)/,\1\2:/,g' \ - -e 's/;\+/;/g' -e 's/^;//' -e 's/;$$//' -e 's/;/\\\\;/g' - -# Replace "${prefix}" with '%emacs_dir%' (which expands to install +# Replace "${w32prefix}" with '%emacs_dir%' (which expands to install # directory at runtime). -msys_prefix_subst=sed -e 's!\(^\|;\)'"$${prefixpattern}"'\([;/]\|$$\)!\1%emacs_dir%\2!g' +msys_w32prefix_subst=sed -e 's!\(^\|;\)'"$${w32prefixpattern}"'\([;/]\|$$\)!\1%emacs_dir%\2!g' # Quote Sed special characters (except backslash and newline) with # a double backslash. @@ -340,22 +327,21 @@ # The w32 build needs a slightly different editing, and it uses # nt/epaths.nt as the template. +# # Use the value of ${locallisppath} supplied by `configure', # to support the --enable-locallisppath argument. # -# When building with MinGW inside the MSYS tree, 'pwd' produces directories -# relative to the root of the MSYS tree, e.g. '/home/user/foo' instead of -# '/d/MSYS/home/user/foo'. If such a value of srcdir is written to -# src/epaths.h, that causes temacs to fail, because, being a MinGW -# program that knows nothing of MSYS root substitution, it cannot find -# the data directory. "pwd -W" produces Windows-style 'd:/foo/bar' -# absolute directory names, so we use it here to countermand that lossage. +# In this case, the paths written to 'src/epaths.h' must be in native +# MS-Windows format (e.g. 'c:/foo/bar'), because temacs is a MinGW +# program that doesn't support MSYS-style paths (e.g. '/c/foo/bar' or +# '/foo/bar'). epaths-force-w32: FRC - @(w32srcdir=`cd "${srcdir}" && pwd -W` ; \ - prefixpattern=`echo '${prefix}' | ${msys_to_w32} | ${msys_sed_sh_escape}` ; \ - locallisppath=`echo '${locallisppath}' | ${msys_lisppath_to_w32} | ${msys_prefix_subst}` ; \ + @(w32srcdir=`${srcdir}/build-aux/msys-to-w32 "${srcdir}"`; \ + w32prefix=`${srcdir}/build-aux/msys-to-w32 "${prefix}" N`; \ + w32prefixpattern=`echo "${w32prefix}" | ${msys_sed_sh_escape}` ; \ + w32locallisppath=`${srcdir}/build-aux/msys-to-w32 "${locallisppath}" N ":" "\\;" | ${msys_w32prefix_subst}` ; \ sed < ${srcdir}/nt/epaths.nt > epaths.h.$$$$ \ - -e 's;\(#.*PATH_SITELOADSEARCH\).*$$;\1 "'"$${locallisppath}"'";' \ + -e 's;\(#.*PATH_SITELOADSEARCH\).*$$;\1 "'"$${w32locallisppath}"'";' \ -e '/^.*#/s/@VER@/${version}/g' \ -e '/^.*#/s/@CFG@/${configuration}/g' \ -e "/^.*#/s|@SRC@|$${w32srcdir}|g") && \ === added file 'build-aux/msys-to-w32' --- build-aux/msys-to-w32 1970-01-01 00:00:00 +0000 +++ build-aux/msys-to-w32 2013-11-20 01:48:50 +0000 @@ -0,0 +1,165 @@ +#!/bin/sh +# Take a list of MSYS-compatible paths and convert them to native +# MS-Windows format. +# Status is zero if successful, nonzero otherwise. + +# Copyright (C) 2013 Free Software Foundation, Inc. + +# This program is free software: you can redistribute it and/or modify +# it under the terms of the GNU General Public License as published by +# the Free Software Foundation, either version 3 of the License, or +# (at your option) any later version. + +# This program is distributed in the hope that it will be useful, +# but WITHOUT ANY WARRANTY; without even the implied warranty of +# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +# GNU General Public License for more details. + +# You should have received a copy of the GNU General Public License +# along with this program. If not, see . + +# Take only the basename from the full pathname +me=${0//*\//} + +usage="usage: ${me} PATHLIST [MUSTEXIST] [SEPARATOR [SEPARATOR2]]" + +help="$usage + or: ${me} OPTION + +Convert MSYS-compatible paths to MS-Windows native format. + +PATHLIST should be a list of paths separated by SEPARATOR. This list +will be written to the standard output after performing the following +transformations: +1. Discard empty paths. +2. Replace backslashes with forward slashes. +3. Replace two consecutive slashes with single ones. +4. Translate to Windows-native format those paths that are not in such + format already. The translated paths will not end with a slash, + except for root directories (e.g. 'c:/' or 'c:/foo'). +5. Escape with backslashes every ocurrence of SEPARATOR2 within the paths. +6. Concatenate the translated paths with SEPARATOR2. + +If MUSTEXIST is 'Y' or not supplied, then each path in PATHLIST must +exist. Otherwise, only some part of each path is required to exist +(the deepest existing subpath will be translated and the remainder +concatenated to the translation). + +If SEPARATOR is not supplied, PATHLIST will be regarded as a single +path. + +If SEPARATOR2 is not supplied, it will take the same value as +SEPARATOR. + +Options: + --help display this help and exit + +Report bugs to ." + +for arg +do + case $arg in + --help | --hel | --he | --h) + exec echo "$help" ;; + --) + shift + break ;; + -*) + echo "${me}: invalid option: $arg" >&2 + exit 1 ;; + *) + break ;; + esac +done + +{ test $# -ge 1 && test $# -le 4; } || +{ echo "${me}: $usage" >&2; exit 1; } + +# Arguments +pathlist="$1" +mustexist="${2:-Y}" +separator="$3" +separator2="${4:-${separator}}" + +# Split pathlist into its path components +if test -n "$separator" +then + IFS=${separator} patharray=( $pathlist ) +else + patharray=( "$pathlist" ) +fi + +w32pathlist="" + +for p in "${patharray[@]}" +do + # Skip empty paths + test "$p" = "" && continue + + # Replace '\' with '/' and '//' with '/' + p="${p//\\//}" + p="${p//\/\///}" + + if test -d "$p" + then + # The path exists, so just translate it + w32p=`cd "$p" && pwd -W` + else + # The path does not exists. So, try to guess the + # Windows-native translation, by looking for the deepest + # existing directory in this path, and then translating the + # existing part and concatenating the remainder. + + test "${mustexist}" = "Y" && + { echo "${me}: invalid path: $p" >&2; exit 1; } + + p1=$p + IFS=/ pcomponents=( $p ) + + for (( i=${#pcomponents[@]}-1 ; i>=0 ; i-- )) + do + + if test "${pcomponents[i]}" = "" + then + # The path component is empty. This can only mean + # that the path starts with "/" and all components + # have been stripped out already. So in this case we + # want to test with the MSYS root directory + p1="/" + else + p1="${p1%/}" + p1="${p1%${pcomponents[i]}}" + fi + + if test -d "${p1}" + then + + # Existing path found + + # Translate the existing part and concatenate the + # remainder (ensuring that only one slash is used in + # the join, and no trailing slash is left) + w32p1=`cd "${p1}" && pwd -W` + remainder="${p#${p1}}" + remainder="${remainder#/}" + remainder="${remainder%/}" + w32p="${w32p1%/}/${remainder}" + + break + fi + + done + + # If no existing directory was found, error out + test -e "${p1}" || + { echo "${me}: invalid path: ${p}" >&2; exit 1; } + fi + + # Concatenate the translated path to the translated pathlist + test "${w32pathlist}" = "" || w32pathlist="${w32pathlist}${separator2}" + w32pathlist="${w32pathlist}${w32p//${separator2}/\\${separator2}}" + +done + +# Write the translated pathlist to the standard output +printf "${w32pathlist}" ------------------------------------------------------------ revno: 115150 committer: Dan Nicolaescu branch nick: trunk timestamp: Tue 2013-11-19 15:23:53 -0500 message: * vc/vc-git.el (vc-git-dir-extra-headers): Add headers when rebase or bisect are in progress. diff: === modified file 'lisp/ChangeLog' --- lisp/ChangeLog 2013-11-19 09:47:02 +0000 +++ lisp/ChangeLog 2013-11-19 20:23:53 +0000 @@ -1,3 +1,8 @@ +2013-11-19 Dan Nicolaescu + + * vc/vc-git.el (vc-git-dir-extra-headers): Add headers + when rebase or bisect are in progress. + 2013-11-19 Xue Fuqiao * filenotify.el (file-notify-add-watch): Doc fix. === modified file 'lisp/vc/vc-git.el' --- lisp/vc/vc-git.el 2013-10-01 15:34:14 +0000 +++ lisp/vc/vc-git.el 2013-11-19 20:23:53 +0000 @@ -559,6 +559,11 @@ (propertize remote-url 'face 'font-lock-variable-name-face))) "\n" + ;; For now just a heading, key bindings can be added later for various bisect actions + (when (file-exists-p (expand-file-name ".git/BISECT_START" (vc-git-root _dir))) + (propertize "Bisect : in progress\n" 'face 'font-lock-warning-face)) + (when (file-exists-p (expand-file-name ".git/rebase-apply" (vc-git-root _dir))) + (propertize "Rebase : in progress\n" 'face 'font-lock-warning-face)) (if stash (concat (propertize "Stash :\n" 'face 'font-lock-type-face ------------------------------------------------------------ revno: 115149 committer: Xue Fuqiao branch nick: trunk timestamp: Tue 2013-11-19 17:47:02 +0800 message: Doc fixes. * lisp/filenotify.el (file-notify-add-watch): Refine doc string. * doc/lispref/os.texi (File Notifications): Add an index. * doc/lispref/loading.texi (Loading): Add an cross-reference. diff: === modified file 'doc/lispref/ChangeLog' --- doc/lispref/ChangeLog 2013-11-18 22:53:47 +0000 +++ doc/lispref/ChangeLog 2013-11-19 09:47:02 +0000 @@ -1,3 +1,9 @@ +2013-11-19 Xue Fuqiao + + * os.texi (File Notifications): Add an index. + + * loading.texi (Loading): Add an cross-reference. + 2013-11-18 Xue Fuqiao * os.texi (Session Management, Desktop Notifications): Add some === modified file 'doc/lispref/files.texi' --- doc/lispref/files.texi 2013-10-23 17:20:09 +0000 +++ doc/lispref/files.texi 2013-11-19 09:47:02 +0000 @@ -1663,6 +1663,8 @@ permissions. @end defun +@c FIXME: The return value is decimal? Octal? We should explain it +@c further. --xfq @defun default-file-modes This function returns the default file permissions, as an integer. @end defun === modified file 'doc/lispref/loading.texi' --- doc/lispref/loading.texi 2013-11-14 08:38:50 +0000 +++ doc/lispref/loading.texi 2013-11-19 09:47:02 +0000 @@ -29,6 +29,8 @@ way.) Most often, the forms are function definitions and variable definitions. +For on-demand loading of external libraries, @pxref{Dynamic Libraries}. + @menu * How Programs Do Loading:: The @code{load} function and others. * Load Suffixes:: Details about the suffixes that @code{load} tries. === modified file 'doc/lispref/os.texi' --- doc/lispref/os.texi 2013-11-18 22:53:47 +0000 +++ doc/lispref/os.texi 2013-11-19 09:47:02 +0000 @@ -2526,6 +2526,7 @@ @node File Notifications @section Notifications on File Changes @cindex file notifications +@cindex watch, for filesystem events Several operating systems support watching of filesystems for changes of files. If configured properly, Emacs links a respective library === modified file 'lisp/ChangeLog' --- lisp/ChangeLog 2013-11-19 08:59:53 +0000 +++ lisp/ChangeLog 2013-11-19 09:47:02 +0000 @@ -1,3 +1,7 @@ +2013-11-19 Xue Fuqiao + + * filenotify.el (file-notify-add-watch): Doc fix. + 2013-11-19 Leo Liu * obsolete/rcompile.el: Mark obsolete. === modified file 'lisp/filenotify.el' --- lisp/filenotify.el 2013-08-10 15:17:29 +0000 +++ lisp/filenotify.el 2013-11-19 09:47:02 +0000 @@ -207,7 +207,7 @@ permissions or modification time If FILE is a directory, 'change' watches for file creation or -deletion in that directory. +deletion in that directory. This does not work recursively. When any event happens, Emacs will call the CALLBACK function passing it a single argument EVENT, which is of the form ------------------------------------------------------------ revno: 115148 committer: Leo Liu branch nick: trunk timestamp: Tue 2013-11-19 16:59:53 +0800 message: * obsolete/rcompile.el: Mark obsolete. diff: === modified file 'lisp/ChangeLog' --- lisp/ChangeLog 2013-11-19 02:34:04 +0000 +++ lisp/ChangeLog 2013-11-19 08:59:53 +0000 @@ -1,5 +1,7 @@ 2013-11-19 Leo Liu + * obsolete/rcompile.el: Mark obsolete. + * progmodes/compile.el (compilation-start) (compilation-goto-locus, compilation-find-file): Pass no-display-ok and handle nil value from display-buffer. === renamed file 'lisp/net/rcompile.el' => 'lisp/obsolete/rcompile.el' --- lisp/net/rcompile.el 2013-01-01 09:11:05 +0000 +++ lisp/obsolete/rcompile.el 2013-11-19 08:59:53 +0000 @@ -6,6 +6,7 @@ ;; Maintainer: FSF ;; Created: 1993 Oct 6 ;; Keywords: tools, processes +;; Obsolete-since: 24.4 ;; This file is part of GNU Emacs.