Stefan Monnier [Thu, 12 May 2011 12:55:10 +0000 (09:55 -0300)]
* lisp/shell.el (shell-completion-vars): New function.
(shell-mode):
* lisp/simple.el (read-shell-command): Use it.
(blink-matching-open): No need for " [...]" in minibuffer-message.
Details:
appt-now-displayed was set non-nil the first time a reminder was displayed.
Nothing ever set it back to nil again. Thus when full-check was nil,
mode-line-only was always true, so the "(when (or full-check mode-line-only)"
was pointless. That was the only use of full-check. mode-line-only
was only used in a negative sense, and can be reduced to the zerop test.
Stefan Monnier [Thu, 12 May 2011 02:25:58 +0000 (23:25 -0300)]
* lisp/net/rcirc.el: Add support for SSL/TLS connections.
(rcirc-server-alist): New field `encryption'.
(rcirc): Check `encryption' settings.
(rcirc-connect): New arg `encryption'. Use open-network-stream.
Merge make-local-variable into `set'.
(rcirc--connection-open-p): New function.
(rcirc-send-string, rcirc-clean-up-buffer): Use it to handle case where
the process is not a network process (e.g. running gnutls-cli).
(set-rcirc-decode-coding-system, set-rcirc-encode-coding-system):
Make rcirc-(en|de)code-coding-system local here.
(rcirc-mode): Merge make-local-variable into `set'.
(rcirc-parent-buffer): Make permanent buffer-local.
(rcirc-multiline-minor-mode): Don't do it here.
(rcirc-switch-to-server-buffer): Don't switch to a random buffer if
there's no server buffer.
Take account of fringe background extension in scroll_run_hook.
* w32term.c (w32_draw_fringe_bitmap): Rename local vars `left' and
`width' to `bar_area_x' and `bar_area_width', respectively.
(x_scroll_run): Take account of fringe background extension.
* xterm.c (x_draw_fringe_bitmap) [USE_TOOLKIT_SCROLL_BARS]: Rename
local vars `left' and `width' to `bar_area_x' and
`bar_area_width', respectively.
(x_scroll_run) [USE_TOOLKIT_SCROLL_BARS]: Take account of fringe
background extension.
Teodor Zlatanov [Tue, 10 May 2011 22:21:39 +0000 (22:21 +0000)]
registry.el (registry-prune-hard-candidates, registry-prune-soft-candidates): Helper methods for registry pruning.
(registry-prune): Use them. Make the sort function optional.
Katsumi Yamaoka [Tue, 10 May 2011 03:14:44 +0000 (03:14 +0000)]
shr.el (shr-put-image-function): New variable.
(shr-image-fetched, shr-image-displayer, shr-tag-img): Funcall it.
(shr-put-image): Return scaled image.
gnus-art.el (gnus-shr-put-image): New function.
(gnus-article-prepare-display): Bind shr-put-image-function to it.
gnus-html.el (gnus-html-wash-images): Register scaled images, not original ones, as deletable.
Teodor Zlatanov [Mon, 9 May 2011 22:27:17 +0000 (22:27 +0000)]
registry.el (registry-full): Add convenience method. Fix logic.
(registry-insert): Use it. Fix logic here too.
gnus-registry.el (gnus-registry-insert): Add wrapper that calls `registry-prune' if `registry-full' returns t.
(gnus-registry-handle-action, gnus-registry-get-or-make-entry, gnus-registry-set-id-key, gnus-registry-usage-test): Use it.
lisp/misc.el: Implement new command `list-dynamic-libraries'.
* misc.el (list-dynamic-libraries--loaded-only-p): New variable.
(list-dynamic-libraries--refresh): New function.
(list-dynamic-libraries): New command.
Eli Zaretskii [Mon, 9 May 2011 09:59:23 +0000 (05:59 -0400)]
Backport revisions 2011-04-24T05:30:24Z!eggert@cs.ucla.edu..2011-04-25T19:40:22Z!eggert@cs.ucla.edu (inclusive) from trunk (bug#8623)
The next log entry shows the actual changes by Paul Eggert.
Fix a problem with aliasing and vector headers.
GCC 4.6.0 optimizes based on type-based alias analysis. For
example, if b is of type struct buffer * and v of type struct
Lisp_Vector *, then gcc -O2 was incorrectly assuming that &b->size
!= &v->size, and therefore "v->size = 1; b->size = 2; return
v->size;" must therefore return 1. This assumption is incorrect
for Emacs, since it type-puns struct Lisp_Vector * with many other
types. To fix this problem, this patch adds a new type struct
vector_header that documents the constraints on layout of vectors
and pseudovectors, and helps optimizing compilers not get fooled
by Emacs's type punning. It also adds the macros XSETTYPED_PVECTYPE
XSETTYPED_PSEUDOVECTOR, TYPED_PSEUDOVECTORP, for similar reasons.
src/lisp.h (XVECTOR_SIZE): New convenience macro. All previous uses of
XVECTOR (foo)->size replaced to use this macro, to avoid the hassle
of writing XVECTOR (foo)->header.size.
src/lisp.h: Say "vectorlike header" rather than "vector header.
(struct vectorlike_header): Rename from struct vector_header.
(XVECTORLIKE_HEADER_SIZE): Renamed from XVECTOR_HEADER_SIZE.
All uses changed.
(XVECTOR_HEADER_SIZE): New macro, for use in XSETPSEUDOVECTOR.
(XSETTYPED_PVECTYPE): New macro, specifying the name of the size
member.
(XSETPVECTYPE): Rewrite in terms of new macro.
(XSETPVECTYPESIZE): New macro, specifying both type and size.
This is a bit clearer, and further avoids the possibility of
undesirable aliasing.
(XSETTYPED_PSEUDOVECTOR): New macro, specifying the size.
(XSETPSEUDOVECTOR): Rewrite in terms of XSETTYPED_PSEUDOVECTOR
and XVECTOR_HEADER_SIZE.
(XSETSUBR): Rewrite in terms of XSETTYPED_PSEUDOVECTOR and XSIZE,
since Lisp_Subr is a special case (no "next" field).
(ASIZE): Rewrite in terms of XVECTOR_SIZE.
(struct vector_header): New type.
(TYPED_PSEUDOVECTORP): New macro, also specifying the C type of the
object, to help avoid aliasing.
(PSEUDOVECTORP): Rewrite in terms of TYPED_PSEUDOVECTORP.
(SUBRP): Likewise, since Lisp_Subr is a special case.
src/lisp.h (struct Lisp_Vector, struct Lisp_Char_Table):
(struct Lisp_Sub_Char_Table, struct Lisp_Bool_Vector):
(struct Lisp_Hash_Table): Combine first two members into a single
struct vector_header member. All uses of "size" and "next" members
changed to be "header.size" and "header.next".
src/buffer.h (struct buffer): Likewise.
src/font.h (struct font_spec, struct font_entity, struct font): Likewise.
src/frame.h (struct frame): Likewise.
src/process.h (struct Lisp_Process): Likewise.
src/termhooks.h (struct terminal): Likewise.
src/window.c (struct save_window_data, struct saved_window): Likewise.
src/window.h (struct window): Likewise.
src/alloc.c (allocate_buffer, Fmake_bool_vector, allocate_pseudovector):
Use XSETPVECTYPESIZE, not XSETPVECTYPE, to avoid aliasing problems.
src/buffer.c (init_buffer_once): Likewise.
src/lread.c (defsubr): Use XSETTYPED_PVECTYPE, since Lisp_Subr is a
special case.
src/process.c (Fformat_network_address): Use local var for size,
for brevity.
src/fns.c (vector): Remove; this old hack is no longer needed.
src/bytecode.c (exec_byte_code): Don't use XVECTOR before CHECK_VECTOR.
Chong Yidong [Mon, 9 May 2011 01:24:00 +0000 (21:24 -0400)]
Various fixes to compilation-error-regexp-alist-alist.
* lisp/progmodes/compile.el (compilation-error-regexp-alist-alist): Fix
the ant regexp to handle end-line and end-column info from jikes.
Re-introduce maven regexp. Give the ruby-Test::Unit regexp a
higher priority to avoid clobbering by gnu.
Chong Yidong [Sun, 8 May 2011 05:17:17 +0000 (01:17 -0400)]
Perform grep-mode's buffer modifications in a process filter (Bug#7952)
* progmodes/grep.el (grep-mode-font-lock-keywords): Remove
buffer-changing entries.
(grep-filter): New function.
(grep-mode): Add it to compilation-filter-hook.
* progmodes/compile.el (compilation-filter-hook)
(compilation-filter-start): New defvars.
(compilation-filter): Call compilation-filter-hook prior to
updating the process mark.
Eli Zaretskii [Sat, 7 May 2011 15:44:19 +0000 (18:44 +0300)]
Fix bug #8597 with setting frame background mode on w32 console.
src/w32console.c (Fset_screen_color): Doc fix.
(Fget_screen_color): New function.
(syms_of_ntterm): Defsubr it.
lisp/term/w32console.el (terminal-init-w32console): Call
get-screen-color and use its output to set the frame
background-mode.
Eli Zaretskii [Sat, 7 May 2011 11:28:55 +0000 (14:28 +0300)]
Adapt the MS-DOS build to latest changes.
src/callproc.c (call_process_cleanup): Don't close and unlink the
temporary file if Fcall_process didn't create it in the first
place.
(Fcall_process): Don't create tempfile if stdout of the child
process will be redirected to a file specified with `:file'.
Don't try to re-open tempfile in that case, and set fd[0] to -1 as
cue to call_process_cleanup not to close that handle.
msdos/inttypes.h: Include stdint.h.
(uintmax_t): Don't define, it is defined in stdint.h.
msdos/sedlibmk.inp (am__append_1): Edit to comment out.
(am__append_2): Edit to expose.
(NEXT_AS_FIRST_DIRECTIVE_STDARG_H, NEXT_STDARG_H, STDARG_H): Edit
to empty.
(@GL_GENERATE_STDARG_H_TRUE@, @GL_GENERATE_STDARG_H_FALSE@): Edit
to comment out corresponding lines.
Eli Zaretskii [Sat, 7 May 2011 11:25:05 +0000 (14:25 +0300)]
Fix changes in 2011-05-01T00:04:17Z!larsi@gnus.org for MS-DOS.
src/callproc.c (call_process_cleanup): Don't close and unlink the
temporary file if Fcall_process didn't create it in the first
place.
(Fcall_process): Don't create tempfile if stdout of the child
process will be redirected to a file specified with `:file'.
Don't try to re-open tempfile in that case, and set fd[0] to -1 as
cue to call_process_cleanup not to close that handle.
Eli Zaretskii [Sat, 7 May 2011 10:24:55 +0000 (13:24 +0300)]
Adapt MS-DOS configury to latest changes.
msdos/inttypes.h: Include stdint.h.
(uintmax_t): Don't define, it is defined in stdint.h.
msdos/sedlibmk.inp (am__append_1): Edit to comment out.
(am__append_2): Edit to expose.
(NEXT_AS_FIRST_DIRECTIVE_STDARG_H, NEXT_STDARG_H, STDARG_H): Edit
to empty.
(@GL_GENERATE_STDARG_H_TRUE@, @GL_GENERATE_STDARG_H_FALSE@): Edit
to comment out corresponding lines.
Stefan Monnier [Sat, 7 May 2011 04:03:49 +0000 (01:03 -0300)]
Make bytecomp.el understand that defmethod defines functions.
* lisp/emacs-lisp/eieio.el (eieio--defalias, eieio--defgeneric-init-form):
New functions.
(defgeneric, eieio--defmethod): Use them.
(eieio-defgeneric): Remove.
(defmethod): Call defgeneric in a way visible to the byte-compiler.
Ben Key [Sat, 7 May 2011 04:00:12 +0000 (23:00 -0500)]
* nt/configure.bat: Renamed the fusercflags variable to escusercflags
so that the variable name better matches its purpose, to be identical
to usercflags with the exception that all quotes are escaped by the \
character.
Renamed the fuserldflags variable to escuserldflags so that the
variable name better matches its purpose, to be identical to
userldflags with the exception that all quotes are escaped by the \
character.
A new ESC_USER_CFLAGS variable is written to config.settings. This
variable has the same value as the escusercflags variable.
* nt/gmake.defs, nt/nmake.defs: Added the variable ESC_CFLAGS. This
variable is identical to the CFLAGS variable except that it includes
the new ESC_USER_CFLAGS variable instead of USER_CFLAGS.
* src/makefile.w32-in: The bootstrap-temacs rule now makes use of one
of two shell specific rules, either bootstrap-temacs-CMD or
bootstrap-temacs-SH. The bootstrap-temacs-SH rule is identical to the
previous implementation of the bootstrap-temacs rule. The
bootstrap-temacs-CMD rule is similar to the previous implementation of
the bootstrap-temacs rule except that it makes use of the ESC_CFLAGS
variable instead of the CFLAGS variable.
These changes are required to extend my earlier fix to add support for
--cflags and --ldflags options that include quotes so that it works
whether make uses cmd or sh as the shell.
Michael Albinus [Fri, 6 May 2011 22:12:31 +0000 (00:12 +0200)]
* dbusbind.c (QCdbus_type_unix_fd): Declare static.
(xd_remove_watch): Don't check QCdbus_type_unix_fd for SYMBOLP, it
is a constant.
(Fdbus_init_bus, xd_read_queued_messages): Bus can be a symbol or
a string. Handle both cases.
(Fdbus_call_method_asynchronously, Fdbus_register_signal)
(Fdbus_register_method): Use Qinvalid_function.
Stefan Monnier [Fri, 6 May 2011 14:32:26 +0000 (11:32 -0300)]
* lispref/modes.texi (Region to Refontify): Rename from "Region to Fontify".
(Multiline Font Lock):
* lispref/vol2.texi (Top):
* lispref/vol1.texi (Top):
* lispref/elisp.texi (Top): Update menu accordingly.
Eli Zaretskii [Fri, 6 May 2011 12:09:08 +0000 (15:09 +0300)]
Adapt Windows include files to latest changes.
nt/inc/inttypes.h [!__MINGW32__]: Include stdint.h. Move the
definition of uintmax_t from here...
nt/inc/stdint.h (uintmax_t): ...to here.
(intptr_t) [!__GNUC__]: New typedef.
Paul Eggert [Fri, 6 May 2011 07:13:19 +0000 (00:13 -0700)]
Do not assume EMACS_INT is the same width as a pointer.
This prepares for a future patch that will prefer 64-bit EMACS_INT if
available. That patch can be tried now, by compiling with -DWIDE_EMACS_INT,
but it is temporarily not the default so that it can be further tested.
Also, install some other fixes for problems discovered by the static
checking of GCC 4.6.0.
Glenn Morris [Fri, 6 May 2011 04:28:53 +0000 (21:28 -0700)]
Add diary comments feature.
* lisp/calendar/diary-lib.el (diary-comment-start, diary-comment-end):
New options.
(diary-add-to-list): Strip comments from the displayed string.
(diary-mode): Set comment-start and comment-end.
Michael Albinus [Thu, 5 May 2011 10:22:14 +0000 (12:22 +0200)]
* net/ange-ftp.el (ange-ftp-binary-file-name-regexp): Set default to "".
(ange-ftp-write-region, ange-ftp-insert-file-contents)
(ange-ftp-copy-file-internal): Use only `ange-ftp-binary-file' for
determining of binary transfer. (Bug#7383)