(package--update-selected-packages): New function.
(package-menu-execute): Use it before starting the transaction,
this way the list of selected packages is updated even when the
transaction fails.
(package-menu--perform-transaction): Don't edit selected-packages.
Eli Zaretskii [Sat, 23 May 2015 08:35:45 +0000 (11:35 +0300)]
Fix etags reading of compressed files
* lib-src/etags.c (O_CLOEXEC) [WINDOWSNT]: Define.
Include fcntl.h, for O_CLOEXEC.
(process_file_name): Don't use 'popen', whose streams cannot be
rewound. Instead, uncompress the file to a temporary file,
created by 'etags_mktmp', and read from that as usual.
(etags_mktmp): New function.
* test/etags/ETAGS.good_1:
* test/etags/ETAGS.good_2:
* test/etags/ETAGS.good_3:
* test/etags/ETAGS.good_4:
* test/etags/ETAGS.good_5: Update to be consistent with latest
changes in etags.c regarding reading compressed files.
Eli Zaretskii [Sat, 23 May 2015 08:03:30 +0000 (11:03 +0300)]
Fix documentation of forward-line
* src/cmds.c (Fforward_line): Clarify the return value if the line
at end of accessible portion of the buffer has no newline.
* doc/lispref/positions.texi (Text Lines): Document what happens
if the line at end of accessible portion of buffer has no newline.
Glenn Morris [Fri, 22 May 2015 06:44:00 +0000 (23:44 -0700)]
Generate admin/charsets Makefile via configure, and make more portable.
* configure.ac (SUBDIR_MAKEFILES): Add admin/charsets/Makefile.
(admin/charsets/Makefile): Generate it.
* admin/charsets/Makefile.in: Rename from Makefile.
(AWK, srcdir, top_srcdir, AM_DEFAULT_VERBOSITY):
New variables, set by configure.
(charsetdir, lispintdir, mapfiledir, AM_V_GEN, am__v_GEN_)
(am__v_GEN_0, am__v_GEN_1, AM_V_at, am__v_at_, am__v_at_0)
(am__v_at_1, LOCAL, mapconv, run_mapconv, big5, compact, cp51932)
(cp932, eucjp_ms, gb180302, gb180304, kuten): New variables.
(TRANS_TABLE, CHARSETS): Add directory prefix to value.
(all): Declare PHONY.
(local): New PHONY target.
(map_template): New template. Use to define short PHONY aliases.
(*.map): Add directory prefixes to targets and prerequisites.
Respect make verbosity.
(JISC6226.map): Replace non-portable sed append without newline.
(install): Remove rule.
(clean): Only delete temporary sedscript.
(bootstrap-clean, distclean, maintainer-clean, extraclean)
(totalclean): New PHONY rules.
* admin/charsets/mapconv (BASE): Replace basename with expr.
(FILE): Add "mapfiles" subdirectory.
(AWK): New variable. Use throughout in place of "awk".
(main): Use "gunzip -c" in place of "zcat".
Don't leave whitespace before "p", for older sed.
* admin/charsets/mapfiles/PTCP154: Add final newline,
to make older sed versions happy.
; * .gitignore: Ignore admin/charsets/Makefile.
Stefan Monnier [Fri, 22 May 2015 03:46:10 +0000 (23:46 -0400)]
Change defgeneric so it doesn't completely redefine the function
* lisp/emacs-lisp/cl-generic.el (cl-generic-define): Don't throw away
previously defined methods.
(cl-generic-define-method): Let-bind purify-flag instead of using `fset'.
(cl--generic-prefill-dispatchers): Only define during compilation.
(cl-method-qualifiers): Remove redundant alias.
(help-fns-short-filename): Silence byte-compiler.
* test/automated/cl-generic-tests.el: Adjust to new defgeneric semantics.
kwhite [Thu, 21 May 2015 19:30:18 +0000 (14:30 -0500)]
* lisp/erc/erc.el: Hide network/channel messages
(erc-network-hide-list, etc-channel-hide-list): New lists to define
message types per network/channel.
(erc-add-targets): New function to parse list of targets
(erc-hide-current-message-p): Modified to check for new targets
Eli Zaretskii [Thu, 21 May 2015 16:38:19 +0000 (19:38 +0300)]
Fix a minor problem with mouse-face on mode line
* src/xdisp.c (note_mode_line_or_margin_highlight): Reset the
mouse face also if the mouse pointer hovers above mode-line glyphs
that don't come from any Lisp string. (Bug#20620)
(package-menu--partition-transaction): New function.
(package-menu--prompt-transaction-p, package-menu-execute): Use
it.
(package-menu--perform-transaction): Don't do any messaging.
Paul Eggert [Thu, 21 May 2015 05:16:53 +0000 (22:16 -0700)]
Revert doc string changes to f90.el
Problem reported by Glenn Morris in:
http://lists.gnu.org/archive/html/emacs-devel/2015-05/msg00596.html
* lisp/progmodes/f90.el (f90-mode, f90-abbrev-start):
Revert recent changes to doc strings, as it's intended that they
use grave accent, not quote.
Eli Zaretskii [Wed, 20 May 2015 15:18:33 +0000 (18:18 +0300)]
Fix slash collapsing in etags on MS-Windows
* lib-src/etags.c (canonicalize_filename) [DOS_NT]: Separate the
MS-Windows code from the Posix code, and support collapsing both
forward- and back-slashes on MS-Windows. Fixes a regression found
by the test suite.
Oleh Krehel [Tue, 19 May 2015 07:49:12 +0000 (09:49 +0200)]
Add let-when-compile macro instead of using pcase-let
* lisp/subr.el (let-when-compile): New let-like macro that makes its
bindings known to macros like `eval-when-compile' in the body.
* lisp/emacs-lisp/lisp-mode.el: Change the top-level `pcase-let' to a
`let-when-compile'. Also comment out the unused lexical var
`el-kws-re'.
The change greatly improves readability, while providing almost the
same (even shorter) byte code: instead of pre-evaluating 10 variables,
tossing them into a list, and destructuring that list a full screen
page later, the variables are simply bound as they are evaluated,
wrapped individually in `eval-when-compile'.
(package--used-elsewhere-p): New optional arg, ALL, and return
package-desc objects instead of names.
(package-delete): Update accordingly.
(describe-package-1): Describe which packages require the package.
Martin Rudalics [Wed, 20 May 2015 06:49:23 +0000 (08:49 +0200)]
Improve `switch-to-buffer' in strongly dedicated windows (Bug#20472)
* lisp/window.el (switch-to-buffer-in-dedicated-window): New option.
(switch-to-buffer): If the selected window is strongly dedicated
to its buffer, signal error before prompting for buffer name. Handle
`switch-to-buffer-in-dedicated-window'. (Bug#20472)
* doc/lispref/windows.texi (Switching Buffers): Document
`switch-to-buffer-in-dedicated-window'.
Paul Eggert [Tue, 19 May 2015 17:38:47 +0000 (10:38 -0700)]
Try to port new etags tests to MS-Windows
* test/etags/CTAGS.good, test/etags/ETAGS.good_1:
* test/etags/ETAGS.good_2, test/etags/ETAGS.good_3:
* test/etags/ETAGS.good_4, test/etags/ETAGS.good_5:
Adjust to test-case changes below.
* test/etags/Makefile (CSRC): Remove dostorture.c.
Whatever it was trying to test, wasn't working portably.
(LC_ALL): Remove. Apparently there wasn't an encoding problem,
just a line-ending problem.
* test/etags/c-src/dostorture.c: Remove.
* test/etags/cp-src/c.C: Remove stray CR.
* test/etags/html-src/algrthms.html: Remove trailing CRs.
State UTF-8 as the encoding. The file is ASCII so it doesn't matter,
but if someone edits it later it should stay UTF-8-compatible.
Eli Zaretskii [Tue, 19 May 2015 15:39:25 +0000 (18:39 +0300)]
Fix display of overlapping window-specific overlays
* src/keyboard.c (adjust_point_for_property): When adjusting point
due to display strings, ignore overlays that are specific to
windows other than the currently selected one.
* src/xdisp.c (handle_single_display_spec): If the display
property comes from an overlay, arrange for buffer iteration to
resume only after the end of that overlay. (Bug#20607)
Dmitry Gutov [Tue, 19 May 2015 12:52:27 +0000 (15:52 +0300)]
New command icomplete-force-complete-and-exit
* lisp/icomplete.el (icomplete-force-complete-and-exit):
New command
(http://lists.gnu.org/archive/html/emacs-devel/2015-05/msg00461.html)
(http://lists.gnu.org/archive/html/emacs-devel/2015-05/msg00516.html).
(icomplete-minibuffer-map): Bind C-j to it.
(icomplete-forward-completions, icomplete-backward-completions):
Mention the new command in the docstring.
* lisp/minibuffer.el (minibuffer-force-complete-and-exit): Revert
the previous fix for bug#17545.
Martin Rudalics [Tue, 19 May 2015 09:08:21 +0000 (11:08 +0200)]
Clarify concept of "surrogate minibuffer frames" (Bug#20538)
* src/frame.c (Fdelete_frame): In doc-string mention that frame
can't be deleted if it has a surrogate minibuffer.
* doc/lispref/frames.texi (Minibuffers and Frames)
(Deleting Frames): Explain "surrogate minibuffer frames".
Paul Eggert [Tue, 19 May 2015 01:05:26 +0000 (18:05 -0700)]
Don't skip new etags tests on non-UTF-8 hosts
Problem reported by Eli Zaretskii for MS-Windows.
* test/etags/Makefile (UTF8_LOCALE, UTF8_ENCODING): Remove.
(LC_ALL): Set to C if the current locale isn't UTF-8.
(.PHONY): Remove ediff_1 thru ediff_5.
(check): Always run.
Dmitry Gutov [Mon, 18 May 2015 21:02:39 +0000 (00:02 +0300)]
Add a test case for Maven warning ouput
* test/automated/compile-tests.el
(compile-tests--test-regexps-data): Add a case for Maven warning
ouput.
(compile--test-error-line): Check the compilation message type, if
it's specified in the test data.
Dmitry Gutov [Mon, 18 May 2015 12:49:13 +0000 (15:49 +0300)]
Improve handling of the first Git revision
* lisp/vc/log-view.el (log-view-toggle-entry-display): When
there's no next entry, delete until the end of the buffer.
(log-view-end-of-defun-1): Stop at eob.
* lisp/vc/vc-annotate.el
(vc-annotate-show-diff-revision-at-line-internal): Don't give up
when previous-revision is nil.
* lisp/vc/vc-git.el (vc-git-expanded-log-entry): End the arguments
with `--' to avoid ambiguity.
(vc-git-annotate-extract-revision-at-line): Exclude `^' from the
returned revision string.
(vc-git-annotate-time): Expect `^' before the first revision.
* lisp/vc/vc-git.el (vc-git-diff): Diff against an empty tree if
REV1 is nil, and REV2 is not.
* lisp/vc/vc.el: Update the description of the `diff' function.
Paul Eggert [Mon, 18 May 2015 00:21:54 +0000 (17:21 -0700)]
Change new etags test to use UTF-8 encoding
* test/etags/CTAGS.good, test/etags/ETAGS.good_1:
* test/etags/ETAGS.good_2, test/etags/ETAGS.good_3:
* test/etags/ETAGS.good_4, test/etags/ETAGS.good_5:
* test/etags/html-src/index.shtml, test/etags/html-src/software.html:
* test/etags/html-src/softwarelibero.html:
Switch to UTF-8 encoding.
* test/etags/Makefile (SRCS): Adjust to switch to UTF-8.
Remove Makefile, as it's too incestuous to have the test input
include the build procedure.
(UTF8_LOCALE, UTF_ENCODING): New macros.
(LC_ALL): If possible, set to a UTF-8 encoding if not already UTF-8.
(check): Skip if not UTF-8.
(.PHONY): New rule.
(FRC): Remove, as superseded by .PHONY. All uses removed.
(regexfile): Prefer printf to echo when outputting oddball chars.
(.PRECIOUS): Remove, as these files are not built.
Paul Eggert [Mon, 18 May 2015 00:16:26 +0000 (17:16 -0700)]
Rename 'foo-gzipped' to 'foo.gz'
* test/automated/data/decompress/foo.gz:
Rename from test/automated/data/decompress/foo-gzipped,
to make it easier for other tools to tell that it's compressed.
* test/automated/zlib-tests.el (zlib--decompress):
Adjust to renamed file.
Dmitry Gutov [Sun, 17 May 2015 23:01:04 +0000 (02:01 +0300)]
Set up default-directory
* lisp/vc/vc-annotate.el (vc-annotate-mode-map): Remove duplicate
binding for `v'.
(vc-annotate-show-changeset-diff-revision-at-line): Set up an
appropriate value for default-directory.
Samer Masterson [Sun, 17 May 2015 21:55:16 +0000 (14:55 -0700)]
* lisp/eshell/em-term.el (eshell-term-sentinel):
No-op by default, only kills term buffer if
`eshell-destroy-buffer-when-process-dies' is non-nil. (Bug#18108)
(eshell-destroy-buffer-when-process-dies): New custom to preserve
previous behavior.
Samer Masterson [Sat, 16 May 2015 02:42:00 +0000 (19:42 -0700)]
eshell: Introduce new buffer syntax
The new buffer syntax '#<buffer-name>' is equivalent to '#<buffer
buffer-name>'. Remove `eshell-buffer-shorthand', as it is no longer
needed (Bug#19319).
Eli Zaretskii [Sun, 17 May 2015 15:33:22 +0000 (18:33 +0300)]
MS-Windows followup for ASCIIfication of curved quotes
* lisp/term/w32console.el (terminal-init-w32console): Repeat the
test for curved quotes being displayable, after switching the
terminal encoding. (Bug#20545)
Glenn Morris [Sun, 17 May 2015 00:52:27 +0000 (17:52 -0700)]
* src/lisp.mk: Remove from repository and generate at build-time.
* src/Makefile.in (lisp.mk): New rule to generate from loadup.el.
(shortlisp_filter): New variable.
(emacs$(EXEEXT), $(etc)/DOC): Depend on lisp.mk.
(distclean): Remove lisp.mk.
* Makefile.in ($(MAKEFILE_NAME)): No longer depend on src/lisp.mk.
* lisp/loadup.el: Tweak layout to make it easier to parse.
* make-dist: Do not distribute src/lisp.mk.
Dmitry Gutov [Sat, 16 May 2015 23:45:51 +0000 (02:45 +0300)]
Display shorter dates in Git annotate output
* lisp/vc/vc-git.el (vc-git-annotate-command): Use the short date
format (when not overridden with vc-git-annotate-switches).
(vc-git-annotate-time): Support the short format, as well as ISO
8601 that has been used until now (bug#5428).
Glenn Morris [Sat, 16 May 2015 20:15:20 +0000 (13:15 -0700)]
Small src/Makefile simplification.
* src/lisp.mk (shortlisp): Rename from lisp, remove $lispsource prefix.
* src/Makefile.in (lisp): Derive from shortlisp.
($(etc)/DOC): Use $shortlisp rather than parsing lisp.mk.
Dmitry Gutov [Sat, 16 May 2015 13:14:01 +0000 (16:14 +0300)]
Add new option vc-git-resolve-conflicts
* lisp/vc/vc-git.el (vc-git-resolve-conflicts): New variable.
(vc-git-find-file-hook): Add to after-save-hook only when the
above is non-nil.
(vc-git-resolve-when-done): Update to honor the new variable.
(Bug#20292)
Artur Malabarba [Sat, 16 May 2015 08:52:53 +0000 (09:52 +0100)]
* lisp/emacs-lisp/tabulated-list.el: Don't error on nil header-string
(tabulated-list-init-header): Document new behavior.
(tabulated-list-print-fake-header): No nothing if
`tabulated-list--header-string' is nil.
(tabulated-list--header-string): Add a docstring.
* doc/lispref/modes.texi (Tabulated List Mode): Document it.
* etc/NEWS: Document it.
Glenn Morris [Sat, 16 May 2015 00:51:45 +0000 (20:51 -0400)]
Replace AC_SUBST_FILE in configure with include in Makefiles.
* configure.ac (DEPDIR, MKDEPDIR, deps_frag, lwlib_deps_frag)
(oldxmenu_deps_frag, lisp_frag): Remove output variables/files.
(AUTO_DEPEND): New output variable.
* lwlib/Makefile.in (AUTO_DEPEND): New, set by configure.
(DEPFLAGS, MKDEPDIR): Set directly via conditional.
(lwlib_deps_frag): Replace by conditional include.
* lwlib/autodeps.mk: Remove file.
* oldXMenu/Makefile.in (AUTO_DEPEND): New, set by configure.
(DEPFLAGS, MKDEPDIR): Set directly via conditional.
(oldxmenu_deps_frag): Replace by conditional include.
* oldXMenu/autodeps.mk: Remove file.
* src/Makefile.in (AUTO_DEPEND): New, set by configure.
(DEPFLAGS, MKDEPDIR): Set directly via conditional.
(lisp_frag): Replace by an include.
(deps_frag): Replace by conditional include.
* src/autodeps.mk: Remove file.
Glenn Morris [Fri, 15 May 2015 22:33:09 +0000 (18:33 -0400)]
Tweak japanese.el's loading of dependencies.
* lisp/loadup.el: Explicitly load cp51932 and eucjp-ms.
* lisp/language/japanese.el: Use require rather than load.
* lisp/international/cp51932.el, lisp/international/eucjp-ms.el:
Provide a feature.
* admin/charsets/eucjp-ms.awk, admin/charsets/cp51932.awk:
Provide a feature in the generated file.
Jan Djärv [Fri, 15 May 2015 14:21:59 +0000 (16:21 +0200)]
Fix warnings on OSX 10.10.
* nsfns.m (MODAL_OK_RESPONSE): New define for different OSX versions.
(Fns_read_file_name): Check against MODAL_OK_RESPONSE.
(compute_tip_xy): Use convertRectToScreen for OSX >= 10.7
* nsmenu.m (initWithContentRect:styleMask:backing:defer:)
* nsimage.m (allocInitFromFile, setPixmapData): Only call
setScalesWhenResized for OSX < 10.6.
* nsterm.m (ns_copy_bits): New function that does not use deprecated
NSCopyBits.
(ns_scroll_run, ns_shift_glyphs_for_insert): Call ns_copy_bits.
(runAlertPanel): New function.
(applicationShouldTerminate:): Call runAlertPanel.
(initFrameFromEmacs, toggleFullScreen:): Only call useOptimizedDrawing
for OSX < 10.10.
(initFrameFromEmacs:): Only call allocateGState for OSX < 10.10.
(windowWillUseStandardFrame:defaultFrame:): Cast arg to abs to int.
(draggingEntered:): Returns NSDragOperation.
(scrollerWidth): Use scrollerWidthForControlSize for OSX >= 10.7.
* nsimage.m (ns_image_from_XBM): Add fg, bg args, pass to initFromXBM.
Remove flip arg.
(initFromSkipXBM): Move code to initFromXBM.
(initFromXBM): Actually set fg and bg, instead of playing alpha games.
Use fg, bg from args (Bug#14969). Remove if (length) section, was always
false.
Remove bit flipping (bitPat, swt), generated incorrect images when
width/height wasn't a multiple of 8.
(setXBMColor:): Modify planes by comparing to saved xbm_fg.
* lisp/progmodes/verilog-mode.el (verilog-font-lock-grouping-keywords-face)
(verilog-highlight-grouping-keywords): Fix use of face when
`verilog-highlight-grouping-keywords' set. Reported by Jeff
Pompa.
(verilog-auto-reset): Fix AUTORESET to ignore member resets if
parent is reset, bug906. Reported by Ken Schmidt.
(verilog-auto-inout-module): Add fourth regexp argument to
AUTOINOUTMODULE and AUTOINOUTCOMP for signals to not match,
bug856. Reported by John Tillema.
(verilog-auto-inst-port): Fix AUTOINST interfaces to not show
modport if signal attachment is itself a modport. Reported by
Matthew Lovell.
(verilog-auto-reset, verilog-auto-sense-sigs): Fix AUTORESET with
always_comb and always_latch, bug844. Reported by Greg Hilton.
(verilog-at-constraint-p, verilog-beg-of-statement-1): Fix hanging
with many curly-bracket pairs, bug663.
(verilog-set-auto-endcomments): Fix end comments for functions of
type void, etc. Reported by Alex Reed.
(verilog-do-indent): Fix electric tab deleting form-feeds. Note
caused by indent-line-to deleting tabls pre 24.5.
(verilog-nameable-item-re): Fix nameable items that can have an
end-identifier to include endchecker, endgroup, endprogram,
endproperty, and endsequence. Reported by Alex Reed.
(verilog-label-be): When auto-commenting a buffer, consider
auto-comments on all known keywords (not just a subset thereof).
Reported by Alex Reed.
(verilog-auto-end-comment-lines-re)
(verilog-end-block-ordered-re, verilog-set-auto-endcomments):
Automatically comment property/endproperty blocks to match other
similar blocks like sequence/endsequence, function/endfunction,
etc. Reported by Alex Reed.
(verilog-set-auto-endcomments): Detect the function- or task-name
when auto-commenting blocks that lack an explicit
portlist. Reported by Alex Reed.
(verilog-auto, verilog-auto-insert-last): Add AUTOINSERTLAST to
allow post-AUTO user fixups, bug826. Reported by Dennis
Muhlestein.
(verilog-no-indent-begin-re): When `verilog-indent-begin-after-if'
is nil, fix indenting initial/final to match always statements,
bug825. Reported by Tim Clapp.
(verilog-extended-complete-re): Fix indentation of DPI-C imports
with c_identifiers, and DPI-C imports, bug557. Reported by ZeDong
Mao and Jason Forkey.
(verilog-read-decls): Fix parsing typed interfaces. Fix
AUTOINOUTMODPORT missing types. Reported by Stephan Bourduas.
Fix localparam not being ignored in AUTOINSTPARAM,
bug889. Reported by Shannon Hill.
(verilog-auto-output-every): Add regexp to AUTOOUTPUTEVERY,
bug793. Reported by Pierre-David Pfister.
(verilog-auto-arg-format, verilog-auto-arg-ports): Add
verilog-auto-arg-format to support newlines in AUTOARG. Reported
by Jie Xiao.
(verilog-batch-execute-func): Do not batch re-auto files loaded by
Local Variables. Fix printing "no changes to be saved" with
verilog-batch. Reported by Dan Dever.
(verilog-auto-inout-module): Fix AUTOINOUTMODULE not inserting
interface-only modules, bug721. Reported by Dean Hoyt.
Author: Alex Reed <acreed4@gmail.com>
* lisp/progmodes/verilog-mode.el (verilog-beg-of-statement): Don't
treat '<keyword>:<identifier>' as the start of a labeled
statement, bug905. Reported by Enzo Chi.
(verilog-directive-re, verilog-compiler-directives)
(verilog-keywords): Match full set of IEEE 2012-1800 compiler
directives (plus some extras) when determining indentation, bug
901. Reported by Bernd Beuster.
(verilog-at-constraint-p): Fix indentation of coverpoint bins if
iff expression doesn't start with word-character, bug900.
(verilog-optional-signed-range-re, verilog-optional-signed-re):
Fix incorrect indentation/alignment of unsigned declarations,
bug897.
(verilog-looking-back, verilog-in-attribute-p): Fix labling of
always constructs, bug895.
(verilog-calc-1): Fix verilog-mode constraint indentation,
bug324. Reported by Eric Mastromarchi.
(verilog-beg-of-statement): Fix indenting for some forms of
constraintsm bug433. Reported by Brad Parker. Fix indentation of
continued assignment incorrect if first line ends with ']',
bug437. Reported by Dan Dever. Fix indention of cover inside an
ifdef, bug 862. Reported by Bernd Beuster Fix labeling do-while
blocks, bug842.
(verilog-preprocessor-re): Fix fork/end UNMATCHED warning,
bug859. Reported by Kaushal Modi.
(verilog-set-auto-endcomments): Fix endlabel end comments, bug888.
(verilog-backward-token): Fix indenting sensitivity lists with
named events, bug840. Reed.
(verilog-no-indent-begin-re): Fix `verilog-indent-begin-after-if'
nil not honoring 'forever', 'foreach', and 'do' keywords.
Paul Eggert [Thu, 14 May 2015 16:21:56 +0000 (09:21 -0700)]
Check for invalid GTK+ monitor scales
* src/gtkutil.c (xg_get_gdk_scale): Return 1 for invalid scales,
INT_MAX for too-large scales. All callers changed to assume the
result is valid (Bug#20432).
(xg_frame_set_char_size, xg_update_scrollbar_pos):
Calculate scale only if needed.