Michael Albinus [Tue, 18 May 2010 19:34:26 +0000 (21:34 +0200)]
Add visualization code for secrets.
* net/secrets.el (secrets-mode): New major mode.
(secrets-show-secrets, secrets-show-collections)
(secrets-expand-collection, secrets-expand-item)
(secrets-tree-widget-after-toggle-function)
(secrets-tree-widget-show-password): New defuns.
Stefan Monnier [Tue, 18 May 2010 19:24:24 +0000 (15:24 -0400)]
* emacs-lisp/smie.el (smie-next-sexp): Break inf-loop at BOB.
(smie-backward-sexp, smie-forward-sexp): Remove boundary condition now
handled in smie-next-sexp.
(smie-indent-calculate): Provide a starting indentation (so the
recursion is well-founded ;-).
Chong Yidong [Tue, 18 May 2010 18:05:43 +0000 (14:05 -0400)]
Fix stack overflow in string creation (Bug#6214).
* character.c (Fstring, Funibyte_string): Use SAFE_ALLOCA to
prevent stack overflow if number of arguments is too large
(Bug#6214).
Stefan Monnier [Tue, 18 May 2010 16:03:51 +0000 (12:03 -0400)]
Fix handling of non-associative equal levels.
* emacs-lisp/smie.el (smie-prec2-levels): Choose distinct levels even
when it's not needed.
(smie-op-left, smie-op-right): New functions.
(smie-next-sexp): New function, extracted from smie-backward-sexp.
Better handle equal levels to distinguish the associative case from
the "multi-keyword construct" case.
(smie-backward-sexp, smie-forward-sexp): Use it.
Glenn Morris [Tue, 18 May 2010 02:44:07 +0000 (19:44 -0700)]
Set rallocobj with configure, not cpp.
* configure.in (REL_ALLOC): Unset on gnu, gnu-linux if DOUG_LEA_MALLOC.
(RALLOC_OBJ): New output variable.
* config.bat (RALLOC_OBJ): Edit to empty if sys_malloc.
* src/Makefile.in (RALLOC_OBJ): New, set by configure.
(rallocobj): Replace with the previous variable.
(otherobj): Use $RALLOC_OBJ.
Glenn Morris [Tue, 18 May 2010 02:30:13 +0000 (19:30 -0700)]
Define some malloc objects with configure, not cpp.
* configure.in (GMALLOC_OBJ, VMLIMIT_OBJ): New output variables.
* config.bat (GMALLOC_OBJ, VMLIMIT_OBJ): Edit to empty if sys_malloc.
* src/Makefile.in (GMALLOC_OBJ, VMLIMIT_OBJ): New, set by configure.
(gmallocobj, vmlimitobj): Replace with previous two variables.
(otherobj): Use $GMALLOC_OBJ, $VMLIMIT_OBJ.
* msdos/sed1v2.inp (GMALLOC_OBJ): Edit to gmalloc.o.
(VMLIMIT_OBJ): Edit to vm-limit.o.
Stefan Monnier [Mon, 17 May 2010 21:02:06 +0000 (17:02 -0400)]
* Makefile.in (${lispsource}loaddefs.el): Update loaddefs.el after a pull.
* Makefile.in (src): Provide the name of the VCS file that witnesses a pull.
($(srcdir)/src/config.in): Handle accidental removal of src/config.in.
Stefan Monnier [Mon, 17 May 2010 19:27:26 +0000 (15:27 -0400)]
Provide a simple generic indentation engine and use it for Prolog.
* emacs-lisp/smie.el: New file.
* progmodes/prolog.el (prolog-smie-op-levels)
(prolog-smie-indent-rules): New var.
(prolog-mode-variables): Use them to configure SMIE.
(prolog-indent-line, prolog-indent-level): Remove.
Glenn Morris [Sun, 16 May 2010 17:58:27 +0000 (10:58 -0700)]
Simplify temacs build rule.
* configure.in (NS_IMPL_GNUSTEP_TEMACS_LDFLAGS): New output variable.
(START_FILES): Set to empty if NS_IMPL_GNUSTEP.
(GNUSTEP_SYSTEM_HEADERS, GNUSTEP_SYSTEM_LIBRARIES): Do not output,
nothing uses.
* configure: Regenerate.
* src/Makefile.in (GNUSTEP_SYSTEM_LIBRARIES): Remove, unused.
(NS_IMPL_GNUSTEP_TEMACS_LDFLAGS): New, set by configure.
(LD) [NS_IMPL_GNUSTEP]: Set to $(CC) -rdynamic.
(temacs${EXEEXT}): Remove $LOCALCPP, never defined or referenced.
Make most of the NS_IMPL_GNUSTEP case the same as the default case.
* msdos/sed1v2.inp (GNUSTEP_SYSTEM_LIBRARIES): Remove.
(NS_IMPL_GNUSTEP_TEMACS_LDFLAGS): Edit to empty.
Ken Raeburn [Sat, 15 May 2010 21:11:37 +0000 (17:11 -0400)]
Handle --version reasonably in CANNOT_DUMP configuration.
* src/emacs.c (emacs_version, emacs_copyright): New string
variables.
(Vemacs_version, Vemacs_copyright): New Lisp_Object variables.
(syms_of_emacs): Defvar them, and initialize them from the C
string variables.
(main): If initialization hasn't been done, print initial version
info from the C strings, instead of starting an interactive session.
* lisp/version.el (emacs-copyright, emacs-version): Don't define
here.
* configure.in: Look for version string in its new place.
Eli Zaretskii [Sat, 15 May 2010 13:23:48 +0000 (16:23 +0300)]
Implement bidi-sensitive movement with arrow keys.
src/bidi.c (bidi_paragraph_init): Don't leave alone garbage values
of bidi_it->paragraph_dir. Call bidi_initialize if needed.
src/xdisp.c (Fcurrent_bidi_paragraph_direction): New function.
(syms_of_xdisp): Defsubr it.
src/cmds.c (Fforward_char, Fbackward_char): Doc fix.
src/subr.el (right-arrow-command, left-arrow-command): New functions.
src/bindings.el (global-map): Bind them to right and left arrow keys.
etc/NEWS: Mention current-bidi-paragraph-direction
Stefan Monnier [Fri, 14 May 2010 21:21:12 +0000 (17:21 -0400)]
* progmodes/sh-script.el (sh-mode-default-syntax-table): Remove.
(sh-mode-syntax-table): Give it a default value instead.
(sh-header-marker): Make buffer-local.
(sh-mode): Move make-local-variable to the corresponding setq.
(sh-add-completer): Avoid gratuitously let-binding a buffer-local var.
Use complete-with-action.
Stefan Monnier [Fri, 14 May 2010 16:41:01 +0000 (12:41 -0400)]
* simple.el (prog-mode): New (abstract) major mode.
* emacs-lisp/lisp-mode.el (emacs-lisp-mode, lisp-mode): Use it.
* progmodes/sh-script.el (sh-mode): Remove redundant var assignment.
Glenn Morris [Fri, 14 May 2010 03:13:39 +0000 (20:13 -0700)]
Replace some msdos cpp.
* src/Makefile.in (MSDOS_OBJ): Default to empty, let msdos scripts set it.
(MSDOS_X_OBJ): New variable.
(MSDOS_SUPPORT_REAL): New constant.
(MSDOS_SUPPORT): Set as a variable, not with cpp.
(obj): Use MSDOS_X_OBJ.
(lisp): Use MSDOS_SUPPORT as a variable.
* msdos/sed1v2.inp (MSDOS_OBJ): Edit to dosfns.o msdos.o.
(MSDOS_SUPPORT): Edit to $(MSDOS_SUPPORT_REAL).
* msdos/sed1x.inp (MSDOS_X_OBJ): Edit to w16select.o termcap.o.
Glenn Morris [Fri, 14 May 2010 03:05:00 +0000 (20:05 -0700)]
Define MOUSE_, TOOLTIP_, WINDOW_SUPPORT with configure.
* configure.in (GPM_MOUSE_SUPPORT): Remove.
(MOUSE_SUPPORT, TOOLTIP_SUPPORT, WINDOW_SUPPORT): New output variables.
(HAVE_WINDOW_SYSTEM, HAVE_MOUSE): Move out of AC_BOTTOM.
* src/Makefile.in (REAL_MOUSE_SUPPORT): New constant.
(GPM_MOUSE_SUPPORT): Now it's a constant.
(MOUSE_SUPPORT, TOOLTIP_SUPPORT, WINDOW_SUPPORT): Set with configure, not cpp.
* msdos/sed2x.inp (HAVE_WINDOW_SYSTEM): Define.
* msdos/sed1x.inp (TOOLTIP_SUPPORT): Edit to ${lispsource}tooltip.elc.
(WINDOW_SUPPORT): Edit to $(BASE_WINDOW_SUPPORT) $(X_WINDOW_SUPPORT).
* msdos/sed1v2.inp (MOUSE_SUPPORT): Edit to $(REAL_MOUSE_SUPPORT).
(TOOLTIP_SUPPORT, WINDOW_SUPPORT): Edit to empty.