Now on revision 107989. ------------------------------------------------------------ revno: 107989 committer: Paul Eggert branch nick: trunk timestamp: Sat 2012-04-21 23:56:42 -0700 message: * configure.in (doug_lea_malloc): Check for __malloc_initialize_hook. With glibc 2.14 or later, when compiled with GCC 4.7.0's -Werror=deprecated-declarations flag, use of hooks like __malloc_initialize_hook causes compilation to fail because these hooks are deprecated. Modify 'configure' to check for these hooks too. Simplify the 'configure' code to test for all the hooks at once. (emacs_cv_var___after_morecore_hook): Remove, replacing with ... (emacs_cv_var_doug_lea_malloc): ... this new var. diff: === modified file 'ChangeLog' --- ChangeLog 2012-04-21 17:15:03 +0000 +++ ChangeLog 2012-04-22 06:56:42 +0000 @@ -1,3 +1,14 @@ +2012-04-22 Paul Eggert + + * configure.in (doug_lea_malloc): Check for __malloc_initialize_hook. + With glibc 2.14 or later, when compiled with GCC 4.7.0's + -Werror=deprecated-declarations flag, use of hooks like + __malloc_initialize_hook causes compilation to fail because these + hooks are deprecated. Modify 'configure' to check for these hooks too. + Simplify the 'configure' code to test for all the hooks at once. + (emacs_cv_var___after_morecore_hook): Remove, replacing with ... + (emacs_cv_var_doug_lea_malloc): ... this new var. + 2012-04-21 Paul Eggert Sync from gnulib version 4f11d6bebc3098c64ffde27079ab0d0cecfd0cdc === modified file 'configure.in' --- configure.in 2012-04-21 17:15:03 +0000 +++ configure.in 2012-04-22 06:56:42 +0000 @@ -1708,17 +1708,20 @@ # Do the opsystem or machine files prohibit the use of the GNU malloc? # Assume not, until told otherwise. GNU_MALLOC=yes -doug_lea_malloc=yes -AC_CHECK_FUNC(malloc_get_state, ,doug_lea_malloc=no) -AC_CHECK_FUNC(malloc_set_state, ,doug_lea_malloc=no) -AC_CACHE_CHECK(whether __after_morecore_hook exists, - emacs_cv_var___after_morecore_hook, -[AC_LINK_IFELSE([AC_LANG_PROGRAM([[extern void (* __after_morecore_hook)();]],[[__after_morecore_hook = 0]])], - emacs_cv_var___after_morecore_hook=yes, - emacs_cv_var___after_morecore_hook=no)]) -if test $emacs_cv_var___after_morecore_hook = no; then - doug_lea_malloc=no -fi + +AC_CACHE_CHECK( + [whether malloc is Doug Lea style], + [emacs_cv_var_doug_lea_malloc], + [AC_LINK_IFELSE( + [AC_LANG_PROGRAM( + [[#include + static void hook (void) {}]], + [[malloc_set_state (malloc_get_state ()); + __after_morecore_hook = hook; + __malloc_initialize_hook = hook;]])], + [emacs_cv_var_doug_lea_malloc=yes], + [emacs_cv_var_doug_lea_malloc=no])]) +doug_lea_malloc=$emacs_cv_var_doug_lea_malloc dnl See comments in aix4-2.h about maybe using system malloc there. ------------------------------------------------------------ revno: 107988 fixes bug(s): http://debbugs.gnu.org/5725 committer: Leo Liu branch nick: trunk timestamp: Sun 2012-04-22 10:58:23 +0800 message: * src/sysdep.c (list_system_processes): Support Darwin. diff: === modified file 'src/ChangeLog' --- src/ChangeLog 2012-04-22 01:27:10 +0000 +++ src/ChangeLog 2012-04-22 02:58:23 +0000 @@ -1,3 +1,7 @@ +2012-04-22 Leo Liu + + * sysdep.c (list_system_processes): Support Darwin (Bug#5725). + 2012-04-22 Paul Eggert * sysdep.c [__FreeBSD__]: Minor cleanups. === modified file 'src/sysdep.c' --- src/sysdep.c 2012-04-22 01:27:10 +0000 +++ src/sysdep.c 2012-04-22 02:58:23 +0000 @@ -44,6 +44,10 @@ #include #endif +#ifdef DARWIN_OS +#include +#endif + #ifdef WINDOWSNT #define read sys_read #define write sys_write @@ -2536,12 +2540,16 @@ return proclist; } -#elif defined __FreeBSD__ +#elif defined BSD_SYSTEM Lisp_Object list_system_processes (void) { +#ifdef DARWIN_OS + int mib[] = {CTL_KERN, KERN_PROC, KERN_PROC_ALL}; +#else int mib[] = {CTL_KERN, KERN_PROC, KERN_PROC_PROC}; +#endif size_t len; struct kinfo_proc *procs; size_t i; @@ -2562,7 +2570,13 @@ GCPRO1 (proclist); len /= sizeof (struct kinfo_proc); for (i = 0; i < len; i++) - proclist = Fcons (make_fixnum_or_float (procs[i].ki_pid), proclist); + { +#ifdef DARWIN_OS + proclist = Fcons (make_fixnum_or_float (procs[i].kp_proc.p_pid), proclist); +#else + proclist = Fcons (make_fixnum_or_float (procs[i].ki_pid), proclist); +#endif + } UNGCPRO; xfree (procs); ------------------------------------------------------------ revno: 107987 committer: Paul Eggert branch nick: trunk timestamp: Sat 2012-04-21 18:27:10 -0700 message: * sysdep.c [__FreeBSD__]: Minor cleanups. (list_system_processes, system_process_attributes) [__FreeBSD__]: Use Emacs indenting style more consistently. Avoid some casts. Use 'double' consistently rather than mixing 'float' and 'double'. diff: === modified file 'src/ChangeLog' --- src/ChangeLog 2012-04-21 10:11:51 +0000 +++ src/ChangeLog 2012-04-22 01:27:10 +0000 @@ -1,3 +1,10 @@ +2012-04-22 Paul Eggert + + * sysdep.c [__FreeBSD__]: Minor cleanups. + (list_system_processes, system_process_attributes) [__FreeBSD__]: + Use Emacs indenting style more consistently. Avoid some casts. + Use 'double' consistently rather than mixing 'float' and 'double'. + 2012-04-21 Eduard Wiebe * sysdep.c (list_system_processes, system_process_attributes): Add === modified file 'src/sysdep.c' --- src/sysdep.c 2012-04-21 10:11:51 +0000 +++ src/sysdep.c 2012-04-22 01:27:10 +0000 @@ -2536,10 +2536,10 @@ return proclist; } -#elif defined (__FreeBSD__) +#elif defined __FreeBSD__ Lisp_Object -list_system_processes () +list_system_processes (void) { int mib[] = {CTL_KERN, KERN_PROC, KERN_PROC_PROC}; size_t len; @@ -2551,20 +2551,20 @@ if (sysctl (mib, 3, NULL, &len, NULL, 0) != 0) return proclist; - + procs = xmalloc (len); if (sysctl (mib, 3, procs, &len, NULL, 0) != 0) { xfree (procs); return proclist; } - + GCPRO1 (proclist); len /= sizeof (struct kinfo_proc); for (i = 0; i < len; i++) proclist = Fcons (make_fixnum_or_float (procs[i].ki_pid), proclist); UNGCPRO; - + xfree (procs); return proclist; @@ -3120,13 +3120,13 @@ return attrs; } -#elif defined(__FreeBSD__) +#elif defined __FreeBSD__ Lisp_Object system_process_attributes (Lisp_Object pid) { int proc_id; - int pagesize = getpagesize(); + int pagesize = getpagesize (); int npages; int fscale; struct passwd *pw; @@ -3135,33 +3135,33 @@ size_t len; char args[MAXPATHLEN]; EMACS_TIME t, now; - + int mib[4] = {CTL_KERN, KERN_PROC, KERN_PROC_PID}; struct kinfo_proc proc; - size_t proclen = sizeof(proc); + size_t proclen = sizeof proc; struct gcpro gcpro1, gcpro2; Lisp_Object attrs = Qnil; Lisp_Object decoded_comm; - + CHECK_NUMBER_OR_FLOAT (pid); proc_id = FLOATP (pid) ? XFLOAT_DATA (pid) : XINT (pid); mib[3] = proc_id; - + if (sysctl (mib, 4, &proc, &proclen, NULL, 0) != 0) return attrs; GCPRO2 (attrs, decoded_comm); - - attrs = Fcons (Fcons (Qeuid, make_fixnum_or_float(proc.ki_uid)), attrs); - + + attrs = Fcons (Fcons (Qeuid, make_fixnum_or_float (proc.ki_uid)), attrs); + BLOCK_INPUT; pw = getpwuid (proc.ki_uid); UNBLOCK_INPUT; if (pw) attrs = Fcons (Fcons (Quser, build_string (pw->pw_name)), attrs); - attrs = Fcons (Fcons (Qegid, make_fixnum_or_float(proc.ki_svgid)), attrs); + attrs = Fcons (Fcons (Qegid, make_fixnum_or_float (proc.ki_svgid)), attrs); BLOCK_INPUT; gr = getgrgid (proc.ki_svgid); @@ -3172,7 +3172,7 @@ decoded_comm = code_convert_string_norecord (make_unibyte_string (proc.ki_comm, strlen (proc.ki_comm)), Vlocale_coding_system, 0); - + attrs = Fcons (Fcons (Qcomm, decoded_comm), attrs); { char state[2] = {'\0', '\0'}; @@ -3185,7 +3185,7 @@ case SSLEEP: state[0] = 'S'; break; - + case SLOCK: state[0] = 'D'; break; @@ -3193,14 +3193,14 @@ case SZOMB: state[0] = 'Z'; break; - + case SSTOP: state[0] = 'T'; break; } attrs = Fcons (Fcons (Qstate, build_string (state)), attrs); } - + attrs = Fcons (Fcons (Qppid, make_fixnum_or_float (proc.ki_ppid)), attrs); attrs = Fcons (Fcons (Qpgrp, make_fixnum_or_float (proc.ki_pgid)), attrs); attrs = Fcons (Fcons (Qsess, make_fixnum_or_float (proc.ki_sid)), attrs); @@ -3210,7 +3210,7 @@ UNBLOCK_INPUT; if (ttyname) attrs = Fcons (Fcons (Qtty, build_string (ttyname)), attrs); - + attrs = Fcons (Fcons (Qtpgid, make_fixnum_or_float (proc.ki_tpgid)), attrs); attrs = Fcons (Fcons (Qminflt, make_fixnum_or_float (proc.ki_rusage.ru_minflt)), attrs); attrs = Fcons (Fcons (Qmajflt, make_fixnum_or_float (proc.ki_rusage.ru_majflt)), attrs); @@ -3222,50 +3222,52 @@ make_number (EMACS_SECS (ts) & 0xffff), \ make_number (EMACS_USECS (ts))) - attrs = Fcons (Fcons (Qutime, TIMELIST(proc.ki_rusage.ru_utime)), attrs); - attrs = Fcons (Fcons (Qstime, TIMELIST(proc.ki_rusage.ru_stime)), attrs); + attrs = Fcons (Fcons (Qutime, TIMELIST (proc.ki_rusage.ru_utime)), attrs); + attrs = Fcons (Fcons (Qstime, TIMELIST (proc.ki_rusage.ru_stime)), attrs); EMACS_ADD_TIME (t, proc.ki_rusage.ru_utime, proc.ki_rusage.ru_stime); - attrs = Fcons (Fcons (Qtime, TIMELIST(t)), attrs); + attrs = Fcons (Fcons (Qtime, TIMELIST (t)), attrs); - attrs = Fcons (Fcons (Qcutime, TIMELIST(proc.ki_rusage_ch.ru_utime)), attrs); - attrs = Fcons (Fcons (Qcstime, TIMELIST(proc.ki_rusage_ch.ru_utime)), attrs); + attrs = Fcons (Fcons (Qcutime, TIMELIST (proc.ki_rusage_ch.ru_utime)), attrs); + attrs = Fcons (Fcons (Qcstime, TIMELIST (proc.ki_rusage_ch.ru_utime)), attrs); EMACS_ADD_TIME (t, proc.ki_rusage_ch.ru_utime, proc.ki_rusage_ch.ru_stime); - attrs = Fcons (Fcons (Qctime, TIMELIST(t)), attrs); + attrs = Fcons (Fcons (Qctime, TIMELIST (t)), attrs); - attrs = Fcons (Fcons (Qthcount, make_fixnum_or_float (proc.ki_numthreads)), attrs); + attrs = Fcons (Fcons (Qthcount, make_fixnum_or_float (proc.ki_numthreads)), + attrs); attrs = Fcons (Fcons (Qpri, make_number (proc.ki_pri.pri_native)), attrs); attrs = Fcons (Fcons (Qnice, make_number (proc.ki_nice)), attrs); - attrs = Fcons (Fcons (Qstart, TIMELIST(proc.ki_start)), attrs); + attrs = Fcons (Fcons (Qstart, TIMELIST (proc.ki_start)), attrs); attrs = Fcons (Fcons (Qvsize, make_number (proc.ki_size >> 10)), attrs); - attrs = Fcons (Fcons (Qrss, make_number (proc.ki_rssize * pagesize >> 10)), attrs); + attrs = Fcons (Fcons (Qrss, make_number (proc.ki_rssize * pagesize >> 10)), + attrs); EMACS_GET_TIME (now); EMACS_SUB_TIME (t, now, proc.ki_start); - attrs = Fcons (Fcons (Qetime, TIMELIST(t)), attrs); + attrs = Fcons (Fcons (Qetime, TIMELIST (t)), attrs); #undef TIMELIST - - len = sizeof(fscale); + + len = sizeof fscale; if (sysctlbyname ("kern.fscale", &fscale, &len, NULL, 0) == 0) { - float pcpu; + double pcpu; fixpt_t ccpu; - len = sizeof (ccpu); + len = sizeof ccpu; if (sysctlbyname ("kern.ccpu", &ccpu, &len, NULL, 0) == 0) { - pcpu = 100.0 * ((double) proc.ki_pctcpu / fscale) - / (1.0 - exp(proc.ki_swtime * log((double) ccpu / fscale))); - attrs = Fcons (Fcons (Qpcpu, make_fixnum_or_float(pcpu)), attrs); + pcpu = (100.0 * proc.ki_pctcpu / fscale + / (1 - exp (proc.ki_swtime * log ((double) ccpu / fscale)))); + attrs = Fcons (Fcons (Qpcpu, make_fixnum_or_float (pcpu)), attrs); } } - len = sizeof(npages); + len = sizeof npages; if (sysctlbyname ("hw.availpages", &npages, &len, NULL, 0) == 0) { - float pmem = proc.ki_flag & P_INMEM - ? 100.0 * ((float) proc.ki_rssize / npages) - : 0.0; - attrs = Fcons (Fcons (Qpmem, make_fixnum_or_float(pmem)), attrs); + double pmem = (proc.ki_flag & P_INMEM + ? 100.0 * proc.ki_rssize / npages + : 0); + attrs = Fcons (Fcons (Qpmem, make_fixnum_or_float (pmem)), attrs); } mib[2] = KERN_PROC_ARGS; @@ -3279,13 +3281,14 @@ args[i] = ' '; } - decoded_comm = code_convert_string_norecord - (make_unibyte_string (args, strlen (args)), - Vlocale_coding_system, 0); + decoded_comm = + (code_convert_string_norecord + (make_unibyte_string (args, strlen (args)), + Vlocale_coding_system, 0)); attrs = Fcons (Fcons (Qargs, decoded_comm), attrs); } - + UNGCPRO; return attrs; } ------------------------------------------------------------ revno: 107986 fixes bug(s): http://debbugs.gnu.org/ committer: Paul Eggert branch nick: trunk timestamp: Sat 2012-04-21 10:15:03 -0700 message: Sync from gnulib version 4f11d6bebc3098c64ffde27079ab0d0cecfd0cdc dated 2011-10-07. Regenerating from current gnulib would be a pervasive change, and currently the trunk isn't open to such changes. * configure.in (WARN_CFLAGS): Remove; no longer needed now that gnulib does it. * lib/gnulib.mk, m4/gl-comp.m4: Regenerate. diff: === modified file 'ChangeLog' --- ChangeLog 2012-04-21 08:03:41 +0000 +++ ChangeLog 2012-04-21 17:15:03 +0000 @@ -1,3 +1,12 @@ +2012-04-21 Paul Eggert + + Sync from gnulib version 4f11d6bebc3098c64ffde27079ab0d0cecfd0cdc + dated 2011-10-07. Regenerating from current gnulib would be a + pervasive change, and currently the trunk isn't open to such changes. + * configure.in (WARN_CFLAGS): Remove; no longer needed now + that gnulib does it. + * lib/gnulib.mk, m4/gl-comp.m4: Regenerate. + 2012-04-21 Andreas Schwab * m4/gl-comp.m4: Update. (Bug#11285) === modified file 'configure.in' --- configure.in 2012-04-20 08:48:50 +0000 +++ configure.in 2012-04-21 17:15:03 +0000 @@ -787,8 +787,6 @@ gl_WARN_ADD([-fdiagnostics-show-option]) gl_WARN_ADD([-funit-at-a-time]) - AC_SUBST([WARN_CFLAGS]) - AC_DEFINE([lint], [1], [Define to 1 if the compiler is checking for lint.]) AC_DEFINE([_FORTIFY_SOURCE], [2], [enable compile-time and run-time bounds-checking, and some warnings]) === modified file 'lib/gnulib.mk' --- lib/gnulib.mk 2012-02-01 06:04:34 +0000 +++ lib/gnulib.mk 2012-04-21 17:15:03 +0000 @@ -21,7 +21,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=msvc-inval --avoid=msvc-nothrow --avoid=raise --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 dup2 filemode getloadavg getopt-gnu ignore-value intprops lstat mktime pthread_sigmask readlink socklen stdarg stdio strftime strtoimax strtoumax symlink sys_stat +# 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=msvc-inval --avoid=msvc-nothrow --avoid=raise --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 dup2 filemode getloadavg getopt-gnu ignore-value intprops lstat manywarnings mktime pthread_sigmask readlink socklen stdarg stdio strftime strtoimax strtoumax symlink sys_stat warnings MOSTLYCLEANFILES += core *.stackdump === modified file 'm4/gl-comp.m4' --- m4/gl-comp.m4 2012-04-21 08:03:41 +0000 +++ m4/gl-comp.m4 2012-04-21 17:15:03 +0000 @@ -1,5 +1,5 @@ # DO NOT EDIT! GENERATED AUTOMATICALLY! -# Copyright (C) 2002-2012 Free Software Foundation, Inc. +# Copyright (C) 2002-2011 Free Software Foundation, Inc. # # This file is free software; you can redistribute it and/or modify # it under the terms of the GNU General Public License as published by @@ -62,6 +62,7 @@ # Code from module largefile: AC_REQUIRE([AC_SYS_LARGEFILE]) # Code from module lstat: + # Code from module manywarnings: # Code from module mktime: # Code from module multiarch: # Code from module nocrash: @@ -100,6 +101,7 @@ # Code from module u64: # Code from module unistd: # Code from module verify: + # Code from module warnings: ]) # This macro should be invoked from ./configure.in, in the section @@ -216,6 +218,7 @@ gl_TIME_MODULE_INDICATOR([time_r]) AC_REQUIRE([AC_C_INLINE]) gl_UNISTD_H +AC_SUBST([WARN_CFLAGS]) gl_gnulib_enabled_dosname=false gl_gnulib_enabled_be453cec5eecf5731a274f2de7f2db36=false gl_gnulib_enabled_pathmax=false ------------------------------------------------------------ revno: 107985 committer: Juanma Barranquero branch nick: trunk timestamp: Sat 2012-04-21 18:57:49 +0200 message: Don't add modes to which-func-modes if already set to t. * lisp/progmodes/verilog-mode.el (verilog-mode): Check whether which-func-modes is t before adding verilog-mode. Reported by Andy Moreton . * lisp/mh-e/mh-folder.el (top): Check whether which-func-modes is t before adding mh-folder-mode. diff: === modified file 'lisp/ChangeLog' --- lisp/ChangeLog 2012-04-21 14:12:27 +0000 +++ lisp/ChangeLog 2012-04-21 16:57:49 +0000 @@ -1,7 +1,12 @@ +2012-04-21 Juanma Barranquero + + * progmodes/verilog-mode.el (verilog-mode): Check whether + which-func-modes is t before adding verilog-mode. + Reported by Andy Moreton . + 2012-04-21 Leo Liu - * net/rcirc.el (rcirc): Avoid error when process-contact returns - t. + * net/rcirc.el (rcirc): Avoid error when process-contact returns t. 2012-04-21 Michael Vehrs === modified file 'lisp/mh-e/ChangeLog' --- lisp/mh-e/ChangeLog 2012-02-09 07:48:22 +0000 +++ lisp/mh-e/ChangeLog 2012-04-21 16:57:49 +0000 @@ -1,3 +1,8 @@ +2012-04-21 Juanma Barranquero + + * mh-folder.el (top): Check whether which-func-modes is t before + adding mh-folder-mode. + 2011-11-20 Bill Wohler * Release MH-E version 8.3.1. === modified file 'lisp/mh-e/mh-folder.el' --- lisp/mh-e/mh-folder.el 2012-01-19 07:21:25 +0000 +++ lisp/mh-e/mh-folder.el 2012-04-21 16:57:49 +0000 @@ -520,7 +520,7 @@ ;; Register mh-folder-mode as supporting which-function-mode... (mh-require 'which-func nil t) -(when (boundp 'which-func-modes) +(when (and (boundp 'which-func-modes) (listp which-func-modes)) (add-to-list 'which-func-modes 'mh-folder-mode)) ;; Shush compiler. === modified file 'lisp/progmodes/verilog-mode.el' --- lisp/progmodes/verilog-mode.el 2012-04-09 13:05:48 +0000 +++ lisp/progmodes/verilog-mode.el 2012-04-21 16:57:49 +0000 @@ -3592,7 +3592,7 @@ (set (make-local-variable 'imenu-generic-expression) verilog-imenu-generic-expression) ;; Tell which-func-modes that imenu knows about verilog - (when (boundp 'which-func-modes) + (when (and (boundp 'which-func-modes) (listp which-func-modes)) (add-to-list 'which-func-modes 'verilog-mode)) ;; hideshow support (when (boundp 'hs-special-modes-alist) ------------------------------------------------------------ revno: 107984 committer: Leo Liu branch nick: trunk timestamp: Sat 2012-04-21 22:12:27 +0800 message: * lisp/net/rcirc.el (rcirc): Avoid error when process-contact returns t. diff: === modified file 'lisp/ChangeLog' --- lisp/ChangeLog 2012-04-21 05:54:39 +0000 +++ lisp/ChangeLog 2012-04-21 14:12:27 +0000 @@ -1,3 +1,8 @@ +2012-04-21 Leo Liu + + * net/rcirc.el (rcirc): Avoid error when process-contact returns + t. + 2012-04-21 Michael Vehrs * woman.el: Add support for "T{ T}" tbl syntax, and fix the === modified file 'lisp/net/rcirc.el' --- lisp/net/rcirc.el 2012-04-14 01:46:06 +0000 +++ lisp/net/rcirc.el 2012-04-21 14:12:27 +0000 @@ -479,7 +479,8 @@ rcirc-default-full-name)) (channels (plist-get (cdr c) :channels)) (password (plist-get (cdr c) :password)) - (encryption (plist-get (cdr c) :encryption))) + (encryption (plist-get (cdr c) :encryption)) + contact) (when server (let (connected) (dolist (p (rcirc-process-list)) @@ -491,10 +492,11 @@ full-name channels password encryption) (quit (message "Quit connecting to %s" server))) (with-current-buffer (process-buffer connected) - (setq connected-servers - (cons (process-contact (get-buffer-process - (current-buffer)) :host) - connected-servers)))))))) + (setq contact (process-contact + (get-buffer-process (current-buffer)) :host)) + (setq connected-servers + (cons (if (stringp contact) contact server) + connected-servers)))))))) (when connected-servers (message "Already connected to %s" (if (cdr connected-servers) ------------------------------------------------------------ revno: 107983 fixes bug(s): http://debbugs.gnu.org/5243 author: Eduard Wiebe committer: Chong Yidong branch nick: trunk timestamp: Sat 2012-04-21 18:11:51 +0800 message: Add system processes support for FreeBSD. * src/sysdep.c (list_system_processes, system_process_attributes): Add implementation for FreeBSD. diff: === modified file 'src/ChangeLog' --- src/ChangeLog 2012-04-21 08:03:52 +0000 +++ src/ChangeLog 2012-04-21 10:11:51 +0000 @@ -1,3 +1,8 @@ +2012-04-21 Eduard Wiebe + + * sysdep.c (list_system_processes, system_process_attributes): Add + implementation for FreeBSD (Bug#5243). + 2012-04-21 Andreas Schwab * lisp.mk (lisp): Update. === modified file 'src/sysdep.c' --- src/sysdep.c 2012-01-19 07:21:25 +0000 +++ src/sysdep.c 2012-04-21 10:11:51 +0000 @@ -37,6 +37,13 @@ #include "sysselect.h" #include "blockinput.h" +#ifdef __FreeBSD__ +#include +#include +#include */ +#include +#endif + #ifdef WINDOWSNT #define read sys_read #define write sys_write @@ -2529,6 +2536,40 @@ return proclist; } +#elif defined (__FreeBSD__) + +Lisp_Object +list_system_processes () +{ + int mib[] = {CTL_KERN, KERN_PROC, KERN_PROC_PROC}; + size_t len; + struct kinfo_proc *procs; + size_t i; + + struct gcpro gcpro1; + Lisp_Object proclist = Qnil; + + if (sysctl (mib, 3, NULL, &len, NULL, 0) != 0) + return proclist; + + procs = xmalloc (len); + if (sysctl (mib, 3, procs, &len, NULL, 0) != 0) + { + xfree (procs); + return proclist; + } + + GCPRO1 (proclist); + len /= sizeof (struct kinfo_proc); + for (i = 0; i < len; i++) + proclist = Fcons (make_fixnum_or_float (procs[i].ki_pid), proclist); + UNGCPRO; + + xfree (procs); + + return proclist; +} + /* The WINDOWSNT implementation is in w32.c. The MSDOS implementation is in dosfns.c. */ #elif !defined (WINDOWSNT) && !defined (MSDOS) @@ -3079,6 +3120,176 @@ return attrs; } +#elif defined(__FreeBSD__) + +Lisp_Object +system_process_attributes (Lisp_Object pid) +{ + int proc_id; + int pagesize = getpagesize(); + int npages; + int fscale; + struct passwd *pw; + struct group *gr; + char *ttyname; + size_t len; + char args[MAXPATHLEN]; + EMACS_TIME t, now; + + int mib[4] = {CTL_KERN, KERN_PROC, KERN_PROC_PID}; + struct kinfo_proc proc; + size_t proclen = sizeof(proc); + + struct gcpro gcpro1, gcpro2; + Lisp_Object attrs = Qnil; + Lisp_Object decoded_comm; + + CHECK_NUMBER_OR_FLOAT (pid); + proc_id = FLOATP (pid) ? XFLOAT_DATA (pid) : XINT (pid); + mib[3] = proc_id; + + if (sysctl (mib, 4, &proc, &proclen, NULL, 0) != 0) + return attrs; + + GCPRO2 (attrs, decoded_comm); + + attrs = Fcons (Fcons (Qeuid, make_fixnum_or_float(proc.ki_uid)), attrs); + + BLOCK_INPUT; + pw = getpwuid (proc.ki_uid); + UNBLOCK_INPUT; + if (pw) + attrs = Fcons (Fcons (Quser, build_string (pw->pw_name)), attrs); + + attrs = Fcons (Fcons (Qegid, make_fixnum_or_float(proc.ki_svgid)), attrs); + + BLOCK_INPUT; + gr = getgrgid (proc.ki_svgid); + UNBLOCK_INPUT; + if (gr) + attrs = Fcons (Fcons (Qgroup, build_string (gr->gr_name)), attrs); + + decoded_comm = code_convert_string_norecord + (make_unibyte_string (proc.ki_comm, strlen (proc.ki_comm)), + Vlocale_coding_system, 0); + + attrs = Fcons (Fcons (Qcomm, decoded_comm), attrs); + { + char state[2] = {'\0', '\0'}; + switch (proc.ki_stat) + { + case SRUN: + state[0] = 'R'; + break; + + case SSLEEP: + state[0] = 'S'; + break; + + case SLOCK: + state[0] = 'D'; + break; + + case SZOMB: + state[0] = 'Z'; + break; + + case SSTOP: + state[0] = 'T'; + break; + } + attrs = Fcons (Fcons (Qstate, build_string (state)), attrs); + } + + attrs = Fcons (Fcons (Qppid, make_fixnum_or_float (proc.ki_ppid)), attrs); + attrs = Fcons (Fcons (Qpgrp, make_fixnum_or_float (proc.ki_pgid)), attrs); + attrs = Fcons (Fcons (Qsess, make_fixnum_or_float (proc.ki_sid)), attrs); + + BLOCK_INPUT; + ttyname = proc.ki_tdev == NODEV ? NULL : devname (proc.ki_tdev, S_IFCHR); + UNBLOCK_INPUT; + if (ttyname) + attrs = Fcons (Fcons (Qtty, build_string (ttyname)), attrs); + + attrs = Fcons (Fcons (Qtpgid, make_fixnum_or_float (proc.ki_tpgid)), attrs); + attrs = Fcons (Fcons (Qminflt, make_fixnum_or_float (proc.ki_rusage.ru_minflt)), attrs); + attrs = Fcons (Fcons (Qmajflt, make_fixnum_or_float (proc.ki_rusage.ru_majflt)), attrs); + attrs = Fcons (Fcons (Qcminflt, make_number (proc.ki_rusage_ch.ru_minflt)), attrs); + attrs = Fcons (Fcons (Qcmajflt, make_number (proc.ki_rusage_ch.ru_majflt)), attrs); + +#define TIMELIST(ts) \ + list3 (make_number (EMACS_SECS (ts) >> 16 & 0xffff), \ + make_number (EMACS_SECS (ts) & 0xffff), \ + make_number (EMACS_USECS (ts))) + + attrs = Fcons (Fcons (Qutime, TIMELIST(proc.ki_rusage.ru_utime)), attrs); + attrs = Fcons (Fcons (Qstime, TIMELIST(proc.ki_rusage.ru_stime)), attrs); + EMACS_ADD_TIME (t, proc.ki_rusage.ru_utime, proc.ki_rusage.ru_stime); + attrs = Fcons (Fcons (Qtime, TIMELIST(t)), attrs); + + attrs = Fcons (Fcons (Qcutime, TIMELIST(proc.ki_rusage_ch.ru_utime)), attrs); + attrs = Fcons (Fcons (Qcstime, TIMELIST(proc.ki_rusage_ch.ru_utime)), attrs); + EMACS_ADD_TIME (t, proc.ki_rusage_ch.ru_utime, proc.ki_rusage_ch.ru_stime); + attrs = Fcons (Fcons (Qctime, TIMELIST(t)), attrs); + + attrs = Fcons (Fcons (Qthcount, make_fixnum_or_float (proc.ki_numthreads)), attrs); + attrs = Fcons (Fcons (Qpri, make_number (proc.ki_pri.pri_native)), attrs); + attrs = Fcons (Fcons (Qnice, make_number (proc.ki_nice)), attrs); + attrs = Fcons (Fcons (Qstart, TIMELIST(proc.ki_start)), attrs); + attrs = Fcons (Fcons (Qvsize, make_number (proc.ki_size >> 10)), attrs); + attrs = Fcons (Fcons (Qrss, make_number (proc.ki_rssize * pagesize >> 10)), attrs); + + EMACS_GET_TIME (now); + EMACS_SUB_TIME (t, now, proc.ki_start); + attrs = Fcons (Fcons (Qetime, TIMELIST(t)), attrs); + +#undef TIMELIST + + len = sizeof(fscale); + if (sysctlbyname ("kern.fscale", &fscale, &len, NULL, 0) == 0) + { + float pcpu; + fixpt_t ccpu; + len = sizeof (ccpu); + if (sysctlbyname ("kern.ccpu", &ccpu, &len, NULL, 0) == 0) + { + pcpu = 100.0 * ((double) proc.ki_pctcpu / fscale) + / (1.0 - exp(proc.ki_swtime * log((double) ccpu / fscale))); + attrs = Fcons (Fcons (Qpcpu, make_fixnum_or_float(pcpu)), attrs); + } + } + + len = sizeof(npages); + if (sysctlbyname ("hw.availpages", &npages, &len, NULL, 0) == 0) + { + float pmem = proc.ki_flag & P_INMEM + ? 100.0 * ((float) proc.ki_rssize / npages) + : 0.0; + attrs = Fcons (Fcons (Qpmem, make_fixnum_or_float(pmem)), attrs); + } + + mib[2] = KERN_PROC_ARGS; + len = MAXPATHLEN; + if (sysctl (mib, 4, args, &len, NULL, 0) == 0) + { + int i; + for (i = 0; i < len; i++) + { + if (! args[i] && i < len - 1) + args[i] = ' '; + } + + decoded_comm = code_convert_string_norecord + (make_unibyte_string (args, strlen (args)), + Vlocale_coding_system, 0); + + attrs = Fcons (Fcons (Qargs, decoded_comm), attrs); + } + + UNGCPRO; + return attrs; +} + /* The WINDOWSNT implementation is in w32.c. The MSDOS implementation is in dosfns.c. */ #elif !defined (WINDOWSNT) && !defined (MSDOS) ------------------------------------------------------------ revno: 107982 [merge] committer: Eli Zaretskii branch nick: trunk timestamp: Sat 2012-04-21 12:53:00 +0300 message: Fix the MS-DOS build broken by recent leim-related changes. msdos/sedleim.inp (RUN_EMACS): Replace BUILT_EMACS with EMACS. Remove stale editing of "else make quail". (.PHONY, compile-targets): Remove targets. (compile-main): Edit into something that can be done without requiring a Unixy shell. (bootstrap-clean): Likewise: edit to not require $(setwins). msdos/sed1v2.inp: Edit "cd $(leimdir) && $(MAKE) ..." into the equivalent "$(MAKE) $(MFLAGS) -C $(leimdir) ..." command. diff: === modified file 'msdos/ChangeLog' --- msdos/ChangeLog 2012-04-18 16:45:13 +0000 +++ msdos/ChangeLog 2012-04-21 09:48:42 +0000 @@ -1,3 +1,15 @@ +2012-04-21 Eli Zaretskii + + * sedleim.inp (RUN_EMACS): Replace BUILT_EMACS with EMACS. + Remove stale editing of "else make quail". + (.PHONY, compile-targets): Remove targets. + (compile-main): Edit into something that can be done without + requiring a Unixy shell. + (bootstrap-clean): Likewise: edit to not require $(setwins). + + * sed1v2.inp: Edit "cd $(leimdir) && $(MAKE) ..." into the + equivalent "$(MAKE) $(MFLAGS) -C $(leimdir) ..." command. + 2012-04-18 Paul Eggert configure: new option --enable-gcc-warnings (Bug#11207) === modified file 'msdos/sed1v2.inp' --- msdos/sed1v2.inp 2012-04-14 05:04:54 +0000 +++ msdos/sed1v2.inp 2012-04-21 09:48:42 +0000 @@ -152,6 +152,8 @@ /^ echo[ ][ ]*timestamp/s/echo /djecho / /^ .*djecho timestamp/a\ @rm -f gl-tmp +/^ cd \$(leimdir) && \$(MAKE)/c\ + $(MAKE) $(MFLAGS) -C $(leimdir) leim-list.el EMACS=$(bootstrap_exe) /^ cd \$(lib) && \$(MAKE)/c\ $(MAKE) $(MFLAGS) -C $(lib) libgnu.a /^RUN_TEMACS *=/s|`/bin/pwd`|.| === modified file 'msdos/sedleim.inp' --- msdos/sedleim.inp 2012-01-19 07:21:25 +0000 +++ msdos/sedleim.inp 2012-04-21 09:48:42 +0000 @@ -33,14 +33,11 @@ /RUN_EMACS *=/,/^$/c\ export EMACSLOADPATH=${buildlisppath}\ -RUN_EMACS = ${BUILT_EMACS} -batch --no-site-file +RUN_EMACS = ${EMACS} -batch --no-site-file /^ cd ../c\ ${MAKE} -C ../src ${MFLAGS} emacs -/else make quail/c\ - if not exist quail\\nul make quail - /if \[ -f $@ \]\; then true/d /fi$/s/; fi$// @@ -51,9 +48,23 @@ /^ --eval/,/; \\$/s|\; \\|| } +/^setwins=/,/^$/d +/^\.PHONY: compile-targets/d +/^compile-targets:/d +/^compile-main:/,/^$/c\ +compile-main: ${TIT_MISC}\ + $(MAKE) $(MFLAGS) $(foreach f,$(wildcard ja-dic/*.el),$(basename $f).elc)\ + $(MAKE) $(MFLAGS) $(foreach f,$(wildcard quail/*.el),$(basename $f).elc)\ + + /^install:/,/^$/c\ install: all\ +/^bootstrap-clean:/,/^$/c\ +bootstrap-clean: clean\ + rm -f ja-dic/*.elc quail/*.elc\ + + /^ if test -f/d /^distclean:/,/^$/ { s|\(rm -f Makefile\)|\1 stamp-subdir| ------------------------------------------------------------ revno: 107981 committer: Andreas Schwab branch nick: emacs timestamp: Sat 2012-04-21 10:03:52 +0200 message: * lisp.mk (lisp): Update. diff: === modified file 'src/ChangeLog' --- src/ChangeLog 2012-04-20 21:26:18 +0000 +++ src/ChangeLog 2012-04-21 08:03:52 +0000 @@ -1,3 +1,7 @@ +2012-04-21 Andreas Schwab + + * lisp.mk (lisp): Update. + 2012-04-20 Paul Eggert * keyboard.c (process_pending_signals): Define only if SYNC_INPUT. === modified file 'src/lisp.mk' --- src/lisp.mk 2012-01-05 09:46:05 +0000 +++ src/lisp.mk 2012-04-21 08:03:52 +0000 @@ -131,6 +131,7 @@ $(lispsource)/replace.elc \ $(lispsource)/buff-menu.elc \ $(lispsource)/fringe.elc \ + $(lispsource)/emacs-lisp/regexp-opt.elc \ $(lispsource)/image.elc \ $(lispsource)/international/fontset.elc \ $(lispsource)/dnd.elc \ ------------------------------------------------------------ revno: 107980 committer: Andreas Schwab branch nick: emacs timestamp: Sat 2012-04-21 10:03:41 +0200 message: Fixes: debbugs:11285 * m4/gl-comp.m4: Update. diff: === modified file 'ChangeLog' --- ChangeLog 2012-04-20 16:27:52 +0000 +++ ChangeLog 2012-04-21 08:03:41 +0000 @@ -1,3 +1,7 @@ +2012-04-21 Andreas Schwab + + * m4/gl-comp.m4: Update. (Bug#11285) + 2012-04-20 Ludovic Courtès * configure.in: Don't use the -R option (Bug#11251). === modified file 'm4/gl-comp.m4' --- m4/gl-comp.m4 2012-02-01 06:04:34 +0000 +++ m4/gl-comp.m4 2012-04-21 08:03:41 +0000 @@ -1,5 +1,5 @@ # DO NOT EDIT! GENERATED AUTOMATICALLY! -# Copyright (C) 2002-2011 Free Software Foundation, Inc. +# Copyright (C) 2002-2012 Free Software Foundation, Inc. # # This file is free software; you can redistribute it and/or modify # it under the terms of the GNU General Public License as published by @@ -562,6 +562,7 @@ m4/largefile.m4 m4/longlong.m4 m4/lstat.m4 + m4/manywarnings.m4 m4/md5.m4 m4/mktime.m4 m4/multiarch.m4 @@ -596,5 +597,6 @@ m4/tm_gmtoff.m4 m4/unistd_h.m4 m4/warn-on-use.m4 + m4/warnings.m4 m4/wchar_t.m4 ]) ------------------------------------------------------------ revno: 107979 fixes bug(s): http://debbugs.gnu.org/5635 author: Michael Vehrs committer: Chong Yidong branch nick: trunk timestamp: Sat 2012-04-21 13:54:39 +0800 message: Improve tbl support in woman.el. * lisp/woman.el (woman-find-next-control-line): New arg, specifying an additional regexp component for the control line. (woman2-roff-buffer): Use it. (woman-break-table): New function. (woman2-TS): Use it. And some cleanups: * lisp/woman.el (woman-set-buffer-display-table, woman-decode-region) (woman-horizontal-escapes, woman-negative-vertical-space) (woman-tab-to-tab-stop, woman2-fc, woman2-TS) (WoMan-warn-ignored): Use ?\s instead of ?\ . diff: === modified file 'lisp/ChangeLog' --- lisp/ChangeLog 2012-04-20 19:56:59 +0000 +++ lisp/ChangeLog 2012-04-21 05:54:39 +0000 @@ -1,3 +1,20 @@ +2012-04-21 Michael Vehrs + + * woman.el: Add support for "T{ T}" tbl syntax, and fix the + filling of the last column of a table (Bug#5635). + (woman-find-next-control-line): New arg, specifying an additional + regexp component for the control line. + (woman2-roff-buffer): Use it. + (woman-break-table): New function. + (woman2-TS): Use it. + +2012-04-21 Chong Yidong + + * woman.el (woman-set-buffer-display-table, woman-decode-region) + (woman-horizontal-escapes, woman-negative-vertical-space) + (woman-tab-to-tab-stop, woman2-fc, woman2-TS) + (WoMan-warn-ignored): Use ?\s instead of ?\ . + 2012-04-20 Stefan Monnier * minibuffer.el (completion-file-name-table): Complete user names. === modified file 'lisp/woman.el' --- lisp/woman.el 2012-04-16 18:46:46 +0000 +++ lisp/woman.el 2012-04-21 05:54:39 +0000 @@ -2133,7 +2133,7 @@ (copy-sequence standard-display-table) (make-display-table))) ;; Display the following internal chars correctly: - (aset buffer-display-table woman-unpadded-space-char [?\ ]) + (aset buffer-display-table woman-unpadded-space-char [?\s]) (aset buffer-display-table woman-escaped-escape-char [?\\])) @@ -2393,10 +2393,12 @@ (progn (goto-char from) (while (search-forward woman-escaped-escape-string nil t) - (delete-char -1) (insert ?\\)) + (delete-char -1) + (insert ?\\)) (goto-char from) (while (search-forward woman-unpadded-space-string nil t) - (delete-char -1) (insert ?\ )))) + (delete-char -1) + (insert ?\s)))) ;; Must return the new end of file if used in format-alist. (point-max))) @@ -2437,9 +2439,9 @@ ;; first backwards then forwards: (while (and (<= (setq N (1+ N)) 0) - (cond ((memq (preceding-char) '(?\ ?\t)) + (cond ((memq (preceding-char) '(?\s ?\t)) (delete-char -1) t) - ((memq (following-char) '(?\ ?\t)) + ((memq (following-char) '(?\s ?\t)) (delete-char 1) t) (t nil)))) (if (<= N 0) @@ -3376,7 +3378,7 @@ ;; this used to be globally bound to nil, to avoid an error. Instead ;; we can use bound-and-true-p in woman-translate. (defvar woman-translations) -;; A list of the form (\"[ace]\" (a . b) (c . d) (e . ?\ )) or nil. +;; A list of the form (\"[ace]\" (a . b) (c . d) (e . ?\s)) or nil. (defun woman-get-next-char () "Return and delete next char in buffer, including special chars." @@ -3711,7 +3713,9 @@ (setq fn 'woman2-format-paragraphs)))) () ;; Find next control line: - (set-marker to (woman-find-next-control-line)) + (if (equal woman-request "TS") + (set-marker to (woman-find-next-control-line "TE")) + (set-marker to (woman-find-next-control-line))) ;; Call the appropriate function: (funcall fn to))) (if (not (eobp)) ; This should not happen, but ... @@ -3722,12 +3726,13 @@ (fset 'insert-and-inherit insert-and-inherit) (set-marker to nil)))) -(defun woman-find-next-control-line () - "Find and return start of next control line." -; (let ((to (save-excursion -; (re-search-forward "^\\." nil t)))) -; (if to (1- to) (point-max))) - (let (to) +(defun woman-find-next-control-line (&optional pat) + "Find and return start of next control line. +PAT, if non-nil, specifies an additional component of the control +line regexp to search for, which is appended to the default +regexp, \"\\(\\\\c\\)?\\n[.']\"." + (let ((pattern (concat "\\(\\\\c\\)?\n[.']" pat)) + to) (save-excursion ;; Must handle ;; ...\c @@ -3736,12 +3741,14 @@ ;; BEWARE THAT THIS CODE MAY BE UNRELIABLE!!!!! (while (and - (setq to (re-search-forward "\\(\\\\c\\)?\n[.']" nil t)) + (setq to (re-search-forward pattern nil t)) (match-beginning 1) (looking-at "br")) (goto-char (match-beginning 0)) (woman-delete-line 2))) - (if to (1- to) (point-max)))) + (if to + (- to (+ 1 (length pat))) + (point-max)))) (defun woman2-PD (to) ".PD d -- Set the interparagraph distance to d. @@ -3885,18 +3892,18 @@ (insert (substring overlap i eol)) (setq i (or eol imax))) ) - ((eq c ?\ ) ; skip + ((eq c ?\s) ; skip (forward-char)) ((eq c ?\t) ; skip (if (eq (following-char) ?\t) (forward-char) ; both tabs, just skip (dotimes (i woman-tab-width) (if (eolp) - (insert ?\ ) ; extend line + (insert ?\s) ; extend line (forward-char)) ; skip ))) (t - (if (or (eq (following-char) ?\ ) ; overwrite OK + (if (or (eq (following-char) ?\s) ; overwrite OK overwritten) ; warning only once per ".sp -" () (setq overwritten t) @@ -4400,7 +4407,7 @@ tab (- tab (if (eq type ?C) (/ n 2) n))) ) (setq n (- tab (current-column))) (insert-char ?\s n)) - (insert ?\ )))) + (insert ?\s)))) (defun woman2-DT (to) ".DT -- Restore default tabs. Format paragraphs upto TO. @@ -4418,7 +4425,7 @@ (if (eolp) (woman-delete-whole-line) ; ignore! (let ((delim (following-char)) - (pad ?\ ) end) ; pad defaults to space + (pad ?\s) end) ; pad defaults to space (forward-char) (skip-chars-forward " \t") (or (eolp) (setq pad (following-char))) @@ -4449,8 +4456,6 @@ (defun woman2-TS (to) ".TS -- Start of table code for the tbl processor. Format paragraphs upto TO." - ;; This is a preliminary hack that seems to suffice for lilo.8. - (woman-delete-line 1) ; ignore any arguments (when woman-emulate-tbl ;; Assumes column separator is \t and intercolumn spacing is 3. ;; The first line may optionally be a list of options terminated by @@ -4462,6 +4467,22 @@ (woman-delete-line 1) ;; For each column, find its width and align it: (let ((start (point)) (col 1)) + (WoMan-log "%s" (buffer-substring start (+ start 40))) + ;; change T{ T} to tabs + (while (search-forward "T{\n" to t) + (replace-match "") + (catch 'end + (while (search-forward "\n" to t) + (replace-match " ") + (if (looking-at "T}") + (progn + (delete-char 2) + (throw 'end t)))))) + (goto-char start) + ;; strip space and headers + (while (re-search-forward "^\\.TH\\|\\.sp" to t) + (woman-delete-whole-line)) + (goto-char start) (while (prog1 (search-forward "\t" to t) (goto-char start)) ;; Find current column width: (while (< (point) to) @@ -4475,8 +4496,25 @@ (while (< (point) to) (when (search-forward "\t" to t) (delete-char -1) - (insert-char ?\ (- col (current-column)))) + (insert-char ?\s (- col (current-column)))) (forward-line)) + (goto-char start)) + ;; find maximum width + (let ((max-col 0)) + (while (search-forward "\n" to t) + (backward-char) + (if (> (current-column) max-col) + (setq max-col (current-column))) + (forward-char)) + (goto-char start) + ;; break lines if they are too long + (when (and (> max-col woman-fill-column) + (> woman-fill-column col)) + (setq max-col woman-fill-column) + (woman-break-table col to start) + (goto-char start)) + (while (re-search-forward "^_$" to t) + (replace-match (make-string max-col ?_))) (goto-char start)))) ;; Format table with no filling or adjusting (cf. woman2-nf): (setq woman-nofill t) @@ -4486,6 +4524,17 @@ ;; ".TE -- End of table code for the tbl processor." ;; Turn filling and adjusting back on. +(defun woman-break-table (start-column to start) + (while (< (point) to) + (move-to-column woman-fill-column) + (if (eolp) + (forward-line) + (if (and (search-backward " " start t) + (> (current-column) start-column)) + (progn + (insert-char ?\n 1) + (insert-char ?\s (- start-column 5))) + (forward-line))))) ;;; WoMan message logging: @@ -4523,7 +4572,7 @@ (buffer-substring (point) (line-end-position)))) (if (and (> (length tail) 0) - (/= (string-to-char tail) ?\ )) + (/= (string-to-char tail) ?\s)) (setq tail (concat " " tail))) (WoMan-log-1 (concat "** " request tail " request " ignored)))) ------------------------------------------------------------ Use --include-merges or -n0 to see merged revisions.