Stefan Monnier [Tue, 8 May 2012 14:19:08 +0000 (10:19 -0400)]
* lisp/imenu.el: Misc cleanup. Make docstrings out of comments.
Use lexical-binding.
(imenu--index-alist, imenu--last-menubar-index-alist)
(imenu-menubar-modified-tick): Use defvar-local.
(imenu--split-menu): Remove unused var.
(imenu--cleanup-seen): Declare as global.
(imenu--cleanup): Use dolist.
Glenn Morris [Tue, 8 May 2012 01:50:17 +0000 (21:50 -0400)]
Remove no-byte-compile setting from some lisp/language files.
Same comments as per 2012-05-01T06:59:34Z!rgm@gnu.org, for lisp/term:
Not that compiling these will bring any noticeable speed benefit, but
there's really no reason not to compile them. The extra disk space
and build time is negligible, and it might reveal use of obsolete
functions, bugs, etc.
Stefan Merten [Mon, 7 May 2012 19:51:25 +0000 (21:51 +0200)]
2012-05-05 Stefan Merten <smerten@oekonux.de>
* rst.el: Major merge with upstream development up to Docutils
SVN r7399 / rst.el V1.2.1.
Clarified maintainership and authors.
(rst-extract-version, rst-cvs-header, rst-cvs-rev)
(rst-cvs-timestamp, rst-svn-rev, rst-svn-timestamp)
(rst-official-version, rst-official-cvs-rev, rst-version)
(rst-package-emacs-version-alist): New functions and variables
for version information.
(rst-bullets, rst-uri-schemes, rst-adornment-chars)
(rst-max-inline-length, rst-re-alist-def, rst-re-alist)
(rst-mode-syntax-table, rst-mode): New and corrected functions
and variables representing reStructuredText features.
(rst-re): New function for reStructuredText regexes. Used in
many places.
(rst-mode-lazy, rst-font-lock-keywords)
(rst-font-lock-extend-region)
(rst-font-lock-extend-region-internal)
(rst-font-lock-extend-region-extend)
(rst-font-lock-find-unindented-line-limit)
(rst-font-lock-find-unindented-line-match)
(rst-adornment-level, rst-font-lock-adornment-level)
(rst-font-lock-adornment-match)
(rst-font-lock-handle-adornment-pre-match-form)
(rst-font-lock-handle-adornment-matcher): Major revision of
font-locking. Integrated with other code. `jit-lock-mode' is
used now.
(rst-compare-adornments, rst-get-adornment-match)
(rst-suggest-new-adornment, rst-get-adornments-around)
(rst-adornment-complete-p, rst-get-next-adornment)
(rst-adjust-adornment, rst-display-adornments-hierarchy)
(rst-straighten-adornments): Standardized function names to
use "adornment" instead of "decoration". Corrected callers.
Similar standardizing happened in many places.
(rst-update-section, rst-adjust, rst-promote-region)
(rst-enumerate-region, rst-bullet-list-region)
(rst-repeat-last-character): Corrected use of `interactive'.
(rst-all-sections, rst-section-hierarchy)
(rst-arabic-to-roman, rst-initial-enums, rst-initial-items):
New variables.
(rst-toc-return-wincfg, rst-toc-quit-window): Using window
configuration instead of only buffer. Changed where necessary.
(rst-line-tabs, rst-compute-tabs, rst-indent-line)
(rst-shift-region, rst-adaptive-fill): New functions for
indentation and filling.
(rst-comment-line-break, rst-comment-indent)
(rst-comment-insert-comment, rst-comment-region)
(rst-uncomment-region): New functions for handling comments.
(rst-compile): Shell arguments are quoted.
(rst-compile-pdf-preview, rst-compile-slides-preview):
Temporary files are deleted after use.
Stefan Monnier [Mon, 7 May 2012 16:29:55 +0000 (12:29 -0400)]
* lisp/buff-menu.el (list-buffers--refresh): Mark `size' as right-align.
* lisp/emacs-lisp/tabulated-list.el (tabulated-list-init-header):
Handle new :right-align column property.
(tabulated-list-print-col): Idem, plus use `display' text-property to
try and preserve alignment for variable pitch fonts.
Fix up display of the *Minibuf-0* buffer in the mini window.
* src/keyboard.c (read_char): Don't clear the echo area if there's no
message to clear.
* src/xdisp.c (redisplay_internal): Redisplay the mini window (with the
contents of *Minibuf-0*) if there' no message displayed in its stead.
* lisp/emacs-lisp/tabulated-list.el: Add no-header-line alternative.
(tabulated-list-use-header-line): New var.
(tabulated-list-init-header): Use it.
(tabulated-list-print-fake-header): New function.
(tabulated-list-print): Use it.
(tabulated-list-sort-button-map): Add non-header-line commands.
(tabulated-list-init-header): Add column name property to basic
labels as well.
(tabulated-list-col-sort): Handle non-header-line button case.
(tabulated-list--sort-by-column-name): Fix a corner case.
Chong Yidong [Sun, 6 May 2012 16:45:46 +0000 (00:45 +0800)]
* lisp/buff-menu.el: Convert to Tabulated List mode.
(Buffer-menu-buffer+size-width): Make obsolete.
(Buffer-menu-name-width, Buffer-menu-size-width): New variables.
(Buffer-menu-mode-map): Inherit from tabulated-list-mode-map.
(Buffer-menu-mode): Derive from tabulated-list-mode. Move command
documentation into docstring of buffer-menu.
(Buffer-menu-toggle-files-only): Add an informative message.
(Buffer-menu-sort): Convert to alias for tabulated-list-sort.
(Buffer-menu-buffer, Buffer-menu-beginning, Buffer-menu-mark)
(Buffer-menu-unmark, Buffer-menu-backup-unmark)
(Buffer-menu-delete, Buffer-menu-save, Buffer-menu-not-modified)
(Buffer-menu-execute, Buffer-menu-select)
(Buffer-menu-marked-buffers, Buffer-menu-toggle-read-only)
(Buffer-menu-bury): Use Tabulated List machinery.
(Buffer-menu-mouse-select, Buffer-menu-sort-by-column)
(Buffer-menu-sort-button-map, Buffer-menu-make-sort-button):
Deleted.
(list-buffers--refresh): New function.
(list-buffers-noselect): Use it.
(tabulated-list-entry-size->, Buffer-menu--pretty-name)
(Buffer-menu--pretty-file-name): New helper functions.
* lisp/loadup.el: Preload tabulated-list.
* lisp/emacs-lisp/tabulated-list.el (tabulated-list-sort): Rename from
tabulated-list-sort-column.
(tabulated-list-init-header): Add the initial aligning space even
if tabulated-list-padding is zero.
Chong Yidong [Sun, 6 May 2012 08:32:37 +0000 (16:32 +0800)]
Improvements for Tabulated List mode.
* lisp/emacs-lisp/tabulated-list.el (tabulated-list-format): Accept
additional plist in column descriptors.
(tabulated-list-init-header): Obey it.
(tabulated-list-get-entry): New function.
(tabulated-list-put-tag): Use it. Use string-width instead of
length.
(tabulated-list--column-number): New function.
(tabulated-list-print): Use it.
(tabulated-list-print-col): New function. Set
`tabulated-list-column-name' property on each column's text.
(tabulated-list-print-entry): Use it.
(tabulated-list-delete-entry, tabulated-list-set-col): New
functions.
(tabulated-list-sort-column): New command.
Glenn Morris [Sat, 5 May 2012 21:31:41 +0000 (14:31 -0700)]
Optionally include holidays in cal-html output
* lisp/calendar/cal-html.el: (cal-html-holidays): New option.
(cal-html-css-default): Add holiday entry.
(holiday-in-range): Autoload it.
(cal-html-htmlify-entry): Add optional class argument.
(cal-html-htmlify-list): Add optional holidays argument.
(cal-html-insert-agenda-days): Include holidays in the output.
(cal-html-one-month): Maybe include holidays.
Glenn Morris [Sat, 5 May 2012 20:58:14 +0000 (13:58 -0700)]
Move function from cal-tex to holidays
* calendar/holidays.el (holiday-in-range):
Move here from cal-tex-list-holidays.
* calendar/cal-tex.el (cal-tex-list-holidays):
Make it an obsolete alias for holiday-in-range. Update all callers.
Stefan Monnier [Sat, 5 May 2012 02:05:49 +0000 (22:05 -0400)]
* lisp/emacs-lisp/pcase.el (pcase--let*): New function.
(pcase--expand, pcase-codegen, pcase--q1): Use it to reduce nesting
a bit more.
(pcase--split-pred): Be more clever about ruling out overlap between
a predicate and some constant pattern.
(pcase--q1): Use `null' instead of (eq foo nil).
Stefan Monnier [Sat, 5 May 2012 01:47:04 +0000 (21:47 -0400)]
New function set-temporary-overlay-map and macros (defvar|setq)-local.
* lisp/subr.el (setq-local, defvar-local): New macros.
(kbd): Redefine as an alias.
(with-selected-window): Leave unrelated frames alone.
(set-temporary-overlay-map): New function.
* configure.in (INFO_EXT, INFO_OPTS): New output variables.
* doc/emacs/Makefile.in (INFO_EXT, INFO_OPTS): New, set by configure.
(info, infoclean): Use $INFO_EXT.
($(infodir)/emacs$(INFO_EXT)): Use $INFO_EXT and $INFO_OPT.
* doc/emacs/makefile.w32-in (INFO_EXT, INFO_OPTS): New.
(INFO_TARGETS): Use $INFO_EXT.
($(infodir)/emacs$(INFO_EXT)): Use $INFO_EXT and $INFO_OPT, and -o.
* doc/lispintro/Makefile.in (INFO_EXT, INFO_OPTS): New, set by configure.
(info, infoclean): Use $INFO_EXT.
(${infodir}/eintr$(INFO_EXT)): Use $INFO_EXT and $INFO_OPT.
* doc/lispintro/makefile.w32-in (INFO_EXT, INFO_OPTS): New.
(INFO_TARGETS, clean): Use $INFO_EXT.
($(infodir)/eintr$(INFO_EXT)): Use $INFO_EXT and $INFO_OPT.
* doc/lispref/Makefile.in (INFO_EXT, INFO_OPTS): New, set by configure.
(info, infoclean): Use $INFO_EXT.
($(infodir)/elisp$(INFO_EXT)): Use $INFO_EXT and $INFO_OPT.
* doc/lispref/makefile.w32-in (INFO_EXT, INFO_OPTS): New.
(info, maintainer-clean): Use $INFO_EXT.
($(infodir)/elisp$(INFO_EXT)): Use $INFO_EXT and $INFO_OPT.
* doc/misc/Makefile.in (INFO_EXT, INFO_OPTS): New, set by configure.
(INFO_TARGETS): Use $INFO_EXT.
Make all rules generating info files use $INFO_EXT, $INFO_OPT, and -o.
* doc/misc/makefile.w32-in (INFO_EXT, INFO_OPTS): New.
(INFO_TARGETS): Use $INFO_EXT.
Make all rules generating info files use $INFO_EXT, $INFO_OPT, and -o.
Paul Eggert [Thu, 3 May 2012 20:04:29 +0000 (13:04 -0700)]
Do not limit current-time-string to years 1000..9999.
* src/editfns.c (TM_YEAR_IN_ASCTIME_RANGE): Remove.
(Fcurrent_time_string): Support any year that is supported by the
underlying localtime representation. Don't use asctime, as it
has undefined behavior for years outside the range -999..9999.
* doc/lispref/os.texi (Time of Day): Do not limit current-time-string
to years 1000..9999.
* etc/NEWS: Do not limit current-time-string to years 1000..9999.
Wilson Snyder [Thu, 3 May 2012 19:23:55 +0000 (15:23 -0400)]
Merge verilog-mode.el from upstream.
* progmodes/verilog-mode.el (font-lock-keywords):
Fix mis-highligting auto. Reported by Craig Barner.
(verilog-auto, verilog-auto-undef): Add AUTOUNDEF to remove
defines from global name space. Reported by Dan Dever.
(verilog-auto-reset, verilog-auto-reset-widths)
(verilog-auto-tieoff): Support using unbased numbers for
AUTORESET and AUTOTIEOFF.
(verilog-submit-bug-report): Update variable list.
(verilog-read-auto-params): Fix AUTOINPUT regexps containing
parenthesis from not matching. Reported by Michael Rytting.
(verilog-auto-template-lint): Fix hash error when linting modules
with no used templates.
(verilog-warn, verilog-warn-error)
(verilog-warn-fatal): When non-interactive report multiple
warnings before exiting. Suggested by Brad Dobbie.
(verilog-auto-template-lint, verilog-auto-template-warn-unused)
(verilog-read-auto-template): Add `verilog-auto-template-warn-unused'
to report unused template errors. Reported by Brad Dobbie.
(verilog-read-decls): Fix AUTOWIRE etc on supply0, supply1 type
nets, bug438. Reported by Vns Blore.
(verilog-auto-inout-module, verilog-auto-reg)
(verilog-read-decls, verilog-read-sub-decls-sig)
(verilog-signals-edit-wire-reg, verilog-signals-with):
Fix passing of Verilog data types in ANSI input/output ports
such as "output logic" into the AUTOs. Special case "wire" and
"reg" for backwards compatibility presuming Verilog 2001.
(verilog-auto-ascii-enum): Add "auto enum" as alias.
(verilog-preprocess): Fix replication of preprocess output.
Reported by Brad Dobbie.
(verilog-auto-inst-interfaced-ports):
Create verilog-auto-inst-interfaced-ports, bug429.
Reported by Julian Gorfajn.
(verilog-after-save-font-hook)
(verilog-before-save-font-hook): New variable.
(verilog-modi-cache-results, verilog-save-font-mod-hooked)
(verilog-save-font-mods): Wrap disabling fontification, reported
by David Rogoff.
(verilog-do-indent, verilog-pretty-declarations-auto)
(verilog-sk-def-reg): Fix obeying `verilog-auto-lineup', bug305.
Reported by Pierre-David Pfister.
(verilog-set-auto-endcomments): Fix endtask auto comments outside
of class declarations, bug292. Reported by Kevin Heilman.
(verilog-read-decls): Fix 'parameter type' not appearing in
AUTOINSTPARAM, bug340. Reported by Jonathan Greenlaw.
(verilog-auto-logic): Fix when AUTOLOGIC present to properly do
AUTOINPUTs, bug411. Reported by Jonathan Greenlaw.
(verilog-read-auto-lisp): Avoid syntax-ppss warning on AUTOLISP.
Reported by David Kravitz.
* progmodes/verilog-mode.el (verilog-pretty-expr): Don't line up
assignment with tests in ifs and for loops.
(verilog-extended-complete-re, verilog-complete-reg): Change so
that DPI inport functions don't look like fuction declarations.
(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
Stefan Monnier [Thu, 3 May 2012 02:39:23 +0000 (22:39 -0400)]
* lisp/emacs-lisp/bytecomp.el
(byte-compile-file-form-custom-declare-variable): Compile all elements,
since cconv.el might have introduced :fun-body, internal-make-closure,
and friends for bytecomp to handle.
* lisp/custom.el (defcustom): Avoid ((λ ..) ..).
Without this fix, interrupts could mess up code that uses these
nonreentrant functions, since setting TZ invalidates existing
tm_zone or tzname values, and since most of these functions return
pointers to static storage.
* editfns.c (format_time_string, Fdecode_time, Fencode_time)
(Fcurrent_time_string, Fcurrent_time_zone, Fset_time_zone_rule):
Grow the critical sections to include not just invoking
localtime/gmtime, but also accessing these functions' results
including their tm_zone values if any, and any related TZ setting.
(format_time_string): Last arg is now struct tm *, not struct tm **,
so that the struct tm is saved in the critical section. All
callers changed. Simplify allocation of initial buffer, partly
motivated by the fact that memory allocation needs to be outside
the critical section.
Glenn Morris [Wed, 2 May 2012 07:45:16 +0000 (00:45 -0700)]
Don't hard-code the list of info files in the top-level Makefile
The sed '/ing directory/d' piece is to remove the annoying
"entering/leaving directory" messages that GNU make insists on
printing when called recursively. --no-print-directory isn't portable.
* Makefile.in (INFO_FILES): Remove variable.
(INFO_NONMISC): New variable.
(install-arch-indep, uninstall): Don't use $INFO_FILES.
* doc/misc/Makefile.in (echo-info): New phony target, used by top-level.
Chong Yidong [Tue, 1 May 2012 13:37:56 +0000 (21:37 +0800)]
* lisp/follow.el: Rework, eliminating reliance on advice.
(set-process-filter, process-filter, sit-for): Advice deleted.
(follow-mode-off-hook): Obsolete hook removed.
(follow-avoid-tail-recenter-p, follow-process-filter-alist): Vars
deleted.
(follow-auto): Use a :set function.
(follow-mode): Rewritten. Don't advise process filters.
(follow-switch-to-current-buffer-all, follow-scroll-up)
(follow-scroll-down): Assume follow-mode is bound.
(follow-comint-scroll-to-bottom)
(follow-align-compilation-windows): New functions.
(follow--window-sorter): New function.
(follow-all-followers): Use it to explicitly sort windows by their
positions; don't make assumptions about next-window order.
(follow-windows-start-end, follow-delete-other-windows-and-split)
(follow-calc-win-start): Doc fix.
(follow-windows-aligned-p, follow-select-if-visible): Don't call
vertical-motion unnecessarily.
(follow-adjust-window): New function.
(follow-post-command-hook): Use it.
(follow-call-set-process-filter, follow-call-process-filter)
(follow-intercept-process-output, follow-tidy-process-filter-alist)
(follow-stop-intercept-process-output, follow-generic-filter):
Functions deleted.
(follow-scroll-bar-toolkit-scroll, follow-scroll-bar-drag)
(follow-scroll-bar-scroll-up, follow-scroll-bar-scroll-down): New
functions, replacing advice on scroll-bar-* commands.
* lisp/comint.el (comint-adjust-point): New function.
(comint-postoutput-scroll-to-bottom): Use it. Call
follow-comint-scroll-to-bottom for Follow mode buffers.
Glenn Morris [Tue, 1 May 2012 07:38:15 +0000 (00:38 -0700)]
Only print the edition number of the manuals in the TeX version
Frankly, I think the edition conveys little to no information.
The version number of Emacs is much more relevant.
No-one seems to know what the rules are for updating the edition anyway...
* doc/emacs/emacs.texi (@copying): Only print EDITION in the TeX version.
* doc/lispref/elisp.texi (@copying):
* doc/lispref/intro.texi (Introduction): Only print VERSION in the TeX version.
Glenn Morris [Tue, 1 May 2012 06:59:34 +0000 (23:59 -0700)]
Remove no-byte-compile setting from some lisp/term files.
Not that compiling these will bring any noticeable speed benefit, but
there's really no reason not to compile them. The extra disk space
and build time is negligible, and it might reveal use of obsolete
functions, bugs, etc.
Glenn Morris [Tue, 1 May 2012 03:45:39 +0000 (20:45 -0700)]
Remove references to macros that are not defined anywhere
* src/syssignal.h: Remove reference to BROKEN_SIGINFO (last used in
s/ptx4.h), BROKEN_SIGTSTP (last used in m/ustation.h, m/dpx2.h),
and BROKEN_SIGURG (was in s/gnu-linux.h prior to 2008-02-10).
All were removed before 23.1.