Now on revision 108950. ------------------------------------------------------------ revno: 108950 fixes bug(s): http://debbugs.gnu.org/11772 committer: Chong Yidong branch nick: trunk timestamp: Sun 2012-07-08 14:09:21 +0800 message: Do not steal primary selection on mark deactivation. * lisp/simple.el (deactivate-mark): Do not set the primary selection if another program has acquired it. diff: === modified file 'lisp/ChangeLog' --- lisp/ChangeLog 2012-07-07 23:16:19 +0000 +++ lisp/ChangeLog 2012-07-08 06:09:21 +0000 @@ -1,3 +1,8 @@ +2012-07-08 Chong Yidong + + * simple.el (deactivate-mark): Do not set the primary selection + if another program has acquired it (Bug#11772). + 2012-07-07 Kevin Ryde * woman.el (woman-strings): Fix double-quote handling (Bug#1151). === modified file 'lisp/simple.el' --- lisp/simple.el 2012-07-07 09:33:28 +0000 +++ lisp/simple.el 2012-07-08 06:09:21 +0000 @@ -3863,7 +3863,11 @@ (cond (saved-region-selection (x-set-selection 'PRIMARY saved-region-selection) (setq saved-region-selection nil)) - ((/= (region-beginning) (region-end)) + ;; If another program has acquired the selection, region + ;; deactivation should not clobber it (Bug#11772). + ((and (/= (region-beginning) (region-end)) + (or (x-selection-owner-p 'PRIMARY) + (null (x-selection-exists-p 'PRIMARY)))) (x-set-selection 'PRIMARY (buffer-substring-no-properties (region-beginning) ------------------------------------------------------------ revno: 108949 committer: Juanma Barranquero branch nick: trunk timestamp: Sun 2012-07-08 02:48:27 +0200 message: etc/tutorials/TUTORIAL.es: Sync with changes in revno:108936. diff: === modified file 'etc/ChangeLog' --- etc/ChangeLog 2012-07-07 10:34:37 +0000 +++ etc/ChangeLog 2012-07-08 00:48:27 +0000 @@ -1,3 +1,7 @@ +2012-07-08 Juanma Barranquero + + * tutorials/TUTORIAL.es: Sync with changes in revno:108936. + 2012-07-07 Michael Witten (tiny change) * tutorials/TUTORIAL: Copyedits (Bug#11689). === modified file 'etc/tutorials/TUTORIAL.es' --- etc/tutorials/TUTORIAL.es 2012-02-06 00:22:11 +0000 +++ etc/tutorials/TUTORIAL.es 2012-07-08 00:48:27 +0000 @@ -222,13 +222,13 @@ valor, hace que el comando actúe de forma diferente. C-v y M-v son otro tipo de excepción. Cuando se les da un argumento, -desplazan la pantalla arriba o abajo esa cantidad de líneas, en vez de +desplazan el texto arriba o abajo esa cantidad de líneas, en vez de una pantalla completa. Por ejemplo, C-u 8 C-v desplaza la pantalla 8 líneas. >> Pruebe tecleando C-u 8 C-v ahora. -Esto debió haber desplazado la pantalla hacia arriba 8 líneas. Si +Esto debería haber desplazado el texto hacia arriba 8 líneas. Si quisiera desplazarla hacia abajo de nuevo, puede dar un argumento a M-v. @@ -299,9 +299,7 @@ >> Escriba C-x 1 y vea que la ventana de listado de documentación desaparece. -Este comando es diferente a los otros que ha aprendido en que éste -consiste de dos caracteres. Comienza con el carácter CONTROL-x. Hay -toda una serie de comandos que comienzan con CONTROL-x; muchos de +Hay toda una serie de comandos que comienzan con CONTROL-x; muchos de ellos tienen que ver con ventanas, archivos, buffers y cosas relacionadas. Estos comandos son de una longitud de dos, tres o cuatro caracteres. @@ -554,12 +552,8 @@ Esto copia el texto dentro de Emacs al archivo. La primera vez que haga esto, Emacs renombrará el archivo original con un nuevo nombre para que éste no se pierda. El nuevo nombre se hace agregando "~" al -final del nombre del archivo original. - -Cuando guardar haya terminado, Emacs mostrará el nombre del archivo -escrito. Deberá guardar frecuentemente, para que no pierda mucho -trabajo si el sistema falla (vea la sección "AUTO GUARDADO", más -adelante). +final del nombre del archivo original. Cuando guardar haya terminado, +Emacs mostrará el nombre del archivo escrito. >> Teclee C-x C-s TUTORIAL.es Esto guardará el tutorial en un archivo llamado TUTORIAL.es, y @@ -567,10 +561,10 @@ Puede encontrar un archivo existente, para verlo o editarlo. También puede hacerlo con un archivo que no exista. Ésta es la forma de crear -un archivo en Emacs: encuentre el archivo, que comenzará vacío, luego -comience a insertar el texto para ese archivo. Cuando invoque +un archivo en Emacs: encuentre el archivo, que está inicialmente vacío, +luego comience a insertar el texto para ese archivo. Cuando invoque "guardar" el archivo, Emacs creará realmente el archivo con el texto -que ha insertado. De ahí en adelante, puede considerarse estar +que ha insertado. De ahí en adelante, puede considerar que está editando un archivo existente. @@ -631,8 +625,8 @@ dentro de Emacs en ese buffer del archivo. La creación o edición del segundo buffer de archivo no afecta al primero. Esto es muy útil, pero también significa que necesita una forma conveniente para guardar -el archivo del primer buffer. Sería una molestia tener que volver a -éste con C-x C-f para guardarlo con C-x C-s. Así tenemos +el archivo del primer buffer. Tener que volver a él para guardarlo +con C-x C-s sería una molestia. Por tanto, tenemos C-x s Guardar algunos buffers @@ -667,7 +661,7 @@ especial para cambiar de Emacs a otra aplicación. Puede hacerlo con el ratón, o mediante el gestor de ventanas. Sin embargo, si está usando una terminal que solo puede mostrar una aplicación a la vez, -tendrá que "suspender" Emacs para poder acceder a otros programas. +tendrá que "suspender" Emacs para poder acceder a otras aplicaciones. C-z es el comando para salir de Emacs *temporalmente*: para que pueda regresar a la misma sesión de Emacs después. Cuando Emacs está @@ -677,8 +671,9 @@ comando `fg' o con `%emacs'. El momento para usar C-x C-c es cuando está listo para salir del -sistema. Es además el paso correcto para salir de un Emacs llamado -bajo programas de gestión de correo y otras utilidades diversas. +sistema. Es además el paso correcto para salir de un Emacs invocado +para editar algo rápidamente, como por ejemplo desde un programa de +gestión de correo. Existen muchos comandos C-x. He aquí la lista de los que ya ha aprendido: @@ -694,14 +689,14 @@ Los comandos eXtendidos por nombre son comandos que se utilizan aún con menos frecuencia, o únicamente en ciertos modos. Un ejemplo es el -comando replace-string, el cual substituye globalmente una cadena de -caracteres por otra. Cuando teclea M-x, Emacs le pregunta al final de -la pantalla con M-x y debe escribir el nombre del comando; en este -caso "replace-string". Solo teclee "repl s" y Emacs completará -el nombre. ( es la tecla del tabulador, que habitualmenté está -situada sobre la tecla de bloquear mayúsculas o la de shift, en el -lado izquierdo del teclado.) Para aceptar el comando y ejecutarlo, -pulse . +comando replace-string, el cual substituye una cadena de caracteres +por otra en todo el buffer. Cuando teclea M-x, Emacs le pregunta al +final de la pantalla con M-x y debe escribir el nombre del comando; en +este caso "replace-string". Solo teclee "repl s" y Emacs +completará el nombre. ( es la tecla del tabulador, que +habitualmenté está situada sobre la tecla de bloquear mayúsculas o la +de shift, en el lado izquierdo del teclado.) Para aceptar el comando +y ejecutarlo, pulse . El comando replace-string requiere dos argumentos: la cadena de caracteres a reemplazar, y la cadena de caracteres para reemplazarla. @@ -711,8 +706,8 @@ A continuación escriba M-x repl scambiadoalterado. - Note cómo esta línea ha cambiado: ha substituido la palabra - c-a-m-b-i-a-d-o por "alterado" en cada ocurrencia, después de la + Note cómo ha cambiado la línea: ha substituido la palabra + "cambiado" por "alterado" en cada ocurrencia, después de la posición inicial del cursor. @@ -804,7 +799,9 @@ Para ver la documentación del modo mayor actual, teclee C-h m. ->> Use C-l C-l para traer esta línea en la parte superior de la +>> Mueva el cursor a la línea siguiente a la actual. + +>> Use C-l C-l para traer esta línea a la parte superior de la pantalla. >> Teclee C-h m, para ver como el modo de Texto difiere del modo @@ -1102,9 +1099,9 @@ >> Teclee C-h a file . Esto muestra en otra ventana una lista de todos los comandos M-x con -la palabra "file" en sus nombres. Verá comandos de caracteres como -C-x C-f listados además de los nombres de los comandos -correspondientes tales como find-file. +la palabra "file" en sus nombres. Verá los comandos de caracteres +listados junto a los nombres de los comandos correspondientes (por +ejemplo, C-x C-f junto a find-file). >> Teclee C-M-v para desplazar la ventana de ayuda. Haga esto unas cuantas veces. ------------------------------------------------------------ revno: 108948 committer: Juanma Barranquero branch nick: trunk timestamp: Sun 2012-07-08 01:16:19 +0200 message: Fix ChangeLog typos. diff: === modified file 'ChangeLog' --- ChangeLog 2012-07-07 20:32:41 +0000 +++ ChangeLog 2012-07-07 23:16:19 +0000 @@ -821,7 +821,7 @@ 2011-12-17 Paul Eggert Port HAVE_PTHREAD configuration to MirBSD 10 (Bug#10201). - * configure.in (HAVE_PTHREAD): Check for pthread_atfork if linking + * configure.in (HAVE_PTHREAD): Check for pthread_atfork if linking to gmalloc.c. This should prevent a MirBSD 10 build failure reported by Nelson H. F. Beebe in . @@ -4901,7 +4901,7 @@ 2005-06-08 Steven Tamm - * configure.in: Support Darwin/MacOSX on Intel + * configure.in: Support Darwin/MacOSX on Intel. 2005-06-06 Jan Djärv @@ -5386,7 +5386,7 @@ 2003-01-19 Jan Djärv - * configure.in: Add --with-gtk, --with-x-toolkit=gtk + * configure.in: Add --with-gtk, --with-x-toolkit=gtk. * INSTALL (DETAILED BUILDING AND INSTALLATION): Add text about GTK. @@ -5399,7 +5399,7 @@ * configure.in: New option, --enable-carbon-app, to specify that the application should be installed * Makefile.in (install-arch-dep): On Mac OS X, install the - Emacs.app application if carbon-app is enabled + Emacs.app application if carbon-app is enabled. 2003-01-06 Dave Love @@ -8392,7 +8392,7 @@ 1994-09-21 Richard Stallman - * configure.in (i[345]86-sequent-ptx*): Handle + * configure.in (i[345]86-sequent-ptx*): Handle. 1994-09-20 Richard Stallman @@ -8404,7 +8404,7 @@ 1994-09-18 Karl Heuer - * Makefile.in (install-arch-indep): Copy DOC-*, not DOC* + * Makefile.in (install-arch-indep): Copy DOC-*, not DOC*. * configure.in: Add AC_AIX. Add checks to set HAVE_STRUCT_UTIMBUF, HAVE_TIMEVAL, HAVE_SELECT. === modified file 'lisp/ChangeLog' --- lisp/ChangeLog 2012-07-07 10:10:47 +0000 +++ lisp/ChangeLog 2012-07-07 23:16:19 +0000 @@ -1544,7 +1544,7 @@ * vc/vc-rcs.el (vc-rcs-rcs2log-program): New. (vc-rcs-update-changelog): Use it. - * emacs-lisp/authors.el (authors-fixed-entries): Remove vcdiff + * emacs-lisp/authors.el (authors-fixed-entries): Remove vcdiff. * vc/vc-sccs.el (vc-sccs-write-revision): New function. (vc-sccs-workfile-unchanged-p): Use vc-sccs-write-revision. @@ -1561,7 +1561,7 @@ 2012-06-05 Stefan Monnier - * emacs-list/cust-print.el: Move to obsolete. + * emacs-lisp/cust-print.el: Move to obsolete. * emacs-lisp/macroexp.el (macroexpand-all-1): Tolerate errors during compiler-macro expansion. @@ -2199,9 +2199,9 @@ 2012-05-18 Agustín Martín Domingo - * flyspell.el (flyspell-check-pre-word-p, flyspell-check-word-p) - (flyspell-debug-signal-word-checked): Protect delay handling for - otherchars against empty otherchars. + * textmodes/flyspell.el (flyspell-check-pre-word-p) + (flyspell-check-word-p, flyspell-debug-signal-word-checked): + Protect delay handling for otherchars against empty otherchars. 2012-05-18 Stefan Monnier @@ -2253,9 +2253,9 @@ 2012-05-16 Agustín Martín Domingo - * flyspell.el (flyspell-check-pre-word-p, flyspell-check-word-p) - (flyspell-debug-signal-word-checked): Delay for otherchars as for - normal word components. + * textmodes/flyspell.el (flyspell-check-pre-word-p) + (flyspell-check-word-p, flyspell-debug-signal-word-checked): + Delay for otherchars as for normal word components. 2012-05-16 Stefan Monnier @@ -2527,7 +2527,7 @@ 2012-05-08 Glenn Morris - * lisp/language/burmese.el, language/cham.el, language/czech.el: + * language/burmese.el, language/cham.el, language/czech.el: * language/english.el, language/georgian.el, language/greek.el: * language/japanese.el, language/khmer.el, language/korean.el: * language/lao.el, language/misc-lang.el, language/romanian.el: @@ -2959,7 +2959,7 @@ (verilog-pretty-expr): Don't line up assignment operations to the test and increment in if and for loops (verilog-extended-complete-re, verilog-complete-reg): Change so - that DPI inport functions don't look like fuction declarations + that DPI inport functions don't look like fuction declarations. 2012-05-03 Kenichi Handa @@ -3292,17 +3292,17 @@ Sync with soap-client repository. Support SOAP simpleType (Bug#10331). - * soap-client.el (soap-resolve-references-for-sequence-type) + * net/soap-client.el (soap-resolve-references-for-sequence-type) (soap-resolve-references-for-array-type): Hack to prevent self references, see Bug#9. (soap-parse-envelope): Report the contents of the 'detail' node when receiving a fault reply. (soap-parse-envelope): Report the contents of the entire 'detail' node. - * soap-inspect.el (soap-sample-value-for-simple-type) + * net/soap-inspect.el (soap-sample-value-for-simple-type) (soap-inspect-simple-type): New function. - * soap-client.el (soap-simple-type): New struct. + * net/soap-client.el (soap-simple-type): New struct. (soap-default-xsd-types, soap-default-soapenc-types) (soap-decode-basic-type, soap-encode-basic-type): support unsignedInt and double basic types. @@ -3310,7 +3310,7 @@ (soap-parse-simple-type, soap-encode-simple-type): New function. (soap-parse-schema): Parse xsd:simpleType declarations. - * soap-client.el (soap-default-xsd-types) + * net/soap-client.el (soap-default-xsd-types) (soap-default-soapenc-types): Add integer, byte and anyURI types. (soap-parse-complex-type-complex-content): Use `soap-wk2l' to find the local name of "soapenc:Array". @@ -3419,21 +3419,21 @@ Preserve ispell session localwords when switching back to original buffer. - * ispell.el (ispell-buffer-session-localwords): New buffer-local - variable to hold buffer session localwords. + * textmodes/ispell.el (ispell-buffer-session-localwords): + New buffer-local variable to hold buffer session localwords. (ispell-kill-ispell): add option 'clear to delete session localwords. (ispell-command-loop, ispell-change-dictionary) (ispell-buffer-local-words): Preserve session localwords when needed. - * flyspell.el (flyspell-process-localwords, flyspell-do-correct): - Preserve session localwords when needed. + * textmodes/flyspell.el (flyspell-process-localwords) + (flyspell-do-correct): Preserve session localwords when needed. 2012-04-23 Agustín Martín Domingo - * ispell.el (ispell-insert-word) Remove unneeded function using - obsolete `translation-table-for-input'. + * textmodes/ispell.el (ispell-insert-word) Remove unneeded function + using obsolete `translation-table-for-input'. (ispell-word, ispell-process-line, ispell-complete-word): Use plain `insert' instead of removed `ispell-insert-word'. @@ -3863,11 +3863,11 @@ 2012-04-12 Agustín Martín Domingo - * ispell.el (ispell-set-spellchecker-params): Post-process + * textmodes/ispell.el (ispell-set-spellchecker-params): Post-process `ispell-dictionary-alist' to use [:alpha:] and utf-8 if possible. (ispell-dictionary-base-alist): Revert to original XEmacs friendly version for default. [:alpha:] will be added in - `ispell-set-spellchecker-params' if needed + `ispell-set-spellchecker-params' if needed. 2012-04-16 Chong Yidong @@ -4380,7 +4380,7 @@ 2012-03-30 Agustín Martín Domingo - * ispell.el (ispell-get-extended-character-mode): + * textmodes/ispell.el (ispell-get-extended-character-mode): Disable extended-char-mode for hunspell. hunspell does not support it and treats ~word as ordinary words in pipe mode. @@ -15603,7 +15603,7 @@ * vc/log-view.el: * vc/smerge-mode.el: * textmodes/bibtex-style.el: - * textmodes/css.el: + * textmodes/css-mode.el: * startup.el: * uniquify.el: * minibuffer.el: === modified file 'nt/ChangeLog' --- nt/ChangeLog 2012-07-07 20:26:48 +0000 +++ nt/ChangeLog 2012-07-07 23:16:19 +0000 @@ -2,13 +2,13 @@ * config.nt (HAVE_STRCASECMP, HAVE_STRNCASECMP): Remove. -2012-07-06 Juanma Barranquero +2012-07-06 Juanma Barranquero Eli Zaretskii * config.nt: Complete rework to bring it in sync with autogen/config.in. All Windows-specific code moved to src/s/ms-w32.h. -2012-07-04 Juanma Barranquero +2012-07-04 Juanma Barranquero Eli Zaretskii * configure.bat (enablechecking): Enable checks through src/config.h, === modified file 'src/ChangeLog' --- src/ChangeLog 2012-07-07 21:39:45 +0000 +++ src/ChangeLog 2012-07-07 23:16:19 +0000 @@ -136,14 +136,14 @@ Fix marker debugging code. * marker.c (byte_char_debug_check): Do not perform the check if buffer is not multibyte. - (buf_charpos_to_bytepos, buf_bytepos_to_charpos): Call - byte_char_debug_check with correct arguments. + (buf_charpos_to_bytepos, buf_bytepos_to_charpos): + Call byte_char_debug_check with correct arguments. 2012-07-06 Dmitry Antipov Compile marker debugging code only if ENABLE_CHECKING is defined. - * marker.c (byte_char_debug_check, count_markers): Use - only if ENABLE_CHECKING is defined. + * marker.c (byte_char_debug_check, count_markers): + Use only if ENABLE_CHECKING is defined. (byte_debug_flag): Remove. (CONSIDER, buf_charpos_to_bytepos, buf_bytepos_to_charpos): Always call byte_char_debug_check if ENABLE_CHECKING is defined. @@ -250,8 +250,8 @@ (make_widget_for_menu_item, xg_make_tool_item): Use gtk_box_new followed by gtk_box_set_homogeneous (Bug#11768). (xg_update_menu_item): Use GTK_IS_BOX (Bug#11768). - (update_theme_scrollbar_width, xg_create_scroll_bar): Use - gtk_scrollbar_new (Bug#11768). + (update_theme_scrollbar_width, xg_create_scroll_bar): + Use gtk_scrollbar_new (Bug#11768). (xg_event_is_for_scrollbar): Use Gdk Device functions for HAVE_GTK3. (is_box_type): New function (Bug#11768). (xg_tool_item_stale_p): Call is_box_type. @@ -2790,7 +2790,7 @@ Fix compilation with -DGLYPH_DEBUG=1 on MS-Windows. * w32term.c [GLYPH_DEBUG]: Add prototype for x_check_font. - (x_check_font) [GLYPH_DEBUG]: New function, copied from xterm.c + (x_check_font) [GLYPH_DEBUG]: New function, copied from xterm.c. * w32fns.c (unwind_create_frame) [GLYPH_DEBUG]: Fix broken reference to image_cache->refcount. @@ -7722,7 +7722,7 @@ (EmacsToolbar): Implements NSToolbarDelegate on OSX >= 10.6. * nsselect.m (ns_string_from_pasteboard): Don't use deprecated methods - cString and lossyCString on OSX >= 10.4 + cString and lossyCString on OSX >= 10.4. * nsmenu.m (fillWithWidgetValue): Don't use deprecated method sizeToFit on OSX >= 10.2. ------------------------------------------------------------ revno: 108947 committer: Andreas Schwab branch nick: emacs timestamp: Sat 2012-07-07 23:39:45 +0200 message: * xdisp.c (display_line): Avoid warning about implicit declaration of FRAME_FONT. diff: === modified file 'src/ChangeLog' --- src/ChangeLog 2012-07-07 21:39:23 +0000 +++ src/ChangeLog 2012-07-07 21:39:45 +0000 @@ -1,5 +1,8 @@ 2012-07-07 Andreas Schwab + * xdisp.c (display_line): Avoid warning about implicit declaration + of FRAME_FONT. + * frame.c (get_frame_param): Define only if HAVE_WINDOW_SYSTEM. * lisp.h: Remove empty conditional. === modified file 'src/xdisp.c' --- src/xdisp.c 2012-07-07 16:36:02 +0000 +++ src/xdisp.c 2012-07-07 21:39:45 +0000 @@ -19770,6 +19770,7 @@ produce_special_glyphs (it, IT_TRUNCATION); } } +#ifdef HAVE_WINDOW_SYSTEM else { int stretch_width = it->last_visible_x - it->current_x; @@ -19793,6 +19794,7 @@ } produce_special_glyphs (it, IT_TRUNCATION); } +#endif } else if (IT_OVERFLOW_NEWLINE_INTO_FRINGE (it)) { ------------------------------------------------------------ revno: 108946 committer: Andreas Schwab branch nick: emacs timestamp: Sat 2012-07-07 23:39:23 +0200 message: * frame.c (get_frame_param): Define only if HAVE_WINDOW_SYSTEM. diff: === modified file 'src/ChangeLog' --- src/ChangeLog 2012-07-07 21:39:23 +0000 +++ src/ChangeLog 2012-07-07 21:39:23 +0000 @@ -1,5 +1,7 @@ 2012-07-07 Andreas Schwab + * frame.c (get_frame_param): Define only if HAVE_WINDOW_SYSTEM. + * lisp.h: Remove empty conditional. 2012-07-07 Paul Eggert === modified file 'src/frame.c' --- src/frame.c 2012-07-07 19:23:41 +0000 +++ src/frame.c 2012-07-07 21:39:23 +0000 @@ -1932,6 +1932,7 @@ /* Return the value of frame parameter PROP in frame FRAME. */ +#ifdef HAVE_WINDOW_SYSTEM #if !HAVE_NS static #endif @@ -1945,6 +1946,7 @@ return tem; return Fcdr (tem); } +#endif /* Return the buffer-predicate of the selected frame. */ ------------------------------------------------------------ revno: 108945 committer: Andreas Schwab branch nick: emacs timestamp: Sat 2012-07-07 23:39:23 +0200 message: * lisp.h: Remove empty conditional. diff: === modified file 'src/ChangeLog' --- src/ChangeLog 2012-07-07 19:33:28 +0000 +++ src/ChangeLog 2012-07-07 21:39:23 +0000 @@ -1,3 +1,7 @@ +2012-07-07 Andreas Schwab + + * lisp.h: Remove empty conditional. + 2012-07-07 Paul Eggert * lread.c (load_path_check): Now static. === modified file 'src/lisp.h' --- src/lisp.h 2012-07-06 05:07:44 +0000 +++ src/lisp.h 2012-07-07 21:39:23 +0000 @@ -2958,8 +2958,6 @@ extern void syms_of_indent (void); /* Defined in frame.c */ -#ifdef HAVE_WINDOW_SYSTEM -#endif /* HAVE_WINDOW_SYSTEM */ extern Lisp_Object Qonly; extern Lisp_Object Qvisible; extern void store_frame_param (struct frame *, Lisp_Object, Lisp_Object); ------------------------------------------------------------ revno: 108944 committer: Andreas Schwab branch nick: emacs timestamp: Sat 2012-07-07 22:32:41 +0200 message: * configure.in (WARN_CFLAGS): Add -Wno-deprecated-declarations. diff: === modified file 'ChangeLog' --- ChangeLog 2012-07-07 19:23:41 +0000 +++ ChangeLog 2012-07-07 20:32:41 +0000 @@ -1,3 +1,7 @@ +2012-07-07 Andreas Schwab + + * configure.in (WARN_CFLAGS): Add -Wno-deprecated-declarations. + 2012-07-07 Paul Eggert Improve static checking when configured --with-ns. === modified file 'configure.in' --- configure.in 2012-07-07 19:23:41 +0000 +++ configure.in 2012-07-07 20:32:41 +0000 @@ -697,6 +697,7 @@ gl_WARN_ADD([-Wno-switch]) # Too many warnings for now gl_WARN_ADD([-Wno-unused-parameter]) # Too many warnings for now gl_WARN_ADD([-Wno-format-nonliteral]) + gl_WARN_ADD([-Wno-deprecated-declarations]) # triggered by libpng # In spite of excluding -Wlogical-op above, it is enabled, as of # gcc 4.5.0 20090517. ------------------------------------------------------------ revno: 108943 committer: Juanma Barranquero branch nick: trunk timestamp: Sat 2012-07-07 22:26:48 +0200 message: nt/config.nt (HAVE_STRCASECMP, HAVE_STRNCASECMP): Remove. diff: === modified file 'nt/ChangeLog' --- nt/ChangeLog 2012-07-06 17:19:33 +0000 +++ nt/ChangeLog 2012-07-07 20:26:48 +0000 @@ -1,4 +1,8 @@ -2012-07-04 Juanma Barranquero +2012-07-07 Juanma Barranquero + + * config.nt (HAVE_STRCASECMP, HAVE_STRNCASECMP): Remove. + +2012-07-06 Juanma Barranquero Eli Zaretskii * config.nt: Complete rework to bring it in sync with autogen/config.in. === modified file 'nt/config.nt' --- nt/config.nt 2012-07-06 17:19:33 +0000 +++ nt/config.nt 2012-07-07 20:26:48 +0000 @@ -750,9 +750,6 @@ /* Define to 1 if you have the header file. */ #undef HAVE_STDLIB_H -/* Define to 1 if you have the `strcasecmp' function. */ -#define HAVE_STRCASECMP 1 - /* Define to 1 if you have the `strerror' function. */ #define HAVE_STRERROR 1 @@ -762,9 +759,6 @@ /* Define to 1 if you have the header file. */ #undef HAVE_STRING_H -/* Define to 1 if you have the `strncasecmp' function. */ -#define HAVE_STRNCASECMP 1 - /* Define to 1 if you have the `strsignal' function. */ #undef HAVE_STRSIGNAL ------------------------------------------------------------ revno: 108942 committer: Paul Eggert branch nick: trunk timestamp: Sat 2012-07-07 12:33:28 -0700 message: * lread.c (load_path_check): Now static. diff: === modified file 'src/ChangeLog' --- src/ChangeLog 2012-07-07 19:23:41 +0000 +++ src/ChangeLog 2012-07-07 19:33:28 +0000 @@ -1,5 +1,7 @@ 2012-07-07 Paul Eggert + * lread.c (load_path_check): Now static. + Fix some minor --with-ns problems found by static checking. * frame.c (Ftool_bar_pixel_width) [!FRAME_TOOLBAR_WIDTH]: (x_set_font) [!HAVE_X_WINDOWS]: === modified file 'src/lread.c' --- src/lread.c 2012-07-07 18:06:32 +0000 +++ src/lread.c 2012-07-07 19:33:28 +0000 @@ -4061,7 +4061,7 @@ /* Check that the elements of Vload_path exist. */ -void +static void load_path_check (void) { Lisp_Object path_tail; ------------------------------------------------------------ revno: 108941 committer: Paul Eggert branch nick: trunk timestamp: Sat 2012-07-07 12:23:41 -0700 message: Improve static checking when configured --with-ns. See Samuel Bronson's remarks in . * configure.in (WARN_CFLAGS): Omit -Wunreachable-code, as it's a no-op with recent GCC and harmful in earlier ones. Omit -Wsync-nand, as it's irrelevant to Emacs and provokes a warning when compiling with ObjC. Always omit -Wunsafe-loop-optimizations, as we don't mind when optimization is being done correctly. Fix some minor --with-ns problems found by static checking. * src/frame.c (Ftool_bar_pixel_width) [!FRAME_TOOLBAR_WIDTH]: (x_set_font) [!HAVE_X_WINDOWS]: * src/image.c (xpm_load_image) [HAVE_NS]: (x_to_xcolors) [!HAVE_X_WINDOWS && !HAVE_NTGUI]: (x_disable_image) [!HAVE_NS && !HAVE_NTGUI]: Remove unused local. (Fx_parse_geometry) [HAVE_NS]: Don't return garbage. (xpm_load_image) [HAVE_NS && !HAVE_XPM]: Remove unused label. * src/image.c (x_create_bitmap_from_file) [HAVE_NS]: (xpm_load_image, xpm_load) [HAVE_NS && !HAVE_XPM]: * src/nsselect.m (symbol_to_nsstring, ns_string_to_pasteboard_internal): * src/xfaces.c (Fx_load_color_file) [!HAVE_X_WINDOWS]: Fix pointer signedness problem. * src/xfaces.c (FRAME_X_FONT_TABLE): * src/xterm.h (FRAME_X_FONT_TABLE): Remove unused, incompatible macros. diff: === modified file 'ChangeLog' --- ChangeLog 2012-07-07 18:16:15 +0000 +++ ChangeLog 2012-07-07 19:23:41 +0000 @@ -1,3 +1,15 @@ +2012-07-07 Paul Eggert + + Improve static checking when configured --with-ns. + See Samuel Bronson's remarks in + . + * configure.in (WARN_CFLAGS): Omit -Wunreachable-code, as it's + a no-op with recent GCC and harmful in earlier ones. + Omit -Wsync-nand, as it's irrelevant to Emacs and provokes a + warning when compiling with ObjC. Always omit + -Wunsafe-loop-optimizations, as we don't mind when optimization is + being done correctly. + 2012-07-07 Glenn Morris * configure.in (BROKEN_SA_RESTART): Doc fix. === modified file 'configure.in' --- configure.in 2012-07-07 18:16:15 +0000 +++ configure.in 2012-07-07 19:23:41 +0000 @@ -662,16 +662,19 @@ nw="$nw -Wsign-conversion" # Too many warnings for now nw="$nw -Woverlength-strings" # Not a problem these days nw="$nw -Wtraditional-conversion" # Too many warnings for now + nw="$nw -Wunreachable-code" # so buggy that it's now silently ignored nw="$nw -Wpadded" # Our structs are not padded - nw="$nw -Wredundant-decls" # We regularly (re)declare getenv etc. + nw="$nw -Wredundant-decls" # we regularly (re)declare functions nw="$nw -Wlogical-op" # any use of fwrite provokes this - nw="$nw -Wformat-nonliteral" # Emacs does this a lot + nw="$nw -Wformat-nonliteral" # we do this a lot nw="$nw -Wvla" # warnings in gettext.h nw="$nw -Wnested-externs" # use of XARGMATCH/verify_function__ nw="$nw -Wswitch-enum" # Too many warnings for now nw="$nw -Wswitch-default" # Too many warnings for now - nw="$nw -Wfloat-equal" # e.g., ftoastr.c - nw="$nw -Winline" # e.g., dispnew.c's inlining of row_equal_p + nw="$nw -Wfloat-equal" # warns about high-quality code + nw="$nw -Winline" # OK to ignore 'inline' + nw="$nw -Wsync-nand" # irrelevant here, and provokes ObjC warning + nw="$nw -Wunsafe-loop-optimizations" # OK to suppress unsafe optimizations # Emacs doesn't care about shadowing; see # . @@ -683,12 +686,6 @@ nw="$nw -Wsuggest-attribute=const" nw="$nw -Wsuggest-attribute=pure" - # Some loops can't be optimized with -O1, - # so remove -Wunsafe-loop-optimizations. - if echo "$CFLAGS" | $EGREP 'O1' 1>/dev/null; then - nw="$nw -Wunsafe-loop-optimizations" - fi - gl_MANYWARN_ALL_GCC([ws]) gl_MANYWARN_COMPLEMENT([ws], [$ws], [$nw]) for w in $ws; do === modified file 'src/ChangeLog' --- src/ChangeLog 2012-07-07 18:06:32 +0000 +++ src/ChangeLog 2012-07-07 19:23:41 +0000 @@ -1,3 +1,22 @@ +2012-07-07 Paul Eggert + + Fix some minor --with-ns problems found by static checking. + * frame.c (Ftool_bar_pixel_width) [!FRAME_TOOLBAR_WIDTH]: + (x_set_font) [!HAVE_X_WINDOWS]: + * image.c (xpm_load_image) [HAVE_NS]: + (x_to_xcolors) [!HAVE_X_WINDOWS && !HAVE_NTGUI]: + (x_disable_image) [!HAVE_NS && !HAVE_NTGUI]: + Remove unused local. + (Fx_parse_geometry) [HAVE_NS]: Don't return garbage. + (xpm_load_image) [HAVE_NS && !HAVE_XPM]: Remove unused label. + * image.c (x_create_bitmap_from_file) [HAVE_NS]: + (xpm_load_image, xpm_load) [HAVE_NS && !HAVE_XPM]: + * nsselect.m (symbol_to_nsstring, ns_string_to_pasteboard_internal): + * xfaces.c (Fx_load_color_file) [!HAVE_X_WINDOWS]: + Fix pointer signedness problem. + * xfaces.c (FRAME_X_FONT_TABLE): + * xterm.h (FRAME_X_FONT_TABLE): Remove unused, incompatible macros. + 2012-07-07 Glenn Morris * lread.c (load_path_check): New function, split from init_lread. === modified file 'src/frame.c' --- src/frame.c 2012-07-05 18:35:48 +0000 +++ src/frame.c 2012-07-07 19:23:41 +0000 @@ -2504,16 +2504,13 @@ used. */) (Lisp_Object frame) { - struct frame *f; - if (NILP (frame)) frame = selected_frame; CHECK_FRAME (frame); - f = XFRAME (frame); #ifdef FRAME_TOOLBAR_WIDTH - if (FRAME_WINDOW_P (f)) - return make_number (FRAME_TOOLBAR_WIDTH (f)); + if (FRAME_WINDOW_P (XFRAME (frame))) + return make_number (FRAME_TOOLBAR_WIDTH (XFRAME (frame))); #endif return make_number (0); } @@ -3158,8 +3155,11 @@ void x_set_font (struct frame *f, Lisp_Object arg, Lisp_Object oldval) { - Lisp_Object font_object, font_param = Qnil; + Lisp_Object font_object; int fontset = -1; +#ifdef HAVE_X_WINDOWS + Lisp_Object font_param = arg; +#endif /* Set the frame parameter back to the old value because we may fail to use ARG as the new parameter value. */ @@ -3170,7 +3170,6 @@ never fail. */ if (STRINGP (arg)) { - font_param = arg; fontset = fs_query_fontset (arg, 0); if (fontset < 0) { @@ -3201,12 +3200,16 @@ error ("Unknown fontset: %s", SDATA (XCAR (arg))); font_object = XCDR (arg); arg = AREF (font_object, FONT_NAME_INDEX); +#ifdef HAVE_X_WINDOWS font_param = Ffont_get (font_object, QCname); +#endif } else if (FONT_OBJECT_P (arg)) { font_object = arg; +#ifdef HAVE_X_WINDOWS font_param = Ffont_get (font_object, QCname); +#endif /* This is to store the XLFD font name in the frame parameter for backward compatibility. We should store the font-object itself in the future. */ @@ -3902,7 +3905,7 @@ (Lisp_Object string) { #ifdef HAVE_NS - call1 (Qns_parse_geometry, string); + return call1 (Qns_parse_geometry, string); #else int geometry, x, y; unsigned int width, height; === modified file 'src/image.c' --- src/image.c 2012-07-05 18:35:48 +0000 +++ src/image.c 2012-07-07 19:23:41 +0000 @@ -323,7 +323,7 @@ dpyinfo->bitmaps[id - 1].depth = 1; dpyinfo->bitmaps[id - 1].height = ns_image_width (bitmap); dpyinfo->bitmaps[id - 1].width = ns_image_height (bitmap); - strcpy (dpyinfo->bitmaps[id - 1].file, SDATA (file)); + strcpy (dpyinfo->bitmaps[id - 1].file, SSDATA (file)); return id; #endif @@ -3964,7 +3964,7 @@ { if (xstrcasecmp (SSDATA (XCDR (specified_color)), "None") == 0) color_val = Qt; - else if (x_defined_color (f, SDATA (XCDR (specified_color)), + else if (x_defined_color (f, SSDATA (XCDR (specified_color)), &cdef, 0)) color_val = make_number (cdef.pixel); } @@ -4039,7 +4039,6 @@ failure: image_error ("Invalid XPM file (%s)", img->spec, Qnil); - error: x_destroy_x_image (ximg); x_destroy_x_image (mask_img); x_clear_image (f, img); @@ -4072,7 +4071,7 @@ return 0; } - contents = slurp_file (SDATA (file), &size); + contents = slurp_file (SSDATA (file), &size); if (contents == NULL) { image_error ("Error loading XPM image `%s'", img->spec, Qnil); @@ -4456,9 +4455,8 @@ p = colors; for (y = 0; y < img->height; ++y) { +#if defined (HAVE_X_WINDOWS) || defined (HAVE_NTGUI) XColor *row = p; - -#if defined (HAVE_X_WINDOWS) || defined (HAVE_NTGUI) for (x = 0; x < img->width; ++x, ++p) p->pixel = GET_PIXEL (ximg, x, y); if (rgb_p) @@ -4741,14 +4739,12 @@ if (n_planes < 2 || cross_disabled_images) { #ifndef HAVE_NTGUI - Display *dpy = FRAME_X_DISPLAY (f); - GC gc; - #ifndef HAVE_NS /* TODO: NS support, however this not needed for toolbars */ #define MaskForeground(f) WHITE_PIX_DEFAULT (f) - gc = XCreateGC (dpy, img->pixmap, 0, NULL); + Display *dpy = FRAME_X_DISPLAY (f); + GC gc = XCreateGC (dpy, img->pixmap, 0, NULL); XSetForeground (dpy, gc, BLACK_PIX_DEFAULT (f)); XDrawLine (dpy, img->pixmap, gc, 0, 0, img->width - 1, img->height - 1); === modified file 'src/nsselect.m' --- src/nsselect.m 2012-02-25 06:41:40 +0000 +++ src/nsselect.m 2012-07-07 19:23:41 +0000 @@ -62,7 +62,7 @@ if (EQ (sym, QPRIMARY)) return NXPrimaryPboard; if (EQ (sym, QSECONDARY)) return NXSecondaryPboard; if (EQ (sym, QTEXT)) return NSStringPboardType; - return [NSString stringWithUTF8String: SDATA (XSYMBOL (sym)->xname)]; + return [NSString stringWithUTF8String: SSDATA (XSYMBOL (sym)->xname)]; } static NSPasteboard * @@ -157,7 +157,7 @@ CHECK_STRING (str); - utfStr = SDATA (str); + utfStr = SSDATA (str); nsStr = [[NSString alloc] initWithBytesNoCopy: utfStr length: SBYTES (str) encoding: NSUTF8StringEncoding @@ -388,7 +388,7 @@ for (rest = Vns_sent_selection_hooks; CONSP (rest); rest = Fcdr (rest)) call3 (Fcar (rest), selection, target_symbol, successful_p); } - + return value; } @@ -443,7 +443,7 @@ if (EQ (selection, Qt)) selection = QSECONDARY; pb = ns_symbol_to_pb (selection); if (pb == nil) return Qnil; - + types = [pb types]; return ([types count] == 0) ? Qnil : Qt; } === modified file 'src/xfaces.c' --- src/xfaces.c 2012-07-06 21:07:46 +0000 +++ src/xfaces.c 2012-07-07 19:23:41 +0000 @@ -233,7 +233,6 @@ #undef FRAME_X_DISPLAY_INFO #define FRAME_X_DISPLAY_INFO FRAME_W32_DISPLAY_INFO #define x_display_info w32_display_info -#define FRAME_X_FONT_TABLE FRAME_W32_FONT_TABLE #define check_x check_w32 #define GCGraphicsExposures 0 #endif /* WINDOWSNT */ @@ -243,7 +242,6 @@ #undef FRAME_X_DISPLAY_INFO #define FRAME_X_DISPLAY_INFO FRAME_NS_DISPLAY_INFO #define x_display_info ns_display_info -#define FRAME_X_FONT_TABLE FRAME_NS_FONT_TABLE #define check_x check_ns #define GCGraphicsExposures 0 #endif /* HAVE_NS */ @@ -6381,7 +6379,7 @@ CHECK_STRING (filename); abspath = Fexpand_file_name (filename, Qnil); - fp = fopen (SDATA (abspath), "rt"); + fp = fopen (SSDATA (abspath), "rt"); if (fp) { char buf[512]; === modified file 'src/xterm.h' --- src/xterm.h 2012-07-03 18:24:42 +0000 +++ src/xterm.h 2012-07-07 19:23:41 +0000 @@ -736,9 +736,6 @@ /* This is the Colormap which frame F uses. */ #define FRAME_X_COLORMAP(f) FRAME_X_DISPLAY_INFO (f)->cmap -/* This is the 'font_info *' which frame F has. */ -#define FRAME_X_FONT_TABLE(f) (FRAME_X_DISPLAY_INFO (f)->font_table) - /* The difference in pixels between the top left corner of the Emacs window (including possible window manager decorations) and FRAME_X_WINDOW (f). */ ------------------------------------------------------------ revno: 108940 committer: Glenn Morris branch nick: trunk timestamp: Sat 2012-07-07 11:16:15 -0700 message: * configure.in (BROKEN_SA_RESTART): Doc fix. * src/sysdep.c, src/s/irix6-5.h: Related comments. diff: === modified file 'ChangeLog' --- ChangeLog 2012-07-07 01:03:46 +0000 +++ ChangeLog 2012-07-07 18:16:15 +0000 @@ -1,5 +1,7 @@ 2012-07-07 Glenn Morris + * configure.in (BROKEN_SA_RESTART): Doc fix. + * configure.in: Rather than checking for things then undef'ing them on some platforms, simply don't check for them. (getwd): Don't check for it on unixware. === modified file 'configure.in' --- configure.in 2012-07-07 01:03:46 +0000 +++ configure.in 2012-07-07 18:16:15 +0000 @@ -3140,9 +3140,11 @@ gnu-kfreebsd) opsysfile="s/gnu-linux.h" ;; hpux11) - dnl SA_RESTART resets the timeout of `select', so don't use it. - AC_DEFINE(BROKEN_SA_RESTART, 1, [Define if SA_RESTART should not - be used.]) + dnl See comments in sysdep.c:sys_signal. + dnl SA_RESTART resets the timeout of `select' on hpux11. + dnl Defining BROKEN_SA_RESTART is not the same as undef'ing SA_RESTART. + AC_DEFINE(BROKEN_SA_RESTART, 1, [Define if SA_RESTART should only + be used in batch mode.]) dnl It works to open the pty's tty in the parent (Emacs), then dnl close and reopen it in the child. AC_DEFINE(USG_SUBTTY_WORKS, 1, [Define for USG systems where it === modified file 'src/s/irix6-5.h' --- src/s/irix6-5.h 2012-06-11 23:17:11 +0000 +++ src/s/irix6-5.h 2012-07-07 18:16:15 +0000 @@ -80,7 +80,7 @@ #define NARROWPROTO 1 -#undef SA_RESTART +#undef SA_RESTART /* not the same as defining BROKEN_SA_RESTART */ #undef TIOCSIGSEND /* defined in usg5-4-common.h */ === modified file 'src/sysdep.c' --- src/sysdep.c 2012-07-07 03:06:00 +0000 +++ src/sysdep.c 2012-07-07 18:16:15 +0000 @@ -1484,9 +1484,10 @@ #if defined (SA_RESTART) /* Emacs mostly works better with restartable system services. If this flag exists, we probably want to turn it on here. - However, on some systems this resets the timeout of `select' - which means that `select' never finishes if it keeps getting signals. - BROKEN_SA_RESTART is defined on those systems. */ + However, on some systems (only hpux11 at present) this resets the + timeout of `select' which means that `select' never finishes if + it keeps getting signals. + We define BROKEN_SA_RESTART on those systems. */ /* It's not clear why the comment above says "mostly works better". --Stef When SYNC_INPUT is set, we don't want SA_RESTART because we need to poll for pending input so we need long-running syscalls to be interrupted ------------------------------------------------------------ revno: 108939 committer: Glenn Morris branch nick: trunk timestamp: Sat 2012-07-07 11:06:32 -0700 message: Try to simplify the initialization of Vload_path * src/lread.c (load_path_check): New function, split from init_lread. (init_lread): Reorganize. Motivation: If EMACSLOADPATH is set, check/warn about that rather than the defaults, which we are not going to use. Hence we can remove the turn_off_warning and WINDOWSNT || HAVE_NS tests. Don't warn if site-lisp directories are missing. If not installed, start from a blank load-path, since PATH_LOADSEARCH refers to the eventual installation directories. diff: === modified file 'src/ChangeLog' --- src/ChangeLog 2012-07-07 16:36:02 +0000 +++ src/ChangeLog 2012-07-07 18:06:32 +0000 @@ -1,3 +1,14 @@ +2012-07-07 Glenn Morris + + * lread.c (load_path_check): New function, split from init_lread. + (init_lread): Reorganize. Motivation: + If EMACSLOADPATH is set, check/warn about that rather than the + defaults, which we are not going to use. Hence we can remove + the turn_off_warning and WINDOWSNT || HAVE_NS tests. + Don't warn if site-lisp directories are missing. + If not installed, start from a blank load-path, since + PATH_LOADSEARCH refers to the eventual installation directories. + 2012-07-07 Eli Zaretskii Support truncation and continuation glyphs on GUI frames, when === modified file 'src/lread.c' --- src/lread.c 2012-07-05 18:35:48 +0000 +++ src/lread.c 2012-07-07 18:06:32 +0000 @@ -4059,60 +4059,83 @@ SET_SYMBOL_FWD (XSYMBOL (sym), (union Lisp_Fwd *)ko_fwd); } +/* Check that the elements of Vload_path exist. */ + +void +load_path_check (void) +{ + Lisp_Object path_tail; + + /* The only elements that might not exist are those from + PATH_LOADSEARCH, EMACSLOADPATH. Anything else is only added if + it exists. */ + for (path_tail = Vload_path; !NILP (path_tail); path_tail = XCDR (path_tail)) + { + Lisp_Object dirfile; + dirfile = Fcar (path_tail); + if (STRINGP (dirfile)) + { + dirfile = Fdirectory_file_name (dirfile); + if (access (SSDATA (dirfile), 0) < 0) + dir_warning ("Warning: Lisp directory `%s' does not exist.\n", + XCAR (path_tail)); + } + } +} + /* Record the value of load-path used at the start of dumping so we can see if the site changed it later during dumping. */ static Lisp_Object dump_path; +/* Compute the default Vload_path, with the following logic: + If CANNOT_DUMP: + use EMACSLOADPATH env-var if set; otherwise use PATH_LOADSEARCH, + prepending PATH_SITELOADSEARCH unless --no-site-lisp. + The remainder is what happens when dumping works: + If purify-flag (ie dumping) just use PATH_DUMPLOADSEARCH. + Otherwise use EMACSLOADPATH if set, else PATH_LOADSEARCH. + + If !initialized, then just set both Vload_path and dump_path. + If initialized, then if Vload_path != dump_path, do nothing. + (Presumably the load-path has already been changed by something. + This can only be from a site-load file during dumping, + or because EMACSLOADPATH is set.) + If Vinstallation_directory is not nil (ie, running uninstalled): + If installation-dir/lisp exists and not already a member, + we must be running uninstalled. Reset the load-path + to just installation-dir/lisp. (The default PATH_LOADSEARCH + refers to the eventual installation directories. Since we + are not yet installed, we should not use them, even if they exist.) + If installation-dir/lisp does not exist, just add dump_path at the + end instead. + Add installation-dir/leim (if exists and not already a member) at the front. + Add installation-dir/site-lisp (if !no_site_lisp, and exists + and not already a member) at the front. + If installation-dir != source-dir (ie running an uninstalled, + out-of-tree build) AND install-dir/src/Makefile exists BUT + install-dir/src/Makefile.in does NOT exist (this is a sanity + check), then repeat the above steps for source-dir/lisp, + leim and site-lisp. + Finally, add the site-lisp directories at the front (if !no_site_lisp). +*/ + void init_lread (void) { const char *normal; - int turn_off_warning = 0; - - /* Compute the default Vload-path, with the following logic: - If CANNOT_DUMP, just use PATH_LOADSEARCH, prepending PATH_SITELOADSEARCH - unless --no-site-lisp. - Else if purify-flag (ie dumping) start from PATH_DUMPLOADSEARCH; - otherwise start from PATH_LOADSEARCH. - If !initialized, then just set both Vload_path and dump_path. - If initialized, then if Vload_path != dump_path, do nothing. - (Presumably the load-path has already been changed by something. - This can only (?) be from a site-load file during dumping.) - If Vinstallation_directory is not nil (ie, running uninstalled): - Add installation-dir/lisp (if exists and not already a member), - at the front, and turn off warnings about missing directories - (because we are presumably running uninstalled). - If it does not exist, add dump_path at the end instead. - Add installation-dir/leim (if exists and not already a member) - at the front. - Add installation-dir/site-lisp (if !no_site_lisp, and exists - and not already a member) at the front. - If installation-dir != source-dir (ie running an uninstalled, - out-of-tree build) AND install-dir/src/Makefile exists BUT - install-dir/src/Makefile.in does NOT exist (this is a sanity - check), then repeat the above steps for source-dir/lisp, - leim and site-lisp. - Finally, add the site-lisp directories at the front (if !no_site_lisp). - - We then warn about any of the load-path elements that do not - exist. The only ones that might not exist are those from - PATH_LOADSEARCH, and perhaps dump_path. - - Having done all this, we then throw it all away if purify-flag is - nil (ie, not dumping) and EMACSLOADPATH is set, and just - unconditionally use the latter value instead. - So AFAICS the only net results of all the previous steps will be - possibly to issue some irrelevant warnings. - - FIXME? There's a case for saying that if we are running - uninstalled, the eventual installation directories should not yet - be included in load-path. - */ #ifdef CANNOT_DUMP normal = PATH_LOADSEARCH; - Vload_path = decode_env_path (0, normal); - if (!no_site_lisp) + Vload_path = decode_env_path ("EMACSLOADPATH", normal); + + load_path_check (); + + /* FIXME CANNOT_DUMP platforms should get source-dir/lisp etc added + to their load-path too, AFAICS. I don't think we can tell the + difference between initialized and !initialized in this case, + so we'll have to do it unconditionally when Vinstallation_directory + is non-nil. */ + if (!no_site_lisp && !egetenv ("EMACSLOADPATH")) { Lisp_Object sitelisp; sitelisp = decode_env_path (0, PATH_SITELOADSEARCH); @@ -4120,7 +4143,13 @@ } #else if (NILP (Vpurify_flag)) - normal = PATH_LOADSEARCH; + { + normal = PATH_LOADSEARCH; + /* If the EMACSLOADPATH environment variable is set, use its value. + This doesn't apply if we're dumping. */ + if (egetenv ("EMACSLOADPATH")) + Vload_path = decode_env_path ("EMACSLOADPATH", normal); + } else normal = PATH_DUMPLOADSEARCH; @@ -4129,18 +4158,27 @@ the source directory, instead of the path of the installed elisp libraries. However, if it appears that Vload_path has already been changed from the default that was saved before dumping, don't - change it further. */ + change it further. Changes can only be due to EMACSLOADPATH, or + site-lisp files that were processed during dumping. */ if (initialized) { - if (! NILP (Fequal (dump_path, Vload_path))) + if (NILP (Fequal (dump_path, Vload_path))) + { + /* Do not make any changes, just check the elements exist. */ + /* Note: --no-site-lisp is ignored. + I don't know what to do about this. */ + load_path_check (); + } + else { Vload_path = decode_env_path (0, normal); if (!NILP (Vinstallation_directory)) { Lisp_Object tem, tem1; - /* Add to the path the lisp subdir of the - installation dir, if it exists. */ + /* Add to the path the lisp subdir of the installation + dir, if it exists. Note: in out-of-tree builds, + this directory is empty save for Makefile. */ tem = Fexpand_file_name (build_string ("lisp"), Vinstallation_directory); tem1 = Ffile_exists_p (tem); @@ -4148,8 +4186,11 @@ { if (NILP (Fmember (tem, Vload_path))) { - turn_off_warning = 1; - Vload_path = Fcons (tem, Vload_path); + /* We are running uninstalled. The default load-path + points to the eventual installed lisp, leim + directories. We should not use those now, even + if they exist, so start over from a clean slate. */ + Vload_path = Fcons (tem, Qnil); } } else @@ -4226,10 +4267,13 @@ } /* if Vinstallation_directory */ + /* Check before adding the site-lisp directories. + The install should have created them, but they are not + required, so no need to warn if they are absent. + Or we might be running before installation. */ + load_path_check (); + /* Add the site-lisp directories at the front. */ - /* Note: If the site changed the load-path during dumping, - --no-site-lisp is ignored. I don't know what to do about this. - */ if (!no_site_lisp) { Lisp_Object sitelisp; @@ -4240,58 +4284,22 @@ } else /* !initialized */ { - /* NORMAL refers to the lisp dir in the source directory. */ - /* We used to add ../lisp at the front here, but - that caused trouble because it was copied from dump_path - into Vload_path, above, when Vinstallation_directory was non-nil. - It should be unnecessary. */ + /* NORMAL refers to PATH_DUMPLOADSEARCH, ie the lisp dir in the + source directory. We used to add ../lisp (ie the lisp dir in + the build directory) at the front here, but that caused trouble + because it was copied from dump_path into Vload_path, above, + when Vinstallation_directory was non-nil. It should not be + necessary, since in out of tree builds lisp/ is empty, save + for Makefile. */ Vload_path = decode_env_path (0, normal); dump_path = Vload_path; + /* No point calling load_path_check; load-path only contains essential + elements from the source directory at this point. They cannot + be missing unless something went extremely (and improbably) + wrong, in which case the build will fail in obvious ways. */ } #endif /* CANNOT_DUMP */ -#if (!(defined (WINDOWSNT) || (defined (HAVE_NS)))) - /* When Emacs is invoked over network shares on NT, PATH_LOADSEARCH is - almost never correct, thereby causing a warning to be printed out that - confuses users. Since PATH_LOADSEARCH is always overridden by the - EMACSLOADPATH environment variable below, disable the warning on NT. */ - - /* HAVE_NS also uses EMACSLOADPATH. */ - - /* Warn if dirs in the *standard* path don't exist. */ - if (!turn_off_warning) - { - Lisp_Object path_tail; - - for (path_tail = Vload_path; - !NILP (path_tail); - path_tail = XCDR (path_tail)) - { - Lisp_Object dirfile; - dirfile = Fcar (path_tail); - if (STRINGP (dirfile)) - { - dirfile = Fdirectory_file_name (dirfile); - /* Do we really need to warn about missing site-lisp dirs? - It's true that the installation should have created - them and added subdirs.el, but it's harmless if they - are not there. */ - if (access (SSDATA (dirfile), 0) < 0) - dir_warning ("Warning: Lisp directory `%s' does not exist.\n", - XCAR (path_tail)); - } - } - } -#endif /* !(WINDOWSNT || HAVE_NS) */ - - /* If the EMACSLOADPATH environment variable is set, use its value. - This doesn't apply if we're dumping. */ -#ifndef CANNOT_DUMP - if (NILP (Vpurify_flag) - && egetenv ("EMACSLOADPATH")) -#endif - Vload_path = decode_env_path ("EMACSLOADPATH", normal); - Vvalues = Qnil; load_in_progress = 0; ------------------------------------------------------------ revno: 108938 fixes bug(s): http://debbugs.gnu.org/11832 committer: Eli Zaretskii branch nick: trunk timestamp: Sat 2012-07-07 19:36:02 +0300 message: Fix bug #11832 with truncated lines when fringes are disabled on GUI frames. src/xdisp.c (init_iterator): Get dimensions of truncation and continuation glyphs even if on GUI frames. Adjust it->last_visible_x on GUI frames when the left or right fringes, or both, are absent. (start_display, move_it_in_display_line_to): Handle the case of a GUI frame without a fringe to display continuation or truncation glyphs. (insert_left_trunc_glyphs): Support GUI frames: make sure truncation glyphs overwrite enough glyphs from the current line to have sufficient space in pixels. (display_line): Support truncation and continuation glyphs on GUI frames. If some spare pixels are left on the line after inserting the truncation glyphs, fill that space with a stretch glyph of a suitably computed width. src/term.c (produce_special_glyphs): Call PRODUCE_GLYPHS, not produce_glyphs, to support GUI sessions. diff: === modified file 'src/ChangeLog' --- src/ChangeLog 2012-07-07 03:06:00 +0000 +++ src/ChangeLog 2012-07-07 16:36:02 +0000 @@ -1,3 +1,25 @@ +2012-07-07 Eli Zaretskii + + Support truncation and continuation glyphs on GUI frames, when + fringes are disabled. (Bug#11832) + * xdisp.c (init_iterator): Get dimensions of truncation and + continuation glyphs even if on GUI frames. Adjust + it->last_visible_x on GUI frames when the left or right fringes, + or both, are absent. + (start_display, move_it_in_display_line_to): Handle the case of a + GUI frame without a fringe to display continuation or truncation + glyphs. + (insert_left_trunc_glyphs): Support GUI frames: make sure + truncation glyphs overwrite enough glyphs from the current line to + have sufficient space in pixels. + (display_line): Support truncation and continuation glyphs on GUI + frames. If some spare pixels are left on the line after inserting + the truncation glyphs, fill that space with a stretch glyph of a + suitably computed width. + + * term.c (produce_special_glyphs): Call PRODUCE_GLYPHS, not + produce_glyphs, to support GUI sessions. + 2012-07-07 Paul Eggert * sysdep.c (ULLONG_MAX): Define if not already defined (Bug#11781). === modified file 'src/term.c' --- src/term.c 2012-07-05 18:35:48 +0000 +++ src/term.c 2012-07-07 16:36:02 +0000 @@ -1940,7 +1940,7 @@ temp_it.face_id = GLYPH_FACE (glyph); temp_it.len = CHAR_BYTES (temp_it.c); - produce_glyphs (&temp_it); + PRODUCE_GLYPHS (&temp_it); it->pixel_width = temp_it.pixel_width; it->nglyphs = temp_it.pixel_width; } === modified file 'src/xdisp.c' --- src/xdisp.c 2012-07-05 18:35:48 +0000 +++ src/xdisp.c 2012-07-07 16:36:02 +0000 @@ -2731,30 +2731,27 @@ it->line_wrap = TRUNCATE; /* Get dimensions of truncation and continuation glyphs. These are - displayed as fringe bitmaps under X, so we don't need them for such - frames. */ - if (!FRAME_WINDOW_P (it->f)) - { - if (it->line_wrap == TRUNCATE) - { - /* We will need the truncation glyph. */ - eassert (it->glyph_row == NULL); - produce_special_glyphs (it, IT_TRUNCATION); - it->truncation_pixel_width = it->pixel_width; - } - else - { - /* We will need the continuation glyph. */ - eassert (it->glyph_row == NULL); - produce_special_glyphs (it, IT_CONTINUATION); - it->continuation_pixel_width = it->pixel_width; - } + displayed as fringe bitmaps under X, but we need them for such + frames when the fringes are turned off. */ + if (it->line_wrap == TRUNCATE) + { + /* We will need the truncation glyph. */ + eassert (it->glyph_row == NULL); + produce_special_glyphs (it, IT_TRUNCATION); + it->truncation_pixel_width = it->pixel_width; + } + else + { + /* We will need the continuation glyph. */ + eassert (it->glyph_row == NULL); + produce_special_glyphs (it, IT_CONTINUATION); + it->continuation_pixel_width = it->pixel_width; + } - /* Reset these values to zero because the produce_special_glyphs - above has changed them. */ - it->pixel_width = it->ascent = it->descent = 0; - it->phys_ascent = it->phys_descent = 0; - } + /* Reset these values to zero because the produce_special_glyphs + above has changed them. */ + it->pixel_width = it->ascent = it->descent = 0; + it->phys_ascent = it->phys_descent = 0; /* Set this after getting the dimensions of truncation and continuation glyphs, so that we don't produce glyphs when calling @@ -2783,11 +2780,14 @@ it->last_visible_x = (it->first_visible_x + window_box_width (w, TEXT_AREA)); - /* If we truncate lines, leave room for the truncator glyph(s) at + /* If we truncate lines, leave room for the truncation glyph(s) at the right margin. Otherwise, leave room for the continuation - glyph(s). Truncation and continuation glyphs are not inserted - for window-based redisplay. */ - if (!FRAME_WINDOW_P (it->f)) + glyph(s). Done only if the window has no fringes. Since we + don't know at this point whether there will be any R2L lines in + the window, we reserve space for truncation/continuation glyphs + even if only one of the fringes is absent. */ + if (WINDOW_RIGHT_FRINGE_WIDTH (it->w) == 0 + || (it->bidi_p && WINDOW_LEFT_FRINGE_WIDTH (it->w) == 0)) { if (it->line_wrap == TRUNCATE) it->last_visible_x -= it->truncation_pixel_width; @@ -2923,7 +2923,10 @@ /* Or it fits exactly and we're on a window system frame. */ || (new_x == it->last_visible_x - && FRAME_WINDOW_P (it->f)))) + && FRAME_WINDOW_P (it->f) + && ((it->bidi_p && it->bidi_it.paragraph_dir == R2L) + ? WINDOW_LEFT_FRINGE_WIDTH (it->w) + : WINDOW_RIGHT_FRINGE_WIDTH (it->w))))) { if ((it->current.dpvec_index >= 0 || it->current.overlay_string_index >= 0) @@ -8327,7 +8330,10 @@ /* Or it fits exactly and we're on a window system frame. */ || (new_x == it->last_visible_x - && FRAME_WINDOW_P (it->f)))) + && FRAME_WINDOW_P (it->f) + && ((it->bidi_p && it->bidi_it.paragraph_dir == R2L) + ? WINDOW_LEFT_FRINGE_WIDTH (it->w) + : WINDOW_RIGHT_FRINGE_WIDTH (it->w))))) { if (/* IT->hpos == 0 means the very first glyph doesn't fit on the line, e.g. a wide image. */ @@ -8509,6 +8515,9 @@ && it->current_x >= it->last_visible_x) { if (!FRAME_WINDOW_P (it->f) + || ((it->bidi_p && it->bidi_it.paragraph_dir == R2L) + ? WINDOW_LEFT_FRINGE_WIDTH (it->w) + : WINDOW_RIGHT_FRINGE_WIDTH (it->w)) || IT_OVERFLOW_NEWLINE_INTO_FRINGE (it)) { int at_eob_p = 0; @@ -18203,11 +18212,8 @@ } -/* Insert truncation glyphs at the start of IT->glyph_row. Truncation - glyphs are only inserted for terminal frames since we can't really - win with truncation glyphs when partially visible glyphs are - involved. Which glyphs to insert is determined by - produce_special_glyphs. */ +/* Insert truncation glyphs at the start of IT->glyph_row. Which + glyphs to insert is determined by produce_special_glyphs. */ static void insert_left_trunc_glyphs (struct it *it) @@ -18215,7 +18221,11 @@ struct it truncate_it; struct glyph *from, *end, *to, *toend; - eassert (!FRAME_WINDOW_P (it->f)); + eassert (!FRAME_WINDOW_P (it->f) + || (!it->glyph_row->reversed_p + && WINDOW_LEFT_FRINGE_WIDTH (it->w) == 0) + || (it->glyph_row->reversed_p + && WINDOW_RIGHT_FRINGE_WIDTH (it->w) == 0)); /* Get the truncation glyphs. */ truncate_it = *it; @@ -18230,20 +18240,66 @@ /* Overwrite glyphs from IT with truncation glyphs. */ if (!it->glyph_row->reversed_p) { + short tused = truncate_it.glyph_row->used[TEXT_AREA]; + from = truncate_it.glyph_row->glyphs[TEXT_AREA]; - end = from + truncate_it.glyph_row->used[TEXT_AREA]; + end = from + tused; to = it->glyph_row->glyphs[TEXT_AREA]; toend = to + it->glyph_row->used[TEXT_AREA]; + if (FRAME_WINDOW_P (it->f)) + { + /* On GUI frames, when variable-size fonts are displayed, + the truncation glyphs may need more pixels than the row's + glyphs they overwrite. We overwrite more glyphs to free + enough screen real estate, and enlarge the stretch glyph + on the right (see display_line), if there is one, to + preserve the screen position of the truncation glyphs on + the right. */ + int w = 0; + struct glyph *g = to; + short used; + + while (g < toend && it->glyph_row->x + w < 0) + { + w += g->pixel_width; + ++g; + } + it->glyph_row->x = 0; + w = 0; + while (g < toend && w < it->truncation_pixel_width) + { + w += g->pixel_width; + ++g; + } + if (g - to - tused > 0) + { + memmove (to + tused, g, toend - g); + it->glyph_row->used[TEXT_AREA] -= g - to - tused; + } + used = it->glyph_row->used[TEXT_AREA]; + if (it->glyph_row->truncated_on_right_p + && WINDOW_RIGHT_FRINGE_WIDTH (it->w) == 0 + && it->glyph_row->glyphs[TEXT_AREA][used - 2].type + == STRETCH_GLYPH) + { + int extra = w - it->truncation_pixel_width; + + it->glyph_row->glyphs[TEXT_AREA][used - 2].pixel_width += extra; + } + } while (from < end) *to++ = *from++; /* There may be padding glyphs left over. Overwrite them too. */ - while (to < toend && CHAR_GLYPH_PADDING_P (*to)) + if (!FRAME_WINDOW_P (it->f)) { - from = truncate_it.glyph_row->glyphs[TEXT_AREA]; - while (from < end) - *to++ = *from++; + while (to < toend && CHAR_GLYPH_PADDING_P (*to)) + { + from = truncate_it.glyph_row->glyphs[TEXT_AREA]; + while (from < end) + *to++ = *from++; + } } if (to > toend) @@ -18251,22 +18307,48 @@ } else { + short tused = truncate_it.glyph_row->used[TEXT_AREA]; + /* In R2L rows, overwrite the last (rightmost) glyphs, and do that back to front. */ end = truncate_it.glyph_row->glyphs[TEXT_AREA]; from = end + truncate_it.glyph_row->used[TEXT_AREA] - 1; toend = it->glyph_row->glyphs[TEXT_AREA]; to = toend + it->glyph_row->used[TEXT_AREA] - 1; + if (FRAME_WINDOW_P (it->f)) + { + int w = 0; + struct glyph *g = to; + + while (g >= toend && w < it->truncation_pixel_width) + { + w += g->pixel_width; + --g; + } + if (to - g - tused > 0) + to = g + tused; + if (it->glyph_row->truncated_on_right_p + && WINDOW_LEFT_FRINGE_WIDTH (it->w) == 0 + && it->glyph_row->glyphs[TEXT_AREA][1].type == STRETCH_GLYPH) + { + int extra = w - it->truncation_pixel_width; + + it->glyph_row->glyphs[TEXT_AREA][1].pixel_width += extra; + } + } while (from >= end && to >= toend) *to-- = *from--; - while (to >= toend && CHAR_GLYPH_PADDING_P (*to)) + if (!FRAME_WINDOW_P (it->f)) { - from = - truncate_it.glyph_row->glyphs[TEXT_AREA] - + truncate_it.glyph_row->used[TEXT_AREA] - 1; - while (from >= end && to >= toend) - *to-- = *from--; + while (to >= toend && CHAR_GLYPH_PADDING_P (*to)) + { + from = + truncate_it.glyph_row->glyphs[TEXT_AREA] + + truncate_it.glyph_row->used[TEXT_AREA] - 1; + while (from >= end && to >= toend) + *to-- = *from--; + } } if (from >= end) { @@ -19392,13 +19474,19 @@ new_x > it->last_visible_x /* Or it fits exactly on a window system frame. */ || (new_x == it->last_visible_x - && FRAME_WINDOW_P (it->f)))) + && FRAME_WINDOW_P (it->f) + && (row->reversed_p + ? WINDOW_LEFT_FRINGE_WIDTH (it->w) + : WINDOW_RIGHT_FRINGE_WIDTH (it->w))))) { /* End of a continued line. */ if (it->hpos == 0 || (new_x == it->last_visible_x - && FRAME_WINDOW_P (it->f))) + && FRAME_WINDOW_P (it->f) + && (row->reversed_p + ? WINDOW_LEFT_FRINGE_WIDTH (it->w) + : WINDOW_RIGHT_FRINGE_WIDTH (it->w)))) { /* Current glyph is the only one on the line or fits exactly on the line. We must continue @@ -19509,6 +19597,10 @@ window system frames. We leave the glyph in this row and let it fill the row, but don't consume the TAB. */ + if ((row->reversed_p + ? WINDOW_LEFT_FRINGE_WIDTH (it->w) + : WINDOW_RIGHT_FRINGE_WIDTH (it->w)) == 0) + produce_special_glyphs (it, IT_CONTINUATION); it->continuation_lines_width += it->last_visible_x; row->ends_in_middle_of_char_p = 1; row->continued_p = 1; @@ -19526,7 +19618,10 @@ row->used[TEXT_AREA] = n_glyphs_before + i; /* Display continuation glyphs. */ - if (!FRAME_WINDOW_P (it->f)) + if (!FRAME_WINDOW_P (it->f) + || (row->reversed_p + ? WINDOW_LEFT_FRINGE_WIDTH (it->w) + : WINDOW_RIGHT_FRINGE_WIDTH (it->w)) == 0) produce_special_glyphs (it, IT_CONTINUATION); row->continued_p = 1; @@ -19633,12 +19728,15 @@ /* If we truncate lines, we are done when the last displayed glyphs reach past the right margin of the window. */ if (it->line_wrap == TRUNCATE - && (FRAME_WINDOW_P (it->f) + && (FRAME_WINDOW_P (it->f) && WINDOW_RIGHT_FRINGE_WIDTH (it->w) ? (it->current_x >= it->last_visible_x) : (it->current_x > it->last_visible_x))) { /* Maybe add truncation glyphs. */ - if (!FRAME_WINDOW_P (it->f)) + if (!FRAME_WINDOW_P (it->f) + || (row->reversed_p + ? WINDOW_LEFT_FRINGE_WIDTH (it->w) + : WINDOW_RIGHT_FRINGE_WIDTH (it->w)) == 0) { int i, n; @@ -19663,9 +19761,36 @@ i = row->used[TEXT_AREA] - (i + 1); } - for (n = row->used[TEXT_AREA]; i < n; ++i) - { + it->current_x = x_before; + if (!FRAME_WINDOW_P (it->f)) + { + for (n = row->used[TEXT_AREA]; i < n; ++i) + { + row->used[TEXT_AREA] = i; + produce_special_glyphs (it, IT_TRUNCATION); + } + } + else + { + int stretch_width = it->last_visible_x - it->current_x; + row->used[TEXT_AREA] = i; + if (stretch_width > 0) + { + struct face *face = FACE_FROM_ID (it->f, it->face_id); + struct font *font = + face->font ? face->font : FRAME_FONT (it->f); + int stretch_ascent = + (((it->ascent + it->descent) + * FONT_BASE (font)) / FONT_HEIGHT (font)); + struct text_pos saved_pos = it->position; + + memset (&it->position, 0, sizeof it->position); + append_stretch_glyph (it, make_number (0), stretch_width, + it->ascent + it->descent, + stretch_ascent); + it->position = saved_pos; + } produce_special_glyphs (it, IT_TRUNCATION); } } @@ -19684,6 +19809,7 @@ row->exact_window_width_line_p = 1; goto at_end_of_line; } + it->current_x = x_before; } row->truncated_on_right_p = 1; @@ -19691,7 +19817,6 @@ reseat_at_next_visible_line_start (it, 0); row->ends_at_zv_p = FETCH_BYTE (IT_BYTEPOS (*it) - 1) != '\n'; it->hpos = hpos_before; - it->current_x = x_before; break; } } @@ -19704,7 +19829,10 @@ if (it->first_visible_x && IT_CHARPOS (*it) != CHARPOS (row->start.pos)) { - if (!FRAME_WINDOW_P (it->f)) + if (!FRAME_WINDOW_P (it->f) + || (row->reversed_p + ? WINDOW_RIGHT_FRINGE_WIDTH (it->w) + : WINDOW_LEFT_FRINGE_WIDTH (it->w)) == 0) insert_left_trunc_glyphs (it); row->truncated_on_left_p = 1; } @@ -21913,7 +22041,10 @@ if (it->first_visible_x && it_charpos > 0) { - if (!FRAME_WINDOW_P (it->f)) + if (!FRAME_WINDOW_P (it->f) + || (row->reversed_p + ? WINDOW_RIGHT_FRINGE_WIDTH (it->w) + : WINDOW_LEFT_FRINGE_WIDTH (it->w)) == 0) insert_left_trunc_glyphs (it); row->truncated_on_left_p = 1; } ------------------------------------------------------------ revno: 108937 committer: Bastien Guerry branch nick: trunk timestamp: Sat 2012-07-07 16:37:47 +0200 message: Update etc/tutorials/TUTORIAL.fr to reflect changes from revno 108936. diff: === modified file 'etc/tutorials/TUTORIAL.fr' --- etc/tutorials/TUTORIAL.fr 2012-01-27 11:05:51 +0000 +++ etc/tutorials/TUTORIAL.fr 2012-07-07 14:37:47 +0000 @@ -18,10 +18,10 @@ indiquent les directions à suivre pour essayer une commande. Ainsi : <> [Centre de page delibérément vide. Le texte continue ci-dessous.] ->> Tapez C-v (Voir l'écran suivant) pour passer à l'écran suivant - (faites-le, pressez la touche CTRL tout en pressant la touche v). - À partir de maintenant, vous devrez le faire à chaque fois que - vous avez fini de lire l'écran. +>> Tapez C-v (Voir l'écran suivant) pour passer à l'écran suivant + (faites-le, pressez la touche CTRL tout en pressant la touche v). + À partir de maintenant, vous devrez le faire à chaque fois que + vous avez fini de lire l'écran. Vous remarquerez qu'il y a un recouvrement de deux lignes lorsque l'on passe d'un écran à un autre : cela permet une certaine continuité dans @@ -33,7 +33,7 @@ META tout en appuyant sur v ou faites v si vous n'avez pas de touche META, EDIT ou ALT). ->> Faites M-v, puis C-v plusieurs fois. +>> Faites M-v, puis C-v plusieurs fois. * RÉSUMÉ @@ -228,13 +228,13 @@ agir différemment. C-v et M-v constituent un autre type d'exception. Lorsqu'on leur donne -un paramètre, elles font défiler l'écran vers le haut ou vers le bas +un paramètre, elles font défiler le texte vers le haut ou vers le bas du nombre de lignes indiqué au lieu de passer d'un écran complet à -l'autre. C-u 8 C-v, par exemple, fait défiler l'écran de 8 lignes. +l'autre. C-u 8 C-v, par exemple, fait défiler le texte de 8 lignes. >> Faites C-u 8 C-v. -Cela a dû déplacer l'écran de 8 lignes vers le haut. Si vous voulez +Cela a dû déplacer le texte de 8 lignes vers le haut. Si vous voulez redescendre de 8 lignes, il suffit de passer ce nombre comme paramètre de M-v. @@ -307,11 +307,10 @@ >> Faites C-x 1 et la fenêtre de documentation disparaît. -Cette commande est différente de celles que nous avons déjà vues car -elle est formée de deux caractères. Elle commence par le caractère -CONTROLE-x, comme le font de nombreuses commandes de manipulation de -fenêtres, fichiers, tampons et autres entités associées. Ces commandes -font deux, trois ou quatre caractères. +Il y a toute une série de commandes qui commencent par CONTROL-x; +nombre d'entre elles ont à voir avec la manipulation de fenêtres, +fichiers, tampons et autres entités associées. Ces commandes font +deux, trois ou quatre caractères de long. * INSERTION ET SUPPRESSION @@ -370,7 +369,7 @@ nombre de répétitions ; les caractères de texte font de même. La répétition d'un caractère de texte l'insère plusieurs fois. ->> Faites C-u 8 * pour insérer ********. +>> Faites C-u 8 * pour insérer ********. Vous connaissez maintenant la méthode la plus simple pour taper du texte dans Emacs et pour corriger les erreurs. Vous pouvez également @@ -572,11 +571,8 @@ Cette commande copie dans le fichier le texte qui est dans Emacs. La première fois, Emacs renomme le fichier original afin qu'il ne soit pas perdu. Le nom de cette sauvegarde est construit en ajoutant « ~ » -à la fin du nom initial. - -Lorsque la sauvegarde est finie, Emacs affiche le nom du fichier -écrit. Sauvegardez à intervalles réguliers afin de perdre le moins -possible de travail au cas où votre système se planterait. +à la fin du nom initial. Lorsque la sauvegarde est finie, Emacs +affiche le nom du fichier écrit. >> Faites C-x C-s pour sauvegarder votre copie du didacticiel. Cela devrait écrire "Wrote ...TUTORIAL.fr" en bas de l'écran. @@ -694,7 +690,7 @@ Vous pouvez le faire à l'aide de la souris ou avec les commandes du gestionnaire de fenêtres. Cependant, si vous utilisez un terminal texte ne pouvant afficher qu'une application à la fois, vous devez -« suspendre » Emacs pour passer à n'importe quel autre programme. +« suspendre » Emacs pour passer à n'importe quelle autre application. C-z est la commande permettant de quitter *temporairement* Emacs -- afin de pouvoir revenir à la même session plus tard. Sur les systèmes @@ -704,7 +700,8 @@ Le moment idéal pour utiliser C-x C-c est lorsque l'on se déconnecte. C'est aussi la commande adaptée pour sortir d'un Emacs -invoqué par un programme de courrier ou tout autre utilitaire. +invoqué pour une modification rapide, par exemple par un programme de +courrier ou tout autre utilitaire. Il existe de nombreuses commandes C-x. Voici une liste de celles que vous avez apprises : @@ -719,7 +716,7 @@ Les eXtensions de commandes nommées sont des commandes utilisées encore moins souvent, ou des commandes qui ne servent que dans certains modes. Un exemple est la commande replace-string, qui -remplace globalement une chaîne par une autre. Lorsque vous faites +remplace une chaîne par une autre dans un tampon. Lorsque vous faites M-x, Emacs affiche M-x en bas de l'écran et vous demande de taper le nom de la commande, « replace-string » ici. Contentez-vous de faire «repl s » et Emacs complétera le nom ( représente la touche @@ -735,7 +732,7 @@ Puis, faites M-x repl schangéemodifiée. Notez comment cette ligne a été changée : vous avez remplacé le mot - c-h-a-n-g-é-e par « modifiée » à chaque fois qu'il apparaissait après + « changée » par « modifiée » à chaque fois qu'il apparaissait après la position initiale du curseur. @@ -949,7 +946,7 @@ fenêtres. Toutes les deux affichent ce didacticiel et le curseur reste dans celle du haut. ->> Faites C-M-v pour faire défiler la fenêtre du bas +>> Faites C-M-v pour faire défiler le texte de la fenêtre du bas (Si vous n'avez pas de touche Meta, faites C-v). >> Tapez C-x o (« o » pour « other ») afin de placer le curseur dans @@ -1123,9 +1120,9 @@ >> Faites C-h a file. Cela affiche dans une autre fenêtre une liste de toutes les commandes -M-x ayant « file » dans leurs noms. Vous verrez des commandes -caractères, comme C-x C-f, apparaître à côté des noms de commandes qui -leur correspondent, comme find-file. +M-x ayant « file » dans leurs noms. Vous verrez listée des commandes +caractères à côté des noms de commandes qui leur correspondent (comme +C-x C-f à côté de find-file). >> Faites C-M-v pour faire défiler la fenêtre d'aide. Faites-le plusieurs fois. ------------------------------------------------------------ revno: 108936 fixes bug(s): http://debbugs.gnu.org/11689 author: Michael Witten committer: Chong Yidong branch nick: trunk timestamp: Sat 2012-07-07 18:34:37 +0800 message: * tutorials/TUTORIAL: Copyedits. diff: === modified file 'etc/ChangeLog' --- etc/ChangeLog 2012-06-28 06:58:39 +0000 +++ etc/ChangeLog 2012-07-07 10:34:37 +0000 @@ -1,3 +1,7 @@ +2012-07-07 Michael Witten (tiny change) + + * tutorials/TUTORIAL: Copyedits (Bug#11689). + 2012-06-28 Glenn Morris * emacs.py, emacs2.py, emacs3.py: Remove files, no longer used. === modified file 'etc/tutorials/TUTORIAL' --- etc/tutorials/TUTORIAL 2012-01-30 07:54:00 +0000 +++ etc/tutorials/TUTORIAL 2012-07-07 10:34:37 +0000 @@ -16,7 +16,7 @@ try using a command. For instance: <> [Middle of page left blank for didactic purposes. Text continues below] ->> Now type C-v (View next screen) to move to the next screen. +>> Now type C-v (View next screen) to move to the next screen. (go ahead, do it by holding down the CONTROL key while typing v). From now on, you should do this again whenever you finish reading the screen. @@ -30,7 +30,7 @@ with C-v. To move backwards one screen, type M-v (hold down the META key and type v, or type v if you do not have a META, EDIT, or ALT key). ->> Try typing M-v and then C-v, a few times. +>> Try typing M-v and then C-v, a few times. * SUMMARY @@ -209,12 +209,12 @@ something different. C-v and M-v are another kind of exception. When given an argument, -they scroll the screen up or down by that many lines, rather than by a -screenful. For example, C-u 8 C-v scrolls the screen by 8 lines. +they scroll the text up or down by that many lines, rather than by a +screenful. For example, C-u 8 C-v scrolls by 8 lines. >> Try typing C-u 8 C-v now. -This should have scrolled the screen up by 8 lines. If you would like +This should have scrolled the text up by 8 lines. If you would like to scroll it down again, you can give an argument to M-v. If you are using a graphical display, such as X or MS-Windows, there @@ -281,8 +281,6 @@ >> Type C-x 1 and see the documentation listing window disappear. -This command is unlike the other commands you have learned in that it -consists of two characters. It starts with the character CONTROL-x. There is a whole series of commands that start with CONTROL-x; many of them have to do with windows, files, buffers, and related things. These commands are two, three or four characters long. @@ -337,7 +335,7 @@ this includes text characters. Repeating a text character inserts it several times. ->> Try that now -- type C-u 8 * to insert ********. +>> Try that now -- type C-u 8 * to insert ********. You've now learned the most basic way of typing something in Emacs and correcting errors. You can delete by words or lines @@ -522,11 +520,8 @@ This copies the text within Emacs into the file. The first time you do this, Emacs renames the original file to a new name so that it is not lost. The new name is made by adding "~" to the end of the -original file's name. - -When saving is finished, Emacs displays the name of the file written. -You should save fairly often, so that you will not lose very much -work if the system should crash (see the section "Auto Save" below). +original file's name. When saving is finished, Emacs displays the +name of the file written. >> Type C-x C-s TUTORIAL . This should save this tutorial to a file named TUTORIAL, and show @@ -534,11 +529,11 @@ You can find an existing file, to view it or edit it. You can also find a file which does not already exist. This is the way to create a -file with Emacs: find the file, which will start out empty, and then -begin inserting the text for the file. When you ask to "save" the -file, Emacs will really create the file with the text that you have -inserted. From then on, you can consider yourself to be editing an -already existing file. +file with Emacs: find the file, which starts out empty, and then begin +inserting the text for the file. When you ask to "save" the file, +Emacs actually creates the file with the text that you have inserted. +From then on, you can consider yourself to be editing an already +existing file. * BUFFERS @@ -595,8 +590,8 @@ in that file's buffer. The creation or editing of the second file's buffer has no effect on the first file's buffer. This is very useful, but it also means that you need a convenient way to save the first -file's buffer. It would be a nuisance to have to switch back to -it with C-x C-f in order to save it with C-x C-s. So we have +file's buffer. Having to switch back to that buffer, in order to save +it with C-x C-s, would be a nuisance. So we have C-x s Save some buffers @@ -631,7 +626,7 @@ command to move from Emacs to another application. You can do this with the mouse or with window manager commands. However, if you're using a text terminal which can only show one application at a time, -you need to "suspend" Emacs to move to any other program. +you need to "suspend" Emacs to move to any other application. C-z is the command to exit Emacs *temporarily*--so that you can go back to the same Emacs session afterward. When Emacs is running on a @@ -640,8 +635,8 @@ can resume Emacs with the `fg' command or with `%emacs'. The time to use C-x C-c is when you are about to log out. It's also -the right thing to use to exit an Emacs invoked under mail handling -programs and other miscellaneous utilities. +the right thing to use to exit an Emacs invoked for a quick edit, such +as by a mail handling utility. There are many C-x commands. Here is a list of the ones you have learned: @@ -656,8 +651,8 @@ Named eXtended commands are commands which are used even less frequently, or commands which are used only in certain modes. An -example is the command replace-string, which globally replaces one -string with another. When you type M-x, Emacs prompts you at the +example is the command replace-string, which replaces one string with +another in the buffer. When you type M-x, Emacs prompts you at the bottom of the screen with M-x and you should type the name of the command; in this case, "replace-string". Just type "repl s" and Emacs will complete the name. ( is the Tab key, usually found @@ -671,9 +666,9 @@ >> Move the cursor to the blank line two lines below this one. Then type M-x repl schangedaltered. - Notice how this line has changed: you've replaced - the word c-h-a-n-g-e-d with "altered" wherever it occurred, - after the initial position of the cursor. + Notice how this line has changed: you've replaced the word + "changed" with "altered" wherever it occurred, after the + initial position of the cursor. * AUTO SAVE @@ -762,6 +757,7 @@ To view documentation on your current major mode, type C-h m. +>> Move the cursor to the line following this line. >> Type C-l C-l to bring this line to the top of screen. >> Type C-h m, to see how Text mode differs from Fundamental mode. >> Type C-x 1 to remove the documentation from the screen. @@ -893,7 +889,8 @@ The command C-M-v is very useful when you are editing text in one window and using the other window just for reference. Without leaving -the selected window, you can scroll the other window with C-M-v. +the selected window, you can scroll the text in the other window with +C-M-v. C-M-v is an example of a CONTROL-META character. If you have a META (or Alt) key, you can type C-M-v by holding down both CONTROL and META @@ -1041,8 +1038,8 @@ >> Type C-h a file . This displays in another window a list of all M-x commands with "file" -in their names. You will see character-commands like C-x C-f listed -beside the corresponding command names such as find-file. +in their names. You will see character-commands listed beside the +corresponding command names (such as C-x C-f beside find-file). >> Type C-M-v to scroll the help window. Do this a few times. ------------------------------------------------------------ revno: 108935 committer: Glenn Morris branch nick: trunk timestamp: Sat 2012-07-07 06:17:27 -0400 message: Auto-commit of generated files. diff: === modified file 'autogen/Makefile.in' --- autogen/Makefile.in 2012-07-01 10:18:49 +0000 +++ autogen/Makefile.in 2012-07-07 10:17:27 +0000 @@ -36,7 +36,7 @@ # the same distribution terms as the rest of that program. # # Generated by gnulib-tool. -# Reproduce by: gnulib-tool --import --dir=. --lib=libgnu --source-base=lib --m4-base=m4 --doc-base=doc --tests-base=tests --aux-dir=build-aux --avoid=errno --avoid=fcntl --avoid=fcntl-h --avoid=fstat --avoid=msvc-inval --avoid=msvc-nothrow --avoid=raise --avoid=select --avoid=sigprocmask --avoid=sys_types --avoid=threadlib --makefile-name=gnulib.mk --conditional-dependencies --no-libtool --macro-prefix=gl --no-vc-files alloca-opt careadlinkat crypto/md5 crypto/sha1 crypto/sha256 crypto/sha512 dtoastr dtotimespec dup2 filemode getloadavg getopt-gnu gettime gettimeofday ignore-value intprops largefile lstat manywarnings mktime pselect pthread_sigmask readlink socklen stat-time stdarg stdio strftime strtoimax strtoumax symlink sys_stat sys_time time timespec-add timespec-sub utimens warnings +# Reproduce by: gnulib-tool --import --dir=. --lib=libgnu --source-base=lib --m4-base=m4 --doc-base=doc --tests-base=tests --aux-dir=build-aux --avoid=errno --avoid=fcntl --avoid=fcntl-h --avoid=fstat --avoid=msvc-inval --avoid=msvc-nothrow --avoid=raise --avoid=select --avoid=sigprocmask --avoid=sys_types --avoid=threadlib --makefile-name=gnulib.mk --conditional-dependencies --no-libtool --macro-prefix=gl --no-vc-files alloca-opt c-strcase careadlinkat crypto/md5 crypto/sha1 crypto/sha256 crypto/sha512 dtoastr dtotimespec dup2 filemode getloadavg getopt-gnu gettime gettimeofday ignore-value intprops largefile lstat manywarnings mktime pselect pthread_sigmask readlink socklen stat-time stdarg stdio strftime strtoimax strtoumax symlink sys_stat sys_time time timespec-add timespec-sub utimens warnings VPATH = @srcdir@ pkgdatadir = $(datadir)/@PACKAGE@ @@ -107,16 +107,19 @@ LIBRARIES = $(noinst_LIBRARIES) libgnu_a_AR = $(AR) $(ARFLAGS) am__DEPENDENCIES_1 = -am__libgnu_a_SOURCES_DIST = allocator.c careadlinkat.c md5.c sha1.c \ - sha256.c sha512.c dtoastr.c dtotimespec.c filemode.c gettext.h \ - gettime.c strftime.c timespec-add.c timespec-sub.c utimens.c +am__libgnu_a_SOURCES_DIST = allocator.c c-ctype.h c-ctype.c \ + c-strcase.h c-strcasecmp.c c-strncasecmp.c careadlinkat.c \ + md5.c sha1.c sha256.c sha512.c dtoastr.c dtotimespec.c \ + filemode.c gettext.h gettime.c strftime.c timespec-add.c \ + timespec-sub.c utimens.c am__objects_1 = -am_libgnu_a_OBJECTS = allocator.$(OBJEXT) careadlinkat.$(OBJEXT) \ - md5.$(OBJEXT) sha1.$(OBJEXT) sha256.$(OBJEXT) sha512.$(OBJEXT) \ - dtoastr.$(OBJEXT) dtotimespec.$(OBJEXT) filemode.$(OBJEXT) \ - $(am__objects_1) gettime.$(OBJEXT) strftime.$(OBJEXT) \ - timespec-add.$(OBJEXT) timespec-sub.$(OBJEXT) \ - utimens.$(OBJEXT) +am_libgnu_a_OBJECTS = allocator.$(OBJEXT) c-ctype.$(OBJEXT) \ + c-strcasecmp.$(OBJEXT) c-strncasecmp.$(OBJEXT) \ + careadlinkat.$(OBJEXT) md5.$(OBJEXT) sha1.$(OBJEXT) \ + sha256.$(OBJEXT) sha512.$(OBJEXT) dtoastr.$(OBJEXT) \ + dtotimespec.$(OBJEXT) filemode.$(OBJEXT) $(am__objects_1) \ + gettime.$(OBJEXT) strftime.$(OBJEXT) timespec-add.$(OBJEXT) \ + timespec-sub.$(OBJEXT) utimens.$(OBJEXT) libgnu_a_OBJECTS = $(am_libgnu_a_OBJECTS) depcomp = $(SHELL) $(top_srcdir)/build-aux/depcomp am__depfiles_maybe = depfiles @@ -872,9 +875,11 @@ noinst_LIBRARIES = libgnu.a AM_CFLAGS = $(GNULIB_WARN_CFLAGS) $(WERROR_CFLAGS) DEFAULT_INCLUDES = -I. -I../src -I$(top_srcdir)/src -libgnu_a_SOURCES = allocator.c careadlinkat.c md5.c sha1.c sha256.c \ - sha512.c dtoastr.c dtotimespec.c filemode.c $(am__append_1) \ - gettime.c strftime.c timespec-add.c timespec-sub.c utimens.c +libgnu_a_SOURCES = allocator.c c-ctype.h c-ctype.c c-strcase.h \ + c-strcasecmp.c c-strncasecmp.c careadlinkat.c md5.c sha1.c \ + sha256.c sha512.c dtoastr.c dtotimespec.c filemode.c \ + $(am__append_1) gettime.c strftime.c timespec-add.c \ + timespec-sub.c utimens.c libgnu_a_LIBADD = $(gl_LIBOBJS) libgnu_a_DEPENDENCIES = $(gl_LIBOBJS) EXTRA_libgnu_a_SOURCES = ftoastr.c dup2.c getloadavg.c getopt.c \ @@ -940,6 +945,9 @@ -rm -f *.tab.c @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/allocator.Po@am__quote@ +@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/c-ctype.Po@am__quote@ +@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/c-strcasecmp.Po@am__quote@ +@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/c-strncasecmp.Po@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/careadlinkat.Po@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/dtoastr.Po@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/dtotimespec.Po@am__quote@ === modified file 'autogen/config.in' --- autogen/config.in 2012-06-28 10:17:30 +0000 +++ autogen/config.in 2012-07-07 10:17:27 +0000 @@ -742,9 +742,6 @@ /* Define to 1 if you have the header file. */ #undef HAVE_STDLIB_H -/* Define to 1 if you have the `strcasecmp' function. */ -#undef HAVE_STRCASECMP - /* Define to 1 if you have the `strerror' function. */ #undef HAVE_STRERROR @@ -754,9 +751,6 @@ /* Define to 1 if you have the header file. */ #undef HAVE_STRING_H -/* Define to 1 if you have the `strncasecmp' function. */ -#undef HAVE_STRNCASECMP - /* Define to 1 if you have the `strsignal' function. */ #undef HAVE_STRSIGNAL === modified file 'autogen/configure' --- autogen/configure 2012-07-06 10:17:34 +0000 +++ autogen/configure 2012-07-07 10:17:27 +0000 @@ -2032,7 +2032,9 @@ --disable-dependency-tracking speeds up one-time build --enable-dependency-tracking do not reject slow dependency extractors --disable-largefile omit support for large files - --enable-gcc-warnings turn on lots of GCC warnings (for developers) + --enable-gcc-warnings turn on lots of GCC warnings. This is intended for + developers, and may generate false alarms when used + with older or non-GNU development tools. --enable-link-time-optimization build emacs with link-time optimization. This is supported only for GCC since 4.5.0. @@ -6934,6 +6936,8 @@ # Code from module alloca-opt: # Code from module allocator: + # Code from module c-ctype: + # Code from module c-strcase: # Code from module careadlinkat: # Code from module clock-time: # Code from module crypto/md5: @@ -21004,16 +21008,15 @@ for ac_func in gethostname \ rename closedir mkdir rmdir getrusage get_current_dir_name \ -random lrand48 logb frexp fmod rint cbrt setsid \ +lrand48 logb frexp fmod cbrt setsid \ strerror fpathconf select euidaccess getpagesize setlocale \ -utimes getrlimit setrlimit setpgid getcwd getwd shutdown getaddrinfo \ +utimes getrlimit setrlimit setpgid getcwd shutdown getaddrinfo \ __fpending strsignal setitimer \ sendto recvfrom getsockname getpeername getifaddrs freeifaddrs \ gai_strerror mkstemp getline getdelim fsync sync \ difftime posix_memalign \ getpwent endpwent getgrent endgrent \ touchlock \ -strcasecmp strncasecmp \ cfmakeraw cfsetspeed copysign __executable_start do : as_ac_var=`$as_echo "ac_cv_func_$ac_func" | $as_tr_sh` @@ -21028,6 +21031,43 @@ done +if test $opsys != unixware; then + for ac_func in getwd +do : + ac_fn_c_check_func "$LINENO" "getwd" "ac_cv_func_getwd" +if test "x$ac_cv_func_getwd" = x""yes; then : + cat >>confdefs.h <<_ACEOF +#define HAVE_GETWD 1 +_ACEOF + +fi +done + +fi + +## Eric Backus says, HP-UX 9.x on HP 700 machines +## has a broken `rint' in some library versions including math library +## version number A.09.05. +## You can fix the math library by installing patch number PHSS_4630. +## But we can fix it more reliably for Emacs by just not using rint. +## We also skip HAVE_RANDOM - see comments in src/s/hpux10-20.h. +case $opsys in + hpux*) : ;; + *) for ac_func in random rint +do : + as_ac_var=`$as_echo "ac_cv_func_$ac_func" | $as_tr_sh` +ac_fn_c_check_func "$LINENO" "$ac_func" "$as_ac_var" +eval as_val=\$$as_ac_var + if test "x$as_val" = x""yes; then : + cat >>confdefs.h <<_ACEOF +#define `$as_echo "HAVE_$ac_func" | $as_tr_cpp` 1 +_ACEOF + +fi +done + ;; +esac + { $as_echo "$as_me:${as_lineno-$LINENO}: checking for __builtin_unwind_init" >&5 $as_echo_n "checking for __builtin_unwind_init... " >&6; } if test "${emacs_cv_func___builtin_unwind_init+set}" = set; then : @@ -21363,8 +21403,13 @@ # Do we have res_init, for detecting changes in /etc/resolv.conf? +# On Darwin, res_init appears not to be useful: see bug#562 and +# http://lists.gnu.org/archive/html/emacs-devel/2007-11/msg01467.html resolv=no -cat confdefs.h - <<_ACEOF >conftest.$ac_ext + +if test $opsys != darwin; then + + cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ #include #include @@ -21384,12 +21429,12 @@ fi rm -f core conftest.err conftest.$ac_objext \ conftest$ac_exeext conftest.$ac_ext -if test "$have_res_init" = no; then - OLIBS="$LIBS" - LIBS="$LIBS -lresolv" - { $as_echo "$as_me:${as_lineno-$LINENO}: checking for res_init with -lresolv" >&5 + if test "$have_res_init" = no; then + OLIBS="$LIBS" + LIBS="$LIBS -lresolv" + { $as_echo "$as_me:${as_lineno-$LINENO}: checking for res_init with -lresolv" >&5 $as_echo_n "checking for res_init with -lresolv... " >&6; } - cat confdefs.h - <<_ACEOF >conftest.$ac_ext + cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ #include #include @@ -21409,20 +21454,20 @@ fi rm -f core conftest.err conftest.$ac_objext \ conftest$ac_exeext conftest.$ac_ext - { $as_echo "$as_me:${as_lineno-$LINENO}: result: $have_res_init" >&5 + { $as_echo "$as_me:${as_lineno-$LINENO}: result: $have_res_init" >&5 $as_echo "$have_res_init" >&6; } - if test "$have_res_init" = yes ; then - resolv=yes + if test "$have_res_init" = yes ; then + resolv=yes + fi + LIBS="$OLIBS" fi - LIBS="$OLIBS" -fi -if test "$have_res_init" = yes; then + if test "$have_res_init" = yes; then $as_echo "#define HAVE_RES_INIT 1" >>confdefs.h + fi fi - # Do we need the Hesiod library to provide the support routines? LIBHESIOD= if test "$with_hesiod" != no ; then @@ -21584,7 +21629,7 @@ # Do we need libresolv (due to res_init or Hesiod)? -if test "$resolv" = yes ; then +if test "$resolv" = yes && test $opsys != darwin; then $as_echo "#define HAVE_LIBRESOLV 1" >>confdefs.h ------------------------------------------------------------ revno: 108934 fixes bug(s): http://debbugs.gnu.org/11591 author: Kevin Ryde committer: Chong Yidong branch nick: trunk timestamp: Sat 2012-07-07 18:10:47 +0800 message: * woman.el (woman2-process-escapes): Handle nofill regions. diff: === modified file 'lisp/ChangeLog' --- lisp/ChangeLog 2012-07-07 10:06:38 +0000 +++ lisp/ChangeLog 2012-07-07 10:10:47 +0000 @@ -1,8 +1,9 @@ -2012-07-07 Kevin Ryde +2012-07-07 Kevin Ryde * woman.el (woman-strings): Fix double-quote handling (Bug#1151). (woman-decode-region): Replace escaped-escapes without destroying bold or underline (Bug#11552). + (woman2-process-escapes): Handle nofill regions (Bug#11591). 2012-07-07 Chong Yidong === modified file 'lisp/woman.el' --- lisp/woman.el 2012-07-07 10:06:38 +0000 +++ lisp/woman.el 2012-07-07 10:10:47 +0000 @@ -3932,7 +3932,9 @@ (while (re-search-forward "\\\\[&|^]" to t) (woman-delete-match 0) ;; If on a line by itself, consume newline as well (Bug#3651). - (and (eq (char-before (match-beginning 0)) ?\n) + ;; But not in a .nf region, preserve all newlines in that case. + (and (not woman-nofill) + (eq (char-before (match-beginning 0)) ?\n) (eq (char-after (match-beginning 0)) ?\n) (delete-char 1))) ------------------------------------------------------------ revno: 108933 fixes bug(s): http://debbugs.gnu.org/1151 author: Kevin Ryde committer: Chong Yidong branch nick: trunk timestamp: Sat 2012-07-07 18:06:38 +0800 message: * woman.el (woman-strings): Fix double-quote handling. (woman-decode-region): Replace escaped-escapes without destroying bold or underline. diff: === modified file 'lisp/ChangeLog' --- lisp/ChangeLog 2012-07-07 09:33:28 +0000 +++ lisp/ChangeLog 2012-07-07 10:06:38 +0000 @@ -1,3 +1,9 @@ +2012-07-07 Kevin Ryde + + * woman.el (woman-strings): Fix double-quote handling (Bug#1151). + (woman-decode-region): Replace escaped-escapes without destroying + bold or underline (Bug#11552). + 2012-07-07 Chong Yidong * simple.el (yank-pop-change-selection): Doc fix (Bug#11361). === modified file 'lisp/woman.el' --- lisp/woman.el 2012-06-26 16:23:01 +0000 +++ lisp/woman.el 2012-07-07 10:06:38 +0000 @@ -2385,20 +2385,20 @@ (if woman-negative-vertical-space (woman-negative-vertical-space from)) - (if woman-preserve-ascii - ;; Re-instate escaped escapes to just `\' and unpaddable - ;; spaces to just `space', without inheriting any text - ;; properties. This is not necessary, UNLESS the buffer is to - ;; be saved as ASCII. - (progn - (goto-char from) - (while (search-forward woman-escaped-escape-string nil t) - (delete-char -1) - (insert ?\\)) - (goto-char from) - (while (search-forward woman-unpadded-space-string nil t) - (delete-char -1) - (insert ?\s)))) + (when woman-preserve-ascii + ;; Re-instate escaped escapes to just `\' and unpaddable spaces + ;; to just `space'. This is not necessary for display since + ;; there are display table entries for the escaped chars, but it + ;; is necessary if the buffer might be saved as ASCII. + ;; + ;; `subst-char-in-region' preserves text properties on the + ;; characters, which is necessary for bold, underline, etc on + ;; \e. There's usually no face on spaces, but if there is then + ;; it's good to keep that too. + (subst-char-in-region from (point-max) + woman-escaped-escape-char ?\\) + (subst-char-in-region from (point-max) + woman-unpadded-space-char ?\s)) ;; Must return the new end of file if used in format-alist. (point-max))) @@ -2865,15 +2865,18 @@ (re-search-forward "[^ \t\n]+") (let ((string (match-string 0))) (skip-chars-forward " \t") -; (setq string -; (cons string -; ;; hack (?) for CGI.man! -; (cond ((looking-at "\"\"") "\"") -; ((looking-at ".*") (match-string 0))) -; )) - ;; Above hack causes trouble in arguments! - (looking-at ".*") - (setq string (cons string (match-string 0))) + (if (= ?\" (following-char)) + ;; Double-quote starts a string, eg. + ;; .ds foo "blah... + ;; is value blah... through to newline. There's no + ;; closing " (per the groff manual), but rather any + ;; further " is included literally in the string. Eg. + ;; .ds foo "" + ;; sets foo to a single " character. + (forward-char)) + (setq string (cons string + (buffer-substring (point) + (line-end-position)))) ;; This should be an update, but consing a new string ;; onto the front of the alist has the same effect: (setq woman-string-alist (cons string woman-string-alist)) ------------------------------------------------------------ revno: 108932 fixes bug(s): http://debbugs.gnu.org/11435 committer: Chong Yidong branch nick: trunk timestamp: Sat 2012-07-07 17:51:59 +0800 message: Add "site-lisp" to manual indices. * custom.texi (Init File): Index site-lisp. * doc/lispref/loading.texi (Library Search): Index site-lisp directories. diff: === modified file 'doc/emacs/ChangeLog' --- doc/emacs/ChangeLog 2012-07-06 04:48:35 +0000 +++ doc/emacs/ChangeLog 2012-07-07 09:51:59 +0000 @@ -1,3 +1,7 @@ +2012-07-07 Chong Yidong + + * custom.texi (Init File): Index site-lisp (Bug#11435). + 2012-07-06 Chong Yidong * emacs.texi: Re-order top-level menu to correspond to logical === modified file 'doc/emacs/custom.texi' --- doc/emacs/custom.texi 2012-06-17 05:13:40 +0000 +++ doc/emacs/custom.texi 2012-07-07 09:51:59 +0000 @@ -2103,11 +2103,12 @@ better to put them in @file{default.el}, so that users can more easily override them. +@cindex site-lisp directories You can place @file{default.el} and @file{site-start.el} in any of the directories which Emacs searches for Lisp libraries. The variable @code{load-path} (@pxref{Lisp Libraries}) specifies these directories. -Many sites put these files in the @file{site-lisp} subdirectory of the -Emacs installation directory, typically +Many sites put these files in a subdirectory named @file{site-lisp} in +the Emacs installation directory, such as @file{/usr/local/share/emacs/site-lisp}. Byte-compiling your init file is not recommended (@pxref{Byte === modified file 'doc/lispref/ChangeLog' --- doc/lispref/ChangeLog 2012-07-06 04:25:04 +0000 +++ doc/lispref/ChangeLog 2012-07-07 09:51:59 +0000 @@ -1,3 +1,7 @@ +2012-07-07 Chong Yidong + + * loading.texi (Library Search): Index site-lisp directories. + 2012-07-06 Chong Yidong * intro.texi (A Sample Function Description): Fix incorrect === modified file 'doc/lispref/loading.texi' --- doc/lispref/loading.texi 2012-06-17 05:13:40 +0000 +++ doc/lispref/loading.texi 2012-07-07 09:51:59 +0000 @@ -262,6 +262,7 @@ setenv EMACSLOADPATH /home/foo/.emacs.d/lisp:/opt/emacs/lisp @end example +@cindex site-lisp directories If @env{EMACSLOADPATH} is not set (which is usually the case), Emacs initializes @code{load-path} with the following two directories: ------------------------------------------------------------ revno: 108931 fixes bug(s): http://debbugs.gnu.org/11361 committer: Chong Yidong branch nick: trunk timestamp: Sat 2012-07-07 17:33:28 +0800 message: * lisp/simple.el (yank-pop-change-selection): Doc fix. (interprogram-cut-function, interprogram-paste-function): Mention that we typically mean the clipboard. diff: === modified file 'lisp/ChangeLog' --- lisp/ChangeLog 2012-07-06 21:34:49 +0000 +++ lisp/ChangeLog 2012-07-07 09:33:28 +0000 @@ -1,3 +1,9 @@ +2012-07-07 Chong Yidong + + * simple.el (yank-pop-change-selection): Doc fix (Bug#11361). + (interprogram-cut-function, interprogram-paste-function): Mention + that we typically mean the clipboard. + 2012-07-06 Glenn Morris * kmacro.el (kmacro-call-macro): Restore repeat message. (Bug#11817) === modified file 'lisp/simple.el' --- lisp/simple.el 2012-07-06 04:31:46 +0000 +++ lisp/simple.el 2012-07-07 09:33:28 +0000 @@ -3044,41 +3044,43 @@ (defvar interprogram-cut-function nil "Function to call to make a killed region available to other programs. - -Most window systems provide some sort of facility for cutting and -pasting text between the windows of different programs. -This variable holds a function that Emacs calls whenever text -is put in the kill ring, to make the new kill available to other -programs. - -The function takes one argument, TEXT, which is a string containing -the text which should be made available.") +Most window systems provide a facility for cutting and pasting +text between different programs, such as the clipboard on X and +MS-Windows, or the pasteboard on Nextstep/Mac OS. + +This variable holds a function that Emacs calls whenever text is +put in the kill ring, to make the new kill available to other +programs. The function takes one argument, TEXT, which is a +string containing the text which should be made available.") (defvar interprogram-paste-function nil "Function to call to get text cut from other programs. - -Most window systems provide some sort of facility for cutting and -pasting text between the windows of different programs. -This variable holds a function that Emacs calls to obtain -text that other programs have provided for pasting. - -The function should be called with no arguments. If the function -returns nil, then no other program has provided such text, and the top -of the Emacs kill ring should be used. If the function returns a -string, then the caller of the function \(usually `current-kill') -should put this string in the kill ring as the latest kill. - -This function may also return a list of strings if the window +Most window systems provide a facility for cutting and pasting +text between different programs, such as the clipboard on X and +MS-Windows, or the pasteboard on Nextstep/Mac OS. + +This variable holds a function that Emacs calls to obtain text +that other programs have provided for pasting. The function is +called with no arguments. If no other program has provided text +to paste, the function should return nil (in which case the +caller, usually `current-kill', should use the top of the Emacs +kill ring). If another program has provided text to paste, the +function should return that text as a string (in which case the +caller should put this string in the kill ring as the latest +kill). + +The function may also return a list of strings if the window system supports multiple selections. The first string will be -used as the pasted text, but the other will be placed in the -kill ring for easy access via `yank-pop'. +used as the pasted text, but the other will be placed in the kill +ring for easy access via `yank-pop'. -Note that the function should return a string only if a program other -than Emacs has provided a string for pasting; if Emacs provided the -most recent string, the function should return nil. If it is -difficult to tell whether Emacs or some other program provided the -current string, it is probably good enough to return nil if the string -is equal (according to `string=') to the last text Emacs provided.") +Note that the function should return a string only if a program +other than Emacs has provided a string for pasting; if Emacs +provided the most recent string, the function should return nil. +If it is difficult to tell whether Emacs or some other program +provided the current string, it is probably good enough to return +nil if the string is equal (according to `string=') to the last +text Emacs provided.") @@ -3184,7 +3186,10 @@ (set-advertised-calling-convention 'kill-append '(string before-p) "23.3") (defcustom yank-pop-change-selection nil - "If non-nil, rotating the kill ring changes the window system selection." + "Whether rotating the kill ring changes the window system selection. +If non-nil, whenever the kill ring is rotated (usually via the +`yank-pop' command), Emacs also calls `interprogram-cut-function' +to copy the new kill to the window system selection." :type 'boolean :group 'killing :version "23.1") ------------------------------------------------------------ revno: 108930 fixes bug(s): http://debbugs.gnu.org/11781 committer: Paul Eggert branch nick: trunk timestamp: Fri 2012-07-06 20:06:00 -0700 message: * sysdep.c (ULLONG_MAX): Define if not already defined. diff: === modified file 'src/ChangeLog' --- src/ChangeLog 2012-07-07 02:25:28 +0000 +++ src/ChangeLog 2012-07-07 03:06:00 +0000 @@ -1,5 +1,7 @@ 2012-07-07 Paul Eggert + * sysdep.c (ULLONG_MAX): Define if not already defined (Bug#11781). + * sysdep.c (list_system_processes): Port to NetBSD-current (Bug#11797). Do not require float-time's arg to fit in time_t (Bug#11825). === modified file 'src/sysdep.c' --- src/sysdep.c 2012-07-07 02:25:28 +0000 +++ src/sysdep.c 2012-07-07 03:06:00 +0000 @@ -108,6 +108,11 @@ static _Noreturn void croak (char *); #endif +/* ULLONG_MAX is missing on Red Hat Linux 7.3; see Bug#11781. */ +#ifndef ULLONG_MAX +#define ULLONG_MAX TYPE_MAXIMUM (unsigned long long int) +#endif + /* Declare here, including term.h is problematic on some systems. */ extern void tputs (const char *, int, int (*)(int));