* lisp/emacs-lisp/package.el (package-import-keyring)
(package--check-signature-content, package-check-signature):
Use new variable package-gnupghome-dir to control which GnuPG
homedir to use.
* doc/emacs/package.texi: Mention package-gnupghome-dir.
* etc/NEWS: Mention package-gnupghome-dir.
This activates a change that was installed a few weeks ago but whose
ChangeLog was inadvertently dropped during its commit. The proper
ChangeLog is included below as part of the present commit.
* src/gtkutil.c (xg_set_geometry): When x_gtk_use_window_move
is set avoid calling x_gtk_parse_geometry (Bug#25851).
(x_wm_set_size_hint): When x_gtk_use_window_move is set, set
PPosition, USPosition and USSize flags if requested.
* src/xterm.c (x_set_offset): With GTK when
x_gtk_use_window_move is set, leave it entirely to
gtk_window_move to position the window and skip any
post-adjustments (Bug#25851 and Bug#25943).
(x_gtk_use_window_move): New variable.
After M-;, and the insertion of the opening "/*", the CC Mode after-change
function got confused, since the new comment opener matched the end of a
subsequent comment, but moving back over that comment did not come back to the
starting point. Fix this.
* lisp/progmodes/cc-engine.el (c-end-of-macro): Add a limit parameter, wherer
point is left if no end-of-macro is found before it.
(c-forward-sws): Change the `safe-start' mechanism. Now `safe-start' is
non-nil except where we have an unclosed block comment at the end of a macro.
This enables us to populate the cache more fully, at the cost of some run
time.
* doc/misc/tramp.texi (Change file name syntax): New node.
* etc/NEWS: Mention `tramp-change-syntax'.
* lisp/net/tramp.el (tramp-file-name-regexp): Reinsert it.
External packages uses it.
(tramp-syntax): Set also `tramp-file-name-regexp'.
This incorporates:
2017-04-08 getopt: prefer - to _ in new file names
2017-04-08 getopt: port recent getopt changes to macOS
* .gitignore: Add lib/getopt-cdefs.h.
* lib/getopt-cdefs.in.h: Rename from lib/getopt_cdefs.in.h.
* lib/getopt-core.h: Rename from lib/getopt_core.h.
* lib/getopt-ext.h: Rename from lib/getopt_ext.h.
* lib/getopt-pfx-core.h: Rename from lib/getopt_pfx_core.h.
* lib/getopt-pfx-ext.h: Rename from lib/getopt_pfx_ext.h.
* lib/getopt.in.h, lib/unistd.in.h, m4/getopt.m4:
Copy from Gnulib.
* lib/gnulib.mk.in, m4/gnulib-comp.m4: Regenerate.
In a parallel build, byte compilation can be running at the same times
as loaddefs.el is being regenerated. However, in a CANNOT_DUMP build,
loaddefs.el is read at startup and must always be in a usable state.
* lisp/Makefile.in ($(lisp)/loaddefs.el): Write generated output to
loaddefs.el.new and then rename it to loaddefs.el.
* lisp/mail/rmail.el (rmail-remote-proto-p): New function.
(rmail-parse-url): Return protocol in second list element.
Only use passwords with remote mailboxes.
(rmail-insert-inbox-text): Handle non-simple local
mailboxes (maildir, MH, etc.).
* lisp/net/tramp-cmds.el (tramp-change-syntax):
Use `tramp-syntax-values'.
* lisp/net/tramp-compat.el (tramp-compat-tramp-syntax): New defsubst.
* lisp/net/tramp.el (tramp-syntax): Rename possible values.
(tramp-syntax-values): New defun.
(tramp-prefix-format, tramp-method-regexp)
(tramp-postfix-method-format, tramp-prefix-ipv6-format)
(tramp-postfix-ipv6-format, tramp-postfix-host-format)
(tramp-completion-file-name-regexp): Use `tramp-compat-tramp-syntax'
and changed values.
(tramp-completion-file-name-regexp-default): Rename from
`tramp-completion-file-name-regexp-unified'. Adapt docstring.
(tramp-completion-file-name-regexp-simplified): Rename from
`tramp-completion-file-name-regexp-old-style'. Adapt docstring.
(tramp-initial-completion-file-name-regexp):
Use `tramp-completion-file-name-regexp-default'.
(tramp-run-real-handler): Do not autoload any longer.
This is a continuation of d526047 "Replace more nested ifs with cond".
* lisp/play/dunnet.el (dun-firstword, dun-firstwordl, dun-cat): Use
when and cond where appropriate.
This was fixed in Bug#24748, but now looking more closely, using gate in
the spec seems correct. See (info "(elisp) Backtracking").
* lisp/emacs-lisp/subr-x.el (if-let*): Use gate in edebug spec.
From the mhtml-mode series. Some of the uses of cl-lib are not
necessary.
* lisp/align.el: Don't require cl-lib.
(align-region): Use apply instead of cl-member-if.
* lisp/emulation/viper.el: Don't require cl-lib.
(viper-mode, this-major-mode-requires-vi-state): Use apply instead of
cl-member-if.
Since copy-sequence seems to be needed anyway for records, have it
work on records, and remove copy-record as being superfluous.
* doc/lispref/records.texi (Records, Record Functions):
* lisp/emacs-lisp/cl-macs.el (cl-defstruct):
* lisp/emacs-lisp/eieio.el (make-instance, clone):
* test/src/alloc-tests.el (record-3):
Use copy-sequence, not copy-record, to copy records.
* doc/lispref/sequences.texi (Sequence Functions)
(Array Functions): Document that aref and copy-sequence
work on records.
* etc/NEWS: Omit copy-record.
* src/alloc.c (Fcopy_record): Remove.
* src/data.c (Faref): Document that arg can be a record.
* src/fns.c (Fcopy_sequence): Copy records, too.
* src/Makefile.in (AUTO_DEPEND, DEPDIR, DEPFLAGS): Move includes of
dependency files until after ALLOBJS is defined, since it uses ALLOBJS.
Otherwise, some dependencies will be missed.
* lisp/epa-file.el (epa-file-write-region):
* lisp/gnus/mm-util.el (mm-append-to-file):
* lisp/jka-compr.el (jka-compr-write-region):
* lisp/net/ange-ftp.el (ange-ftp-write-region):
* lisp/net/tramp-gvfs.el (tramp-gvfs-handle-write-region):
* lisp/net/tramp-sh.el (tramp-sh-handle-write-region):
* src/fileio.c (write_region): Put file name at the beginning and move
number of characters to the end of the message.
* lisp/vc/ediff-diff.el (ediff-exec-process): Check that the argument
passed to `file-local-copy' is a string (Bug#26378). Also fix
the existing comment for this function, and convert it to its
doc-string.
The previous patch for Bug#354 incorrectly assumed that START would
always be an integer.
* lisp/epa-file.el (epa-file-write-region):
* lisp/jka-compr.el (jka-compr-write-region):
* lisp/net/ange-ftp.el (ange-ftp-write-region):
* lisp/net/tramp-gvfs.el (tramp-gvfs-handle-write-region):
* lisp/net/tramp-sh.el (tramp-sh-handle-write-region):
* src/fileio.c (write_region): Handle nil and string values of START.
The recent changes to src/casefiddle.c cause build failure as seen
below:
Starting program: /home/npostavs/src/emacs/emacs-bootstrapping/src/temacs
--batch --load loadup bootstrap
[Thread debugging using libthread_db enabled]
Using host libthread_db library "/usr/lib/libthread_db.so.1".
Loading loadup.el (source)...
Using load-path (/home/npostavs/src/emacs/emacs-bootstrapping/lisp
/home/npostavs/src/emacs/emacs-bootstrapping/lisp/emacs-lisp
/home/npostavs/src/emacs/emacs-bootstrapping/lisp/language
/home/npostavs/src/emacs/emacs-bootstrapping/lisp/international
/home/npostavs/src/emacs/emacs-bootstrapping/lisp/textmodes
/home/npostavs/src/emacs/emacs-bootstrapping/lisp/vc)
Loading emacs-lisp/byte-run (source)...
Loading emacs-lisp/backquote (source)...
Loading subr (source)...
Loading version (source)...
Loading widget (source)...
Loading custom (source)...
Loading emacs-lisp/map-ynp (source)...
Loading international/mule (source)...
Loading international/mule-conf (source)...
lread.c:3914: Emacs fatal error: assertion failed: !NILP (Vpurify_flag)
Breakpoint 1, terminate_due_to_signal at emacs.c:363
363 signal (sig, SIG_DFL);
(gdb) bt
#0 0x0000000000579826 in terminate_due_to_signal at emacs.c:363
#1 0x000000000060ec33 in die at alloc.c:7352
#2 0x000000000066db40 in intern_c_string_1 at lread.c:3914
#3 0x0000000000576884 in intern_c_string at lisp.h:3790
#4 0x00000000005dc84f in prepare_casing_context at casefiddle.c:69
#5 0x00000000005dd37f in casify_object at casefiddle.c:311
#6 0x00000000005dd47f in Fcapitalize at casefiddle.c:356
#7 0x00000000006325ac in eval_sub at eval.c:2219
#8 0x0000000000632368 in eval_sub at eval.c:2184
#9 0x000000000063446c in apply_lambda at eval.c:2875
#10 0x00000000006329af in eval_sub at eval.c:2294
#11 0x000000000062d462 in Fprogn at eval.c:449
#12 0x000000000062d4cf in prog_ignore at eval.c:461
#13 0x000000000062f19c in Fwhile at eval.c:982
#14 0x00000000006321f4 in eval_sub at eval.c:2172
#15 0x000000000062d462 in Fprogn at eval.c:449
#16 0x000000000062f0c4 in Flet at eval.c:963
#17 0x00000000006321f4 in eval_sub at eval.c:2172
#18 0x0000000000632963 in eval_sub at eval.c:2290
#19 0x000000000062d462 in Fprogn at eval.c:449
#20 0x000000000062f0c4 in Flet at eval.c:963
#21 0x00000000006321f4 in eval_sub at eval.c:2172
#22 0x0000000000668caa in readevalloop at lread.c:1927
#23 0x0000000000667253 in Fload at lread.c:1332
#24 0x0000000000632683 in eval_sub at eval.c:2233
#25 0x0000000000668caa in readevalloop at lread.c:1927
#26 0x0000000000667253 in Fload at lread.c:1332
#27 0x0000000000632683 in eval_sub at eval.c:2233
#28 0x0000000000631be5 in Feval at eval.c:2041
#29 0x000000000057e1af in top_level_2 at keyboard.c:1121
#30 0x000000000062ffc7 in internal_condition_case at eval.c:1324
#31 0x000000000057e1f0 in top_level_1 at keyboard.c:1129
#32 0x000000000062f51e in internal_catch at eval.c:1091
#33 0x000000000057e0ea in command_loop at keyboard.c:1090
#34 0x000000000057d6d5 in recursive_edit_1 at keyboard.c:697
#35 0x000000000057d8b4 in Frecursive_edit at keyboard.c:768
#36 0x000000000057b55b in main at emacs.c:1687
Lisp Backtrace:
"capitalize" (0xffffcf70)
"format" (0xffffd130)
"define-charset" (0xffffd370)
"while" (0xffffd560)
"let" (0xffffd7c0)
"dolist" (0xffffd910)
"let" (0xffffdb70)
"load" (0xffffdfe0)
"load" (0xffffe4a0)
* src/casefiddle.c (syms_of_casefiddle): Declare four new symbols:
Qtitlecase, Qspecial_uppercase, Qspecial_lowercase and
Qspecial_titlecase.
(prepare_casing_context): Use aforementioned symbols.
* src/casefiddle.c: Redo recent changes to match GNU style,
and prefer C99-style decls within blocks.
(GREEK_CAPITAL_LETTER_SIGMA): Rename from CAPITAL_SIGMA, so that
we are merely using the Unicode name, and make it a constant
rather than a macro. All uses changed.
(SMALL_SIGMA): Remove; unused.
(GREEK_SMALL_LETTER_FINAL_SIGMA): Rename from SMALL_FINAL_SIGMA,
and make it a constant rather than a macro. All uses changed.
(do_casify_multibyte_string): Use ‘verify’ rather than an
unportable static_assertion local.
* lib/Makefile.in (clean): Remove *-t files.
(mostlyclean): Remove MOSTLYCLEANFILES that are not *-t files.
This removes files like lib/getopt.h that should be removed
even if this configuration did not need to build them.
(maintainer-clean): Remove TAGS here, not in distclean,
to be consistent with ../src/Makefile.in.