Glenn Morris [Mon, 24 Jun 2013 02:26:57 +0000 (19:26 -0700)]
* doc/misc/eudc.texi (Overview, Creating BBDB Records): Restrict bbdb cross-ref
to info output. It's not very important, and gives broken links in
the html version.
Paul Eggert [Mon, 24 Jun 2013 00:31:31 +0000 (17:31 -0700)]
A more-conservative workaround for Cygwin SIGCHLD issues.
* callproc.c (Fcall_process):
* process.c (create_process):
Make sure SIGCHLD is caught before we fork,
since Emacs startup no arranges to catch SIGCHLD.
* process.c (lib_child_handler): Initialize to null, not to
dummy_handler.
(catch_child_signal): Allow self to be called lazily.
Do nothing if it's already been called.
Assume caller has blocked SIGCHLD (all callers do now).
* emacs.c (main): Do not catch SIGCHLD here; defer it until
just before it's really needed.
* nsterm.m (ns_term_init): No need to re-catch SIGCHLD here,
since it hasn't been caught yet.
lisp/faces.el: Minor changes.
(face-documentation): Simplify.
(read-face-attribute, tty-find-type, x-resolve-font-name):
Use `string-match-p'.
(list-faces-display): Use `string-match-p'. Simplify.
(face-spec-recalc): Check face to avoid face alias loops.
(read-color): Use `string-match-p' and non-capturing parenthesis.
Paul Eggert [Sun, 23 Jun 2013 18:18:47 +0000 (11:18 -0700)]
Try to avoid malloc SEGVs on Cygwin.
* callproc.c, process.h (block_child_signal, unblock_child_signal):
Now extern.
* emacs.c (main): Catch SIGCHLD just before initializing gfilenotify.
* process.c (catch_child_signal): Block SIGCHLD while futzing with
the SIGCHLD handler, since the code is not atomic and (due to glib)
signals may be arriving now.
* sysdep.c (init_signals): Do not catch child signals here;
'main' now does that later, at a safer time.
lisp/emacs-lisp/tabulated-list.el: Fix alignment problem with :pad-right = 0.
(tabulated-list-init-header): Don't skip aligning the next header field when
padding is 0; otherwise, field width is not respected unless the title is as
wide as the field.
Glenn Morris [Sun, 23 Jun 2013 01:48:23 +0000 (18:48 -0700)]
Remove some doc/misc/Makefile.in stuff that is not needed any more
* doc/misc/Makefile.in (HTML_TARGETS, html, emacs-faq.html, emacs-faq):
Remove; not needed now we use a standard html layout for the faq.
(clean): Remove HTML_TARGETS, emacs-faq.text.
Paul Eggert [Sat, 22 Jun 2013 19:01:47 +0000 (12:01 -0700)]
Clean up SIGCHLD handling a bit.
* process.c, process.h (catch_child_signal):
Now always extern, even if !NS_IMPL_GNUSTEP.
* process.c (catch_child_signal): Move glib tickler here from
init_process_emacs, so that it's done earlier in Emacs
initialization. Also move the noninteractive && !initialized
check here from init_process_emacs. This is all a bit cleaner for
GNUish platforms, and I hope it works around the Cygwin bug.
* sysdep.c (init_signals): Invoke catch_child_signal here, so
that glib signal handling is tickled before glib creates threads.
Paul Eggert [Fri, 21 Jun 2013 20:11:44 +0000 (13:11 -0700)]
Use C99-style flexible array members if available.
This avoids some subtle aliasing issues, which typically
aren't a problem with GCC but may be a problem elsewhere.
* lib-src/ebrowse.c (struct member, struct alias, struct sym):
Use FLEXIBLE_ARRAY_MEMBER.
(add_sym, add_member, make_namespace, register_namespace_alias):
Use offsetof (struct, flex_array_member), not sizeof (struct), as
that ports better to pre-C99 non-GCC.
* src/alloc.c (sdata): New typedef, replacing the old struct sdata.
It is a struct if GC_CHECK_STRING_BYTES, a union otherwise.
In either case, it uses a flexible array member rather than
the old struct hack. All uses changed.
(SDATA_NBYTES, sweep_strings) [!GC_CHECK_STRING_BYTES]:
Adjust to sdata reorganization.
* src/alloc.c (VBLOCK_BYTES_MIN, allocate_vectorlike, Fgarbage_collect):
Use offsetof (struct, flex_array_member), not sizeof (struct), as
that ports better to pre-C99 non-GCC.
* src/chartab.c (Fmake_char_table, make_sub_char_table, copy_char_table):
Use CHAR_TABLE_STANDARD_SLOTS rather than its definition,
as the latter has changed.
* src/conf_post.h (FLEXIBLE_ARRAY_MEMBER): Move here from w32.c,
and port better to pre-C99 GCC.
* src/image.c (struct xpm_cached_color):
* src/lisp.h (struct Lisp_Vector, struct Lisp_Bool_Vector)
(struct Lisp_Char_Table, struct Lisp_Sub_Char_Table):
Use FLEXIBLE_ARRAY_MEMBER.
* src/lisp.h (string_bytes) [GC_CHECK_STRING_BYTES]:
Move decl to top level so it gets checked against implementation.
(CHAR_TABLE_STANDARD_SLOTS): Adjust to struct Lisp_Char_Table change.
* src/w32.c (FLEXIBLE_ARRAY_MEMBER): Move to conf_post.h.
Eduard Wiebe [Fri, 21 Jun 2013 14:36:13 +0000 (10:36 -0400)]
Extend flymake's warning predicate to be a function. Test suite for flymake.
* lisp/progmodes/flymake.el (flymake-warning-predicate): New.
(flymake-parse-line): Use it.
(flymake-warning-re): Make obsolete alias to
`flymake-warning-predicate'.
* doc/misc/flymake.texi (Parsing the output, Customizable variables):
Add reference to `flymake-warning-predicate'.
* test/automated/flymake-tests.el:
* test/automated/flymake/warnpred/Makefile
* test/automated/flymake/warnpred/test.c
* test/automated/flymake/warnpred/test.pl: New files.
Stefan Monnier [Fri, 21 Jun 2013 14:12:56 +0000 (10:12 -0400)]
* lisp/emacs-lisp/package.el (package-alist): Include obsolete packages.
(package-obsolete-list): Remove.
(package-activate): Remove min-version argument. Add `force' argument.
Adjust to new package-alist format.
(package-mark-obsolete): Remove.
(package-unpack): Force reload of the package's autoloads.
(package-installed-p): Check builtins if the installed package is not
recent enough.
(package-initialize): Don't reset package-obsolete-list.
Don't specify which package version to activate.
(package-process-define-package, describe-package-1)
(package-menu--generate): Adjust to new package-alist format.
Stephen Berman [Fri, 21 Jun 2013 14:02:39 +0000 (16:02 +0200)]
* todo-mode.el: Clean up doc strings, comments and prompt strings,
mainly by changing "Todo" to "todo" when it is not part of a mode
name or does not begin a sentence.
Stephen Berman [Fri, 21 Jun 2013 13:23:51 +0000 (15:23 +0200)]
* todo-mode.el: Offer to convert legacy file. Update commentary.
(todo-show): If a legacy file is found and no new todo file
exists, offer to convert it and show it. Restore autoload cookie.
(todo-convert-legacy-files): Delete unused local variable.
If todo-directory doesn't exist, create it before writing to file.
Check format of converted files. Prompt to show converted todo file.
Glenn Morris [Fri, 21 Jun 2013 07:35:33 +0000 (00:35 -0700)]
cookie1.el small cleanup
Make some funcs interactive, copy some functionality from yow.el.
* lisp/play/cookie1.el (cookie): New custom group.
(cookie-file): New option.
(cookie-check-file): New function.
(cookie): Make it interactive. Make start and end messages optional.
Interactively, display the result. Default to cookie-file.
(cookie-insert): Default to cookie-file.
(cookie-snarf): Make start and end messages optional.
Default to cookie-file. Use with-temp-buffer.
(cookie-read): Rename from read-cookie.
Make start and end messages optional. Default to cookie-file.
(cookie-shuffle-vector): Rename from shuffle-vector. Use dotimes.
(cookie-apropos, cookie-doctor): New functions, copied from yow.el
* lisp/obsolete/yow.el (read-zippyism): Use new name for read-cookie.
Glenn Morris [Fri, 21 Jun 2013 06:32:50 +0000 (23:32 -0700)]
* lisp/url/url-future.el (url-future-call): Remove useless value call.
An earlier version of this function returned the value, ref
http://lists.gnu.org/archive/html/emacs-devel/2011-05/msg00708.html
but now it returns the function (see commentary).
Stefan Monnier [Fri, 21 Jun 2013 03:08:47 +0000 (23:08 -0400)]
* lisp/emacs-lisp/package.el: Use tar-mode rather than tar executable.
Consolidate the single-file vs tarball code.
(package-desc-suffix): New function.
(package-desc-full-name): Don't bother inlining it.
(package-load-descriptor): Return the new package-desc.
(package-mark-obsolete): Remove unused arg `package'.
(package-unpack): Make it work for single files as well.
Make it update package-alist.
(package--make-autoloads-and-stuff): Rename from
package--make-autoloads-and-compile. Don't compile any more.
(package--compile): New function.
(package-generate-description-file): New function, extracted from
package-unpack-single.
(package-unpack-single): Remove.
(package--with-work-buffer): Add indentation and debugging info.
(package-download-single): Remove.
(package-install-from-archive): Rename from package-download-tar, make
it take a pkg-desc, and make it work for single files as well.
(package-download-transaction): Simplify.
(package-tar-file-info): Remove `file' arg. Rewrite not to use an
external tar program.
(package-install-from-buffer): Remove `pkg-desc' argument.
Use package-tar-file-info for tar-mode buffers.
(package-install-file): Simplify accordingly.
(package-archive-base): Change to take a pkg-desc.
* lisp/tar-mode.el (tar--check-descriptor): New function, extracted from
tar-get-descriptor.
(tar-get-descriptor): Use it.
(tar-get-file-descriptor): New function.
(tar--extract): New function, extracted from tar-extract.
(tar--extract): Use it.
* lisp/emacs-lisp/package-x.el (package-upload-file): Decode the file, in
case the summary uses non-ascii. Adjust to new calling convention of
package-tar-file-info.
Stefan Monnier [Thu, 20 Jun 2013 20:01:51 +0000 (16:01 -0400)]
* lisp/emacs-lisp/cl-loaddefs.el: Don't version-control any more.
* lisp/emacs-lisp/cl-lib.el: Load cl-macs when cl-loaddefs is not
yet available.
* lisp/Makefile.in (AUTOGEN_VCS): Move cl-loaddefs.el...
(AUTOGENEL): ... here.
* lisp/emacs-lisp/cl-macs.el (cl--sublis): New function.
(cl--defsubst-expand): Use it.
* .bzrignore: Don't unignore cl-loaddefs.el.
Paul Eggert [Thu, 20 Jun 2013 18:59:08 +0000 (11:59 -0700)]
* syntax.c: Integer cleanups.
(SYNTAX_FLAGS_COMMENT_STYLEC): Return a boolean, not 0-or-2.
All uses that need 0-or-2 changed to:
(SYNTAX_FLAGS_COMMENT_STYLEC2): New macro, with the same semantics
as the old SYNTAX_FLAGS_COMMENT_STYLEC.
(struct lisp_parse_state, syntax_prefix_flag_p, update_syntax_table)
(char_quoted, prev_char_comend_first, back_comment)
(Finternal_describe_syntax_value, skip_chars, skip_syntaxes)
(in_classes, forw_comment, scan_lists, scan_sexps_forward):
Use bool for boolean.
(update_syntax_table, skip_chars, skip_syntaxes):
Prefer int to unsigned when either will do.
(back_comment): Return boolean success flag, like forw_comment,
instead of positive-or-minus-1 (which might have overflowed int anyway).
Don't stuff ptrdiff_t into int.
(syntax_spec_code, syntax_code_spec): Now const.
(Fmatching_paren, scan_lists, scan_sexps_forward):
Use enum syntaxcode for syntax code.
(Fmatching_paren): Check that arg is a character, not just an integer.
(Fstring_to_syntax): Don't assume 0377 fits in enum syntaxcode.
(Finternal_describe_syntax_value): Omit no-longer-needed
comparison to 0.
(skip_chars): Use char, not unsigned char, when the distinction
doesn't matter.
(forw_comment, scan_lists): Prefer A |= B to A = A || B when B's cheap.
* bytecode.c (exec_byte_code):
* syntax.c (syntax_spec_code, Fchar_syntax)
(Finternal_describe_syntax_value, skip_chars, skip_syntaxes)
(init_syntax_once):
* syntax.h (SYNTAX_WITH_FLAGS):
Omit unnecessary casts.
Eli Zaretskii [Thu, 20 Jun 2013 17:36:24 +0000 (20:36 +0300)]
Yet another attempt at fixing bugs #14602, 14630, 14669.
src/w32fns.c (w32_wnd_proc): Don't compute the header line and mode
line dimensions here, to avoid race conditions with the main
thread.
src/w32term.c (w32_draw_window_cursor): Compute the header line and
mode line dimensions here.
<w32_system_caret_window, w32_system_caret_hdr_height>:
<w32_system_caret_mode_height>: New variables.
src/w32term.h: Declare them.
Paul Eggert [Thu, 20 Jun 2013 14:47:46 +0000 (07:47 -0700)]
* alloc.c (die): Move "assertion failed" string here ...
* lisp.h (eassert): ... from here. Also, suppress evaluation of
COND when SUPPRESS_CHECKING. This shrinks the executable text
size by 0.8% to 2.2% when configured with --enable-checking,
depending on optimization flags (GCC 4.8.1 x86-64).
Paul Eggert [Thu, 20 Jun 2013 14:15:42 +0000 (07:15 -0700)]
Add log2 support and make log10 obsolete for consistency.
* configure.ac (log2): Check for this function.
* doc/lispref/numbers.texi (Math Functions): Remove obsolete function log10.
* lisp/subr.el (log10): Move here from C code, and declare as obsolete.
All uses of (log10 X) replaced with (log X 10).
* src/floatfns.c (Flog) [HAVE_LOG2]: Use log2 if available and if the
base is 2; this is more accurate.
(Flog10): Move to Lisp (marked obsolete there).
lisp/ansi-color.el: Convert to lexical binding.
(ansi-colors): Fix URL.
(ansi-color-context, ansi-color-context-region): Use defvar-local.
(ansi-color-apply-sequence, ansi-color-map): Fix typos in docstrings.
(ansi-color-make-color-map): Rename local var ansi-color-map to map.
Gnus developers [Wed, 19 Jun 2013 22:28:04 +0000 (22:28 +0000)]
Merge changes made in Gnus master
2013-06-19 Lars Magne Ingebrigtsen <larsi@gnus.org>
* net/eww.el (eww-process-text-input): Display passwords as asterisks.
* net/shr.el (shr-make-table-1): Protect against invalid column-spans.
2013-06-19 Tom Tromey <tromey@redhat.com>
* net/eww.el (eww-top-url): Remove.
(eww-home-url, eww-start-url, eww-contents-url): New defvars.
(eww-render): Set new variables. Don't set eww-top-url.
(eww-handle-link): Handle "prev", "home", and "contents".
Downcase the rel text.
(eww-top-url): Choose best top URL.
2013-06-19 Lars Magne Ingebrigtsen <larsi@gnus.org>
* net/eww.el: Rewrite to implement form elements "by hand" instead of
relying in widget.el. Using widget.el leads to too many
user interface inconsistencies.
(eww-self-insert): Implement entering commands in text fields.
(eww-process-text-input): New function to make text input field editing
work.
(eww-submit): Rewrite to use the new-style form methods.
(eww-select-display): Display the correct selected item.
(eww-change-select): Implement changing the select value.
(eww-toggle-checkbox): Implement radio/checkboxes.
(eww-update-field): Fix compilation error.
(eww-tag-textarea): Implement <textarea>.
* net/shr.el (shr-urlify): Use `keymap' instead of `local-map' so that we
don't shadow mode-specific bindings.
* net/eww.el (eww-browse-url): Don't push stuff onto history if there's
nothing to push.
* net/shr.el (shr-map): Bind [down-mouse-1] to browse URLs.
Glenn Morris [Wed, 19 Jun 2013 20:29:09 +0000 (16:29 -0400)]
* lisp/cedet/semantic/idle.el (define-semantic-idle-service):
No need to use eval-and-compile, progn will do.
(eval-and-compile ends up causing spurious warnings.)
Stephen Berman [Wed, 19 Jun 2013 20:11:03 +0000 (22:11 +0200)]
* todo-mode.el (todo-convert-legacy-files): Eliminate last change,
since it couldn't avoid namespace clashes, and instead let local
variables hold the legacy values used for conversion. This also
does not interfere with live todo buffers.
Stefan Monnier [Wed, 19 Jun 2013 13:51:47 +0000 (09:51 -0400)]
* doc/lispref/keymaps.texi (Active Keymaps): Fix documentation of
set-temporary-overlay-map and overriding-terminal-local-map.
* doc/lispref/modes.texi (Mode Line Data, Properties in Mode): Advertise
`keymap' rather than `local-map'.
Stephen Berman [Wed, 19 Jun 2013 12:22:46 +0000 (14:22 +0200)]
* todos.el (todos-convert-legacy-files): Add code to make it work
after the new version is renamed and has the same namespace as the
old version. This also requires there to be no live todo buffers
when this command is called.
Paul Eggert [Wed, 19 Jun 2013 07:36:20 +0000 (00:36 -0700)]
* sound.c: Integer cleanups.
Remove unnecessary forward decls.
(struct sound_device): The 'file' member is now a Lisp_Object, not
a char *, so that we needn't invoke alloca on a huge size.
(Fplay_sound_internal): Adjust to this.
(string_default): New function.
(vox_open, vox_init, alsa_open, alsa_configure, alsa_init):
Use it to adjust to the struct sound_device change.
(parse_sound, wav_init, au_init, alsa_init): Use bool for booleans.
(be2hs) [0]: Remove.
Glenn Morris [Wed, 19 Jun 2013 07:35:00 +0000 (00:35 -0700)]
Check autoload's "type" argument correctly in bytecomp.el
* lisp/emacs-lisp/bytecomp.el (byte-compile-file-form-autoload):
Only eval autoloaded macros.
(byte-compile-autoload): Only give the macro warning for macros.
Glenn Morris [Wed, 19 Jun 2013 07:28:47 +0000 (00:28 -0700)]
cedet/semantic/decorate/mode.el autoload tweak
* cedet/semantic/decorate/mode.el (define-semantic-decoration-style): Doc fix.
(define-semantic-decoration-style): 'function is not an accepted
value for autoload's "type" argument. Might as well use the default.
Glenn Morris [Wed, 19 Jun 2013 07:19:42 +0000 (00:19 -0700)]
* international/titdic-cnv.el (tit-process-header, miscdic-convert):
Don't include a date stamp in the header of the generated file;
it leads to needless differences between output files.
Glenn Morris [Wed, 19 Jun 2013 07:01:22 +0000 (00:01 -0700)]
Add make dist rule for doc/misc/Makefile, for www.gnu.org
* doc/misc/Makefile.in (version): New, set by configure.
(clean): Delete dist tar file.
(infoclean): New, split from maintainer-clean.
(maintainer-clean): Run infoclean.
(dist): New rule, to make tarfile for www.gnu.org.