Merge branch 'master' into cairo
This commit is contained in:
commit
6aaa489dc1
214 changed files with 3356 additions and 2484 deletions
1
.gitignore
vendored
1
.gitignore
vendored
|
@ -40,7 +40,6 @@ Info.plist
|
|||
InfoPlist.strings
|
||||
Makefile
|
||||
makefile
|
||||
!admin/charsets/Makefile
|
||||
!etc/refcards/Makefile
|
||||
!test/automated/data/flymake/Makefile
|
||||
!test/indent/Makefile
|
||||
|
|
|
@ -96,6 +96,9 @@ messages:
|
|||
- Commit messages should not contain the "Signed-off-by:" lines that
|
||||
are used in some other projects.
|
||||
|
||||
- Any lines of the commit message that start with "; " are omitted
|
||||
from the generated ChangeLog.
|
||||
|
||||
- Explaining the rationale for a design choice is best done in comments
|
||||
in the source code. However, sometimes it is useful to describe just
|
||||
the rationale for a change; that can be done in the commit message
|
||||
|
|
601
ChangeLog.2
601
ChangeLog.2
|
@ -1,3 +1,604 @@
|
|||
2015-05-17 Johan Bockgård <bojohan@gnu.org>
|
||||
|
||||
Fix integer-valued `mouse-highlight' (Bug#20590)
|
||||
* src/xterm.c (handle_one_xevent) [USE_GTK]: Fix ifdef scope.
|
||||
|
||||
2015-05-17 Eli Zaretskii <eliz@gnu.org>
|
||||
|
||||
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)
|
||||
|
||||
2015-05-17 Paul Eggert <eggert@cs.ucla.edu>
|
||||
|
||||
Spelling fixes
|
||||
|
||||
2015-05-17 Jan D <jan.h.d@swipnet.se>
|
||||
|
||||
Add comment that x_shift_glyphs_for_insert is never called.
|
||||
* xterm.c (x_shift_glyphs_for_insert, x_redisplay_interface): Add
|
||||
comment that this function is never called.
|
||||
|
||||
2015-05-16 Glenn Morris <rgm@gnu.org>
|
||||
|
||||
* 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.
|
||||
|
||||
2015-05-16 Dmitry Gutov <dgutov@yandex.ru>
|
||||
|
||||
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).
|
||||
|
||||
2015-05-16 Paul Eggert <eggert@cs.ucla.edu>
|
||||
|
||||
ASCIIfy curved quotes on displays lacking them
|
||||
* lisp/international/mule-cmds.el (set-locale-environment):
|
||||
If curved quotes don't work, display straight ASCII approximations
|
||||
(Bug#20545).
|
||||
|
||||
2015-05-16 Glenn Morris <rgm@gnu.org>
|
||||
|
||||
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.
|
||||
|
||||
2015-05-16 Eli Zaretskii <eliz@gnu.org>
|
||||
|
||||
* lisp/help-mode.el (help-go-forward): Doc fix.
|
||||
(Bug#20577)
|
||||
|
||||
* doc/lispref/debugging.texi (Profiling): Improve indexing.
|
||||
(Bug#20576)
|
||||
|
||||
2015-05-16 Dmitry Gutov <dgutov@yandex.ru>
|
||||
|
||||
Use `unless' to have one fewer `not'
|
||||
* lisp/vc/vc-git.el (vc-git-resolve-when-done): Use `unless' to
|
||||
have one fewer `not'.
|
||||
|
||||
Remove redundant :group declarations from vc-git.el
|
||||
* lisp/vc/vc-git.el (vc-git-diff-switches)
|
||||
(vc-git-annotate-switches, vc-git-resolve-conflicts)
|
||||
(vc-git-program, vc-git-root-log-format): Remove the redundant
|
||||
:group declarations.
|
||||
|
||||
2015-05-16 Nicolas Petton <nicolas@petton.fr>
|
||||
|
||||
Removes the predicate from lisp-complete-symbol (Bug#20456)
|
||||
* lisp/emacs-lisp/lisp.el (lisp-complete-symbol): Do not use predicate
|
||||
and remove it from the docstring.
|
||||
|
||||
2015-05-16 Dmitry Gutov <dgutov@yandex.ru>
|
||||
|
||||
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)
|
||||
|
||||
2015-05-16 Eli Zaretskii <eliz@gnu.org>
|
||||
|
||||
Merge branch 'master' of git.savannah.gnu.org:/srv/git/emacs
|
||||
|
||||
2015-05-16 Artur Malabarba <bruce.connor.am@gmail.com>
|
||||
|
||||
* 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.
|
||||
|
||||
2015-05-15 Leo Liu <sdl.web@gmail.com>
|
||||
|
||||
Revert "Fix cps--gensym"
|
||||
* lisp/emacs-lisp/generator.el (cps--gensym): Revert commit
|
||||
fbda511ab8069d0115eafca411a43353b85431b1 on 2015-05-14.
|
||||
|
||||
2015-05-15 Glenn Morris <rgm@gnu.org>
|
||||
|
||||
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.
|
||||
|
||||
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.
|
||||
|
||||
2015-05-15 Jan D <jan.h.d@swipnet.se>
|
||||
|
||||
Fix NS warnings.
|
||||
* nsmenu.m (ns_popup_dialog)
|
||||
* nsimage.m (initFromXBM:width:height:fg:bg:)
|
||||
* nsfns.m (Fx_create_frame): Remove unused variables.
|
||||
(Fns_read_file_name): Initialize fname, remove ret.
|
||||
* nsterm.m (ns_draw_window_cursor): Handle DEFAULT_CURSOR in switch.
|
||||
(ns_get_color, ns_set_horizontal_scroll_bar, keyDown): Remove unused
|
||||
variable.
|
||||
(init): Add parantesis in if.
|
||||
(ns_create_terminal): Assign set_horizontal_scroll_bar_hook.
|
||||
|
||||
2015-05-15 Jan Djärv <jan.h.d@swipnet.se>
|
||||
|
||||
Fix a enum conversion warning in macfont.m
|
||||
* src/macfont.h (CharacterCollection): Typedef to NSCharacterCollection.
|
||||
(MAC_CHARACTER_COLLECTION_*): Use the NS variants.
|
||||
|
||||
2015-05-15 Eli Zaretskii <eliz@gnu.org>
|
||||
|
||||
Support de-alt dictionary with Aspell.
|
||||
* lisp/textmodes/ispell.el (ispell-aspell-find-dictionary):
|
||||
Support Aspell dictionaries with names like "de-alt". (Bug#20581)
|
||||
|
||||
2015-05-15 Jan Djärv <jan.h.d@swipnet.se>
|
||||
|
||||
cus-start.el: Add ns-confirm-quit.
|
||||
* cus-start.el: Add ns-confirm-quit.
|
||||
|
||||
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.h (EmacsScroller): Declare scrollerWidth.
|
||||
* 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.
|
||||
|
||||
2015-05-15 Artur Malabarba <bruce.connor.am@gmail.com>
|
||||
|
||||
* lisp/emacs-lisp/package.el: Don't ensure-init during startup
|
||||
(package--init-file-ensured): New variable.
|
||||
(package-initialize, package--ensure-init-file): Use it.
|
||||
|
||||
2015-05-15 Jan Djärv <jan.h.d@swipnet.se>
|
||||
|
||||
Honor :fore/background for XBM on NS (Bug#14969).
|
||||
* nsterm.h (EmacsImage): Add xbm_fg, remove initFromSkipXBM,
|
||||
initFromXBM takes bg, fg args, remove flip arg.
|
||||
(ns_image_from_XBM): Add bg, fg args.
|
||||
* image.c (x_create_bitmap_from_data)
|
||||
(Create_Pixmap_From_Bitmap_Data): ns_image_from_XBM takes bg, fg args.
|
||||
* 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.
|
||||
* nsterm.m (ns_draw_fringe_bitmap): initFromXBM takes fg, bg args, remove
|
||||
flip arg.
|
||||
|
||||
2015-05-15 Artur Malabarba <bruce.connor.am@gmail.com>
|
||||
|
||||
* lisp/emacs-lisp/package.el: Be more careful with the init file
|
||||
(package--ensure-init-file): Check that user-init-file is set,
|
||||
exists, is readable, and is writable. (Bug#20584)
|
||||
Also expand the docstring.
|
||||
|
||||
2015-05-14 Wilson Snyder <wsnyder@wsnyder.org>
|
||||
|
||||
Sync with upstream verilog-mode revision 6232468
|
||||
* 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.
|
||||
|
||||
2015-05-14 Paul Eggert <eggert@cs.ucla.edu>
|
||||
|
||||
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.
|
||||
show ASCII approximations instead.
|
||||
|
||||
2015-05-14 Eli Zaretskii <eliz@gnu.org>
|
||||
|
||||
Fix daemon crashes when linum-mode is turned on early on
|
||||
* src/window.c (Fwindow_end): Don't try calling display engine
|
||||
functions on initial-frame frame. (Bug#20565)
|
||||
|
||||
Fix selective diff browsing in Ediff
|
||||
* lisp/vc/ediff-util.el (ediff-focus-on-regexp-matches): Go to the
|
||||
beginning of the region before searching for the
|
||||
ediff-regexp-focus-* regexps. (Bug#20568)
|
||||
|
||||
2015-05-14 Jan D <jan.h.d@swipnet.se>
|
||||
|
||||
Fixes Bug#20142.
|
||||
* gtkutil.c (delete_cb): Don't send delete event here, it does arrive
|
||||
in the main loop, even for Gtk 3 (Bug#20142).
|
||||
|
||||
Don't access display after i/o error (Bug#19147).
|
||||
* xterm.c (x_connection_closed): Add third arg ioerror.
|
||||
If ioerror, set display to 0 (Bug#19147).
|
||||
(x_error_quitter): Call x_connection_closed with third arg false.
|
||||
(x_io_error_quitter): Call x_connection_closed with third arg true.
|
||||
|
||||
Handle GTK_SCALE, fixes Bug#20432.
|
||||
* gtkutil.c (xg_get_gdk_scale): New function.
|
||||
(xg_frame_set_char_size)
|
||||
(x_wm_set_size_hint, xg_get_default_scrollbar_width)
|
||||
(xg_get_default_scrollbar_height)
|
||||
(xg_update_horizontal_scrollbar_pos): Take GTK_SCALE in to account
|
||||
when setting sizes (Bug#20432).
|
||||
|
||||
2015-05-13 Leo Liu <sdl.web@gmail.com>
|
||||
|
||||
Fix cps--gensym
|
||||
* lisp/emacs-lisp/generator.el (cps--gensym): Fix.
|
||||
|
||||
2015-05-13 Glenn Morris <rgm@gnu.org>
|
||||
|
||||
Fix bootstrap (void function cl-member).
|
||||
* lisp/emacs-lisp/cl-lib.el: Load cl-seq if no cl-loaddefs file.
|
||||
* lisp/emacs-lisp/cl-seq.el: Provide a feature.
|
||||
|
||||
2015-05-13 Stefan Monnier <monnier@iro.umontreal.ca>
|
||||
|
||||
* lisp/loadup.el ("emacs-lisp/cl-generic"): Preload
|
||||
* src/lisp.mk (lisp): Add emacs-lisp/cl-generic.elc.
|
||||
* lisp/emacs-lisp/cl-generic.el (cl-generic-define-method):
|
||||
Avoid defalias for closures which are not immutable.
|
||||
(cl--generic-prefill-dispatchers): New macro. Use it to prefill the
|
||||
dispatchers table with various entries.
|
||||
* lisp/emacs-lisp/ert.el (emacs-lisp-mode-hook):
|
||||
* lisp/emacs-lisp/seq.el (emacs-lisp-mode-hook): Use add-hook.
|
||||
|
||||
2015-05-13 Eli Zaretskii <eliz@gnu.org>
|
||||
|
||||
Improve tagging of C bindings in DEFVAR_*
|
||||
* src/Makefile.in (TAGS): Add --regex options to tag the C binding
|
||||
from DEFVAR_*.
|
||||
|
||||
2015-05-13 Paul Eggert <eggert@cs.ucla.edu>
|
||||
|
||||
* src/editfns.c (Fformat): Fix use-after-free bug (Bug#20548).
|
||||
|
||||
2015-05-12 Glenn Morris <rgm@gnu.org>
|
||||
|
||||
* lisp/progmodes/tcl.el (tcl-filter):
|
||||
Handle comint-prompt-read-only like gud.el does. (Bug#20549)
|
||||
|
||||
Add basic VC push support.
|
||||
* lisp/vc/vc.el (vc-push): New autoloaded command.
|
||||
* lisp/vc/vc-hooks.el (vc-prefix-map, vc-menu-map): Add vc-push.
|
||||
* lisp/vc/vc-bzr.el (vc-bzr--pushpull): New, factored from vc-bzr-pull.
|
||||
(vc-bzr-pull): Reimplement using vc-bzr--pushpull.
|
||||
(vc-bzr-push): New.
|
||||
* lisp/vc/vc-git.el (vc-git--pushpull): New, factored from vc-git-pull.
|
||||
(vc-git-pull): Reimplement using vc-git--pushpull.
|
||||
(vc-git-push): New.
|
||||
* lisp/vc/vc-hg.el (vc-hg--pushpull): New, factored from vc-hg-pull.
|
||||
(vc-hg-pull, vc-hg-push): Reimplement using vc-hg--pushpull.
|
||||
* doc/emacs/maintaining.texi (Pulling / Pushing):
|
||||
Rename from "VC Pull". Mention pushing.
|
||||
(VC With A Merging VCS, VC Change Log): Update xrefs.
|
||||
(Branches): Update menu.
|
||||
* doc/emacs/emacs.texi: Update menu.
|
||||
* etc/NEWS: Mention this.
|
||||
|
||||
2015-05-12 Nicolas Petton <nicolas@petton.fr>
|
||||
|
||||
Improve the seq pcase pattern and the `seq-let' macro
|
||||
* lisp/emacs-lisp/seq.el: The pcase pattern now matches only if the
|
||||
object is a sequence, and binds each element of ARGS to the
|
||||
corresponding element of the sequence.
|
||||
|
||||
2015-05-12 Eli Zaretskii <eliz@gnu.org>
|
||||
|
||||
Fix tags created from DEFVAR_* declarations in C
|
||||
* src/Makefile.in (TAGS): Improve the --regex argument to etags,
|
||||
to make tags extracted from DEFVAR_* declarations more accurate.
|
||||
|
||||
Add a test suite for etags
|
||||
* test/etags/: New test suite, adapted from
|
||||
http://fly.isti.cnr.it/pub/software/unix/etags-regression-test.tar.bz2,
|
||||
whose original author is Francesco Potortì <pot@gnu.org>.
|
||||
|
||||
Fix tagging of symbols in C enumerations
|
||||
* lib-src/etags.c (consider_token): Don't tag symbols in
|
||||
expressions that assign values to enum constants. See
|
||||
http://lists.gnu.org/archive/html/emacs-devel/2015-05/msg00291.html
|
||||
for details.
|
||||
(C_entries): Reset fvdef to fvnone after processing a preprocessor
|
||||
conditional and after a comma outside of parentheses.
|
||||
|
||||
2015-05-12 Glenn Morris <rgm@gnu.org>
|
||||
|
||||
* lisp/url/url-handlers.el (url-file-name-completion)
|
||||
(url-file-name-all-completions): Silence compiler.
|
||||
|
||||
* lisp/emacs-lisp/chart.el (chart-axis-draw): Replace obsolete alias.
|
||||
|
||||
* lisp/play/dunnet.el (dun-dos-boot-msg): Fix time. (Bug#20554)
|
||||
|
||||
2015-05-12 Stefan Monnier <monnier@iro.umontreal.ca>
|
||||
|
||||
* lisp/emacs-lisp/cl-generic.el: Add dispatch on &context arguments
|
||||
(cl--generic-mandatory-args): Remove.
|
||||
(cl--generic-split-args): New function.
|
||||
(cl-generic-define, cl--generic-lambda): Use it.
|
||||
(cl-generic-define-method): Use it as well, and add support for
|
||||
context args.
|
||||
(cl--generic-get-dispatcher): Handle &context dispatch.
|
||||
(cl--generic-cache-miss): `dispatch-arg' can now be a context expression.
|
||||
(cl--generic-dispatchers): Pre-fill.
|
||||
* test/automated/cl-generic-tests.el (sm-generic-test-12-context): New test.
|
||||
|
||||
2015-05-11 Glenn Morris <rgm@gnu.org>
|
||||
|
||||
* make-dist: Abort if "make ChangeLog" fails. Add "--no-changelog".
|
||||
|
||||
2015-05-11 Stefan Monnier <monnier@iro.umontreal.ca>
|
||||
|
||||
* lisp/term/xterm.el: Fix xterm-paste handling for rxvt
|
||||
* lisp/term/rxvt.el: Require term/xterm.
|
||||
(rxvt-function-map): Use xterm-rxvt-function-map.
|
||||
(rxvt-standard-colors): Move before first use.
|
||||
(terminal-init-rxvt): Use xterm--push-map and xterm-register-default-colors.
|
||||
(rxvt-rgb-convert-to-16bit, rxvt-register-default-colors): Remove.
|
||||
* lisp/term/xterm.el (xterm-rxvt-function-map): New var.
|
||||
Move shared bindings between rxvt and xterm to it.
|
||||
(xterm-function-map): Use it. Move the xterm-paste binding to
|
||||
xterm-rxvt-function-map (bug#20444).
|
||||
(xterm-standard-colors): Move before first use.
|
||||
(xterm--push-map): New function.
|
||||
(xterm-register-default-colors): Take standard colors as argument.
|
||||
(terminal-init-xterm): Use it. Adjust call to
|
||||
xterm-register-default-colors.
|
||||
|
||||
2015-05-11 Glenn Morris <rgm@gnu.org>
|
||||
|
||||
* lisp/term/x-win.el: Quieten --without-x compilation.
|
||||
(x-own-selection-internal, x-disown-selection-internal)
|
||||
(x-selection-owner-p, x-selection-exists-p, x-get-selection-internal):
|
||||
Declare.
|
||||
|
||||
* Makefile.in (emacslog): Remove srcdir.
|
||||
(ChangeLog): Update for the above.
|
||||
|
||||
2015-05-11 Paul Eggert <eggert@cs.ucla.edu>
|
||||
|
||||
Spelling fix
|
||||
|
||||
2015-05-10 Fabián Ezequiel Gallina <fgallina@gnu.org>
|
||||
|
||||
python.el: better limit for looking-back calls
|
||||
* lisp/progmodes/python.el (python-shell-accept-process-output):
|
||||
Use last comint prompt start as limit for looking-back.
|
||||
|
||||
2015-05-10 Stefan Monnier <monnier@iro.umontreal.ca>
|
||||
|
||||
CEDET (srecode-insert-fcn): Fix use of oref on a class
|
||||
* lisp/cedet/srecode/insert.el (srecode-insert-fcn): Fix use of oref on
|
||||
a class. Reported by Pierre Lorenzon.
|
||||
(srecode-template-inserter-point): Remove declaration.
|
||||
|
||||
CEDET (srecode-create-dictionary): Avoid obsolete object name
|
||||
* lisp/cedet/srecode/dictionary.el (srecode-create-dictionary):
|
||||
Don't use a symbol as an object name. Reported by Pierre Lorenzon.
|
||||
|
||||
2015-05-10 Paul Eggert <eggert@cs.ucla.edu>
|
||||
|
||||
C-x 8 shorthands for curved quotes, Euro, etc.
|
||||
Although C-x 8 lets you insert arbitrary Unicode characters,
|
||||
it's awkward to use this to insert commonly used symbols such as curved
|
||||
quotes, the Euro symbol, etc. This patch adds simpler sequences for
|
||||
characters commonly found in English text and in basic math.
|
||||
For example, assuming the Alt key works on your keyboard and iso-transl
|
||||
is loaded, one can now type "A-[" instead of "A-RET LEFT SIN TAB RET"
|
||||
to get the character "‘" (U+2018 LEFT SINGLE QUOTATION MARK).
|
||||
(Bug#20499)
|
||||
* doc/emacs/mule.texi (Unibyte Mode):
|
||||
A few other printing characters now work too.
|
||||
* etc/NEWS: Document this.
|
||||
* lisp/international/iso-transl.el (iso-transl-char-map):
|
||||
Also support the following characters:
|
||||
‐ ‑ ‒ – — ― ‘ ’ “ ” † ‡ • ′ ″ € № ← → ↔ − ≈ ≠ ≤ ≥
|
||||
|
||||
2015-05-10 Dmitry Gutov <dgutov@yandex.ru>
|
||||
|
||||
Add xref-find-regexp
|
||||
* lisp/progmodes/xref.el (xref-find-function): Describe the
|
||||
`matches' action.
|
||||
(xref-find-regexp): New command, using it.
|
||||
(xref-collect-references): Rename to xref-collect-matches.
|
||||
(xref--collect-reference): Rename to xref--collect-match.
|
||||
(xref-collect-matches, xref--collect-match): Accept new argument,
|
||||
KIND. Update accordingly.
|
||||
(xref--regexp-to-extended): New function.
|
||||
* lisp/progmodes/elisp-mode.el (elisp-xref-find): Support the
|
||||
`matches' action.
|
||||
(elisp--xref-find-matches): Accept new argument. Resolve a FIXME.
|
||||
* lisp/progmodes/etags.el (etags-xref-find):
|
||||
Support the `matches' action.
|
||||
(etags--xref-find-matches): New function.
|
||||
|
||||
2015-05-10 Glenn Morris <rgm@gnu.org>
|
||||
|
||||
* Makefile.in: Fixes for recent change-history changes.
|
||||
(change-history-nocommit): Update footer regexp.
|
||||
Ensure output script stays executable.
|
||||
|
||||
2015-05-10 Nicolas Petton <nicolas@petton.fr>
|
||||
|
||||
New version of `seq-let' based on a pcase pattern
|
||||
* lisp/emacs-lisp/seq.el (seq-let): Define the macro in terms of a
|
||||
pcase pattern if `pcase-defmacro' is defined (Emacs>=25.1).
|
||||
|
||||
2015-05-10 Przemysław Wojnowski <esperanto@cumego.com>
|
||||
|
||||
Add basic HTML5 tags and a template
|
||||
* lisp/textmodes/sgml-mode.el: Basic HTML5 support.
|
||||
(html-tag-alist): Add HTML5 tags.
|
||||
(html-tag-help): Add new tags descriptions.
|
||||
(html-navigational-links): Template for nav links.
|
||||
(html-html5-template): Template for a HTML5 page.
|
||||
|
||||
2015-05-10 Dmitry Gutov <dgutov@yandex.ru>
|
||||
|
||||
semantic/symref/grep: Don't use word boundaries
|
||||
* lisp/cedet/semantic/symref/grep.el
|
||||
(semantic-symref-perform-search): Instead of wrapping input in
|
||||
word boundaries, check that the characters before and after are
|
||||
not word constituents.
|
||||
|
||||
semantic/symref/grep: Support regexp search
|
||||
* lisp/cedet/semantic/symref.el
|
||||
(semantic-symref-hit-to-tag-via-buffer): Don't regexp-quote when
|
||||
the search type is regexp.
|
||||
* lisp/cedet/semantic/symref/grep.el
|
||||
(semantic-symref-perform-search): Support the regexp search type.
|
||||
Pass -E to Grep when it's used.
|
||||
|
||||
semantic-symref-regexp: Allow to input an arbitrary string
|
||||
* lisp/cedet/semantic/symref/list.el (semantic-symref-regexp):
|
||||
Allow to input an arbitrary string interactively.
|
||||
|
||||
Remove tag-symbol-match-p from etags-xref-find-definitions-tag-order
|
||||
* lisp/progmodes/etags.el (etags-xref-find-definitions-tag-order):
|
||||
Remove tag-symbol-match-p from the default value
|
||||
(http://lists.gnu.org/archive/html/emacs-devel/2015-05/msg00292.html).
|
||||
|
||||
Declare find-tag obsolete
|
||||
* lisp/progmodes/etags.el (find-tag): Declare obsolete in favor of
|
||||
xref-find-definitions.
|
||||
|
||||
2015-05-10 Jan D <jan.h.d@swipnet.se>
|
||||
|
||||
Draw composite string correctly (Bug#20537).
|
||||
* nsterm.m (ns_draw_composite_glyph_string_foreground): New function.
|
||||
(ns_draw_glyph_string): Call it (Bug#20537).
|
||||
|
||||
2015-05-09 Eli Zaretskii <eliz@gnu.org>
|
||||
|
||||
Avoid infloop in ERC
|
||||
|
|
11
Makefile.in
11
Makefile.in
|
@ -831,7 +831,7 @@ clean_dirs = $(mostlyclean_dirs) nextstep
|
|||
$(foreach dir,$(clean_dirs),$(eval $(call submake_template,$(dir),clean)))
|
||||
|
||||
clean: $(clean_dirs:=_clean)
|
||||
for dir in test/automated; do \
|
||||
for dir in test/automated admin/charsets; do \
|
||||
[ ! -d $$dir ] || $(MAKE) -C $$dir clean; \
|
||||
done
|
||||
-rm -f *.tmp etc/*.tmp*
|
||||
|
@ -856,8 +856,10 @@ distclean_dirs = $(clean_dirs) leim lisp
|
|||
|
||||
$(foreach dir,$(distclean_dirs),$(eval $(call submake_template,$(dir),distclean)))
|
||||
|
||||
maybeclean_dirs = test/automated admin/grammars admin/unidata admin/charsets
|
||||
|
||||
distclean: $(distclean_dirs:=_distclean)
|
||||
for dir in test/automated admin/grammars admin/unidata; do \
|
||||
for dir in ${maybeclean_dirs}; do \
|
||||
[ ! -d $$dir ] || $(MAKE) -C $$dir distclean; \
|
||||
done
|
||||
${top_distclean}
|
||||
|
@ -868,7 +870,7 @@ distclean: $(distclean_dirs:=_distclean)
|
|||
$(foreach dir,$(distclean_dirs),$(eval $(call submake_template,$(dir),bootstrap-clean)))
|
||||
|
||||
bootstrap-clean: $(distclean_dirs:=_bootstrap-clean)
|
||||
for dir in test/automated admin/grammars admin/unidata; do \
|
||||
for dir in ${maybeclean_dirs}; do \
|
||||
[ ! -d $$dir ] || $(MAKE) -C $$dir bootstrap-clean; \
|
||||
done
|
||||
[ ! -f config.log ] || mv -f config.log config.log~
|
||||
|
@ -896,7 +898,7 @@ maintainer_clean_dirs = src leim lisp
|
|||
$(foreach dir,$(maintainer_clean_dirs),$(eval $(call submake_template,$(dir),maintainer-clean)))
|
||||
|
||||
maintainer-clean: bootstrap-clean $(maintainer_clean_dirs:=_maintainer-clean)
|
||||
for dir in test/automated admin/grammars admin/unidata; do \
|
||||
for dir in ${maybeclean_dirs}; do \
|
||||
[ ! -d $$dir ] || $(MAKE) -C $$dir maintainer-clean; \
|
||||
done
|
||||
${top_maintainer_clean}
|
||||
|
@ -910,6 +912,7 @@ maintainer-clean: bootstrap-clean $(maintainer_clean_dirs:=_maintainer-clean)
|
|||
$(foreach dir,$(SUBDIR),$(eval $(call submake_template,$(dir),extraclean)))
|
||||
|
||||
## FIXME this is busted because most of these do not have extraclean rules.
|
||||
## Also it is missing things that do have such rules.
|
||||
extraclean: $(SUBDIR:=_extraclean)
|
||||
${top_maintainer_clean}
|
||||
-rm -f config-tmp-*
|
||||
|
|
|
@ -1,324 +0,0 @@
|
|||
# Makefile -- Makefile to generate charset maps in etc/charsets.
|
||||
# Copyright (C) 2003, 2004, 2005, 2006, 2007, 2008, 2009, 2010, 2011
|
||||
# National Institute of Advanced Industrial Science and Technology (AIST)
|
||||
# Registration Number H13PRO009
|
||||
#
|
||||
# This file is part of GNU Emacs.
|
||||
|
||||
# GNU Emacs is free software: you can redistribute it and/or modify
|
||||
# it under the terms of the GNU General Public License as published by
|
||||
# the Free Software Foundation, either version 3 of the License, or
|
||||
# (at your option) any later version.
|
||||
|
||||
# GNU Emacs is distributed in the hope that it will be useful,
|
||||
# but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||
# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
||||
# GNU General Public License for more details.
|
||||
|
||||
# You should have received a copy of the GNU General Public License
|
||||
# along with GNU Emacs. If not, see <http://www.gnu.org/licenses/>.
|
||||
|
||||
# Commentary:
|
||||
|
||||
# If your system doesn't have the directory /usr/share/i18n/charmaps,
|
||||
# get the source of the latest glibc, gzip all the charmap files in
|
||||
# the directory "localedate/charmaps", and set the variable
|
||||
# GLIBC_CHARMAPS to that directory.
|
||||
|
||||
GLIBC_CHARMAPS=/usr/share/i18n/charmaps
|
||||
|
||||
CHARSETS = ${ISO8859} ${IBM} ${CODEPAGE} ${CJK} ${MISC} ${MULE}
|
||||
|
||||
# Note: We can not prepend "ISO-" to these map files because of file
|
||||
# name limits on DOS.
|
||||
ISO8859 = \
|
||||
8859-2.map 8859-3.map 8859-4.map 8859-5.map 8859-6.map 8859-7.map \
|
||||
8859-8.map 8859-9.map 8859-10.map 8859-11.map 8859-13.map 8859-14.map \
|
||||
8859-15.map 8859-16.map
|
||||
|
||||
IBM = \
|
||||
IBM037.map IBM038.map \
|
||||
IBM256.map IBM273.map IBM274.map IBM275.map IBM277.map IBM278.map \
|
||||
IBM280.map IBM281.map IBM284.map IBM285.map IBM290.map IBM297.map \
|
||||
IBM420.map IBM423.map IBM424.map IBM437.map IBM500.map IBM850.map \
|
||||
IBM851.map IBM852.map IBM855.map IBM856.map IBM857.map IBM860.map \
|
||||
IBM861.map IBM862.map IBM863.map IBM864.map IBM865.map IBM866.map \
|
||||
IBM868.map IBM869.map IBM870.map IBM871.map IBM874.map IBM875.map \
|
||||
IBM880.map IBM891.map IBM903.map IBM904.map IBM905.map IBM918.map \
|
||||
IBM1004.map IBM1026.map IBM1047.map
|
||||
|
||||
CODEPAGE = \
|
||||
CP737.map CP775.map CP1125.map\
|
||||
CP1250.map CP1251.map CP1252.map CP1253.map CP1254.map \
|
||||
CP1255.map CP1256.map CP1257.map CP1258.map \
|
||||
CP10007.map \
|
||||
CP720.map CP858.map
|
||||
|
||||
CJK = GB2312.map GBK.map GB180302.map GB180304.map \
|
||||
BIG5.map BIG5-HKSCS.map\
|
||||
CNS-1.map CNS-2.map CNS-3.map CNS-4.map CNS-5.map CNS-6.map CNS-7.map \
|
||||
CNS-F.map \
|
||||
JISX0201.map JISX0208.map JISX0212.map JISX2131.map JISX2132.map \
|
||||
JISC6226.map CP932-2BYTE.map JISX213A.map\
|
||||
KSC5601.map KSC5636.map JOHAB.map
|
||||
|
||||
MISC = KOI-8.map KOI8-R.map KOI8-U.map KOI8-T.map ALTERNATIVNYJ.map \
|
||||
MIK.map PTCP154.map \
|
||||
TIS-620.map VISCII.map VSCII.map VSCII-2.map\
|
||||
KA-PS.map KA-ACADEMY.map \
|
||||
HP-ROMAN8.map NEXTSTEP.map MACINTOSH.map EBCDICUK.map EBCDICUS.map \
|
||||
stdenc.map symbol.map \
|
||||
CP949-2BYTE.map \
|
||||
BIG5-1.map BIG5-2.map
|
||||
|
||||
# Emacs-mule charsets.
|
||||
MULE = MULE-ethiopic.map MULE-ipa.map MULE-is13194.map \
|
||||
MULE-sisheng.map MULE-tibetan.map \
|
||||
MULE-lviscii.map MULE-uviscii.map
|
||||
|
||||
TRANS_TABLE = cp51932.el eucjp-ms.el
|
||||
SED_SCRIPT = jisx2131-filter
|
||||
|
||||
all: ${CHARSETS} ${TRANS_TABLE}
|
||||
|
||||
AWK = gawk
|
||||
|
||||
# Rules for each charset
|
||||
|
||||
VSCII.map: ${GLIBC_CHARMAPS}/TCVN5712-1.gz mapconv compact.awk
|
||||
# Generating $@...
|
||||
@./mapconv $< '/^<.*[ ]\/x[0-9a-f].[ ]/' GLIBC-1 compact.awk > $@
|
||||
|
||||
VSCII-2.map: ${GLIBC_CHARMAPS}/TCVN5712-1.gz mapconv compact.awk
|
||||
# Generating $@...
|
||||
@./mapconv $< '/^<.*[ ]\/x[2-7a-f].[ ]/' GLIBC-1 compact.awk \
|
||||
| sed 's/0x20-0x7F.*/0x00-0x7F 0x0000/' > $@
|
||||
|
||||
ALTERNATIVNYJ.map: IBM866.map
|
||||
# Generating $@...
|
||||
@echo "# Modified from IBM866.map according to the chart at" > $@
|
||||
@echo "# http://www.cyrillic.com/ref/cyrillic/koi-8alt.html," >> $@
|
||||
@echo "# with guesses for the Unicodes of the glyphs." >> $@
|
||||
@sed -e '1 d' \
|
||||
-e '/0xF2/ s/ .*/ 0x2019/' \
|
||||
-e '/0xF3/ s/ .*/ 0x2018/' \
|
||||
-e '/0xF4/ s/ .*/ 0x0301/' \
|
||||
-e '/0xF5/ s/ .*/ 0x0300/' \
|
||||
-e '/0xF6/ s/ .*/ 0x203A/' \
|
||||
-e '/0xF7/ s/ .*/ 0x2039/' \
|
||||
-e '/0xF8/ s/ .*/ 0x2191/' \
|
||||
-e '/0xF9/ s/ .*/ 0x2193/' \
|
||||
-e '/0xFA/ s/ .*/ 0x00B1/' \
|
||||
-e '/0xFB/ s/ .*/ 0x00F7/' < $< >> $@
|
||||
|
||||
MIK.map: mapfiles/bulgarian-mik.txt mapconv compact.awk
|
||||
# Generating $@...
|
||||
@./mapconv $< '1,$$' CZYBORRA compact.awk > $@
|
||||
|
||||
PTCP154.map: mapfiles/PTCP154 mapconv compact.awk
|
||||
# Generating $@...
|
||||
@./mapconv $< '/^0x/' IANA compact.awk > $@
|
||||
|
||||
stdenc.map: mapfiles/stdenc.txt mapconv compact.awk
|
||||
# Generating $@...
|
||||
@./mapconv $< '/^[0-9A-Fa-f]/' UNICODE compact.awk > $@
|
||||
|
||||
symbol.map: mapfiles/symbol.txt mapconv compact.awk
|
||||
# Generating $@...
|
||||
@./mapconv $< '/^[0-9A-Fa-f]/' UNICODE compact.awk > $@
|
||||
|
||||
CP720.map: mapfiles/CP720.map
|
||||
# Generating $@...
|
||||
@cp $< $@
|
||||
|
||||
CP858.map: mapfiles/CP858.map
|
||||
# Generating $@...
|
||||
@cp $< $@
|
||||
|
||||
CP949-2BYTE.map: ${GLIBC_CHARMAPS}/CP949.gz mapconv compact.awk
|
||||
# Generating $@...
|
||||
@./mapconv $< '/^<.*[ ]\/x[89a-f]/' GLIBC-2 compact.awk > $@
|
||||
|
||||
GB2312.map: ${GLIBC_CHARMAPS}/GB2312.gz mapconv compact.awk
|
||||
# Generating $@...
|
||||
@./mapconv $< '/^<.*[ ]\/x[a-f]/' GLIBC-2-7 compact.awk > $@
|
||||
|
||||
GBK.map: ${GLIBC_CHARMAPS}/GBK.gz mapconv compact.awk
|
||||
# Generating $@...
|
||||
@./mapconv $< '/^<.*[ ]\/x[89a-f]/' GLIBC-2 compact.awk > $@
|
||||
|
||||
GB180302.map: ${GLIBC_CHARMAPS}/GB18030.gz mapconv gb180302.awk
|
||||
# Generating $@...
|
||||
@./mapconv $< '/^<.*[ ]\/x..\/x..[ ]/' GLIBC-2 gb180302.awk > $@
|
||||
|
||||
GB180304.map: GB180302.map gb180304.awk
|
||||
# Generating $@...
|
||||
@$(AWK) -f gb180304.awk < $< > $@
|
||||
|
||||
JISX0201.map: ${GLIBC_CHARMAPS}/JIS_X0201.gz mapconv compact.awk
|
||||
# Generating $@...
|
||||
@./mapconv $< '/^<.*[ ]\/x[0-9]/' GLIBC-1 compact.awk > $@
|
||||
@echo "# Generated by hand" >> $@
|
||||
@echo "0xA1-0xDF 0xFF61" >> $@
|
||||
|
||||
JISX0208.map: ${GLIBC_CHARMAPS}/EUC-JP.gz mapconv
|
||||
# Generating $@...
|
||||
@./mapconv $< '/^<.*[ ]\/x[a-f]/' GLIBC-2-7 \
|
||||
| sed 's/0x2015/0x2014/' > $@
|
||||
|
||||
JISX0212.map: ${GLIBC_CHARMAPS}/EUC-JP.gz mapconv compact.awk
|
||||
# Generating $@...
|
||||
@./mapconv $< '/^<.*[ ]\/x8f/ s,/x8f,,' GLIBC-2-7 compact.awk > $@
|
||||
|
||||
jisx2131-filter: mapfiles/JISX213A.map
|
||||
@sed -n -e '/^#/d' -e 's,.*0x\([0-9A-Z]*\)$$,/0x0*\1$$/d,p' < $< > $@
|
||||
|
||||
JISX2131.map: ${GLIBC_CHARMAPS}/EUC-JISX0213.gz mapconv jisx2131-filter
|
||||
# Generating $@...
|
||||
@./mapconv $< '/^<.*[ ]\/x[a-f]/' GLIBC-2-7 \
|
||||
| sed -f jisx2131-filter \
|
||||
| sed -e 's/0x2015/0x2014/' -e 's/0x2299/0x29BF/' > $@
|
||||
|
||||
JISX2132.map: ${GLIBC_CHARMAPS}/EUC-JISX0213.gz mapconv
|
||||
# Generating $@...
|
||||
@./mapconv $< '/^<.*[ ]\/x8f/ s,/x8f,,' GLIBC-2-7 > $@
|
||||
|
||||
JISX213A.map: mapfiles/JISX213A.map
|
||||
# Generating $@
|
||||
@cp $< $@
|
||||
|
||||
CP932-2BYTE.map: mapfiles/CP932.TXT mapconv cp932.awk
|
||||
# Generating $@...
|
||||
@./mapconv $< '/^0x[89A-F][0-9A-F][0-9A-F]/' UNICODE2 cp932.awk > $@
|
||||
|
||||
cp51932.el: CP932-2BYTE.map cp51932.awk
|
||||
@$(AWK) -f cp51932.awk < CP932-2BYTE.map > $@
|
||||
|
||||
eucjp-ms.el: ${GLIBC_CHARMAPS}/EUC-JP-MS.gz eucjp-ms.awk
|
||||
@zcat $< | $(AWK) -f eucjp-ms.awk > $@
|
||||
|
||||
JISC6226.map: mapfiles/Uni2JIS mapconv kuten.awk
|
||||
# Generating $@...
|
||||
# As Uni2JIS doesn't contain mappings of characters added to Unicode
|
||||
# recently, we add them manually here (including one correction for
|
||||
# U+005C vs U+FF3C). These changes are based on bogytech's blog at
|
||||
# http://bogytech.blogspot.jp/search/label/emacs.
|
||||
@./mapconv $< '/^[^#].*0-/' YASUOKA kuten.awk \
|
||||
| sed -e '/0x2140/s/005C/FF3C/' \
|
||||
-e '$$ a 0x3442 0x3D4E' \
|
||||
-e '$$ a 0x374E 0x25874' \
|
||||
-e '$$ a 0x3764 0x28EF6' \
|
||||
-e '$$ a 0x513D 0x2F80F' \
|
||||
-e '$$ a 0x7045 0x9724' > $@
|
||||
|
||||
KSC5601.map: ${GLIBC_CHARMAPS}/EUC-KR.gz mapconv compact.awk
|
||||
# Generating $@...
|
||||
@./mapconv $< '/^<.*[ ]\/x[a-f]/' GLIBC-2-7 compact.awk > $@
|
||||
|
||||
BIG5.map: ${GLIBC_CHARMAPS}/BIG5.gz mapconv compact.awk
|
||||
# Generating $@...
|
||||
@./mapconv $< '/^<.*[ ]\/x[a-f]/' GLIBC-2 > $@
|
||||
|
||||
BIG5-1.map: BIG5.map mapconv big5.awk
|
||||
# Generating $@...
|
||||
@echo "# Generated from $<" > $@
|
||||
@sed -n -e '/0xa140/,/0xc8fe/p' < $< | gawk -f big5.awk >> $@
|
||||
|
||||
BIG5-2.map: BIG5.map mapconv big5.awk
|
||||
# Generating $@...
|
||||
@echo "# Generated from $<" > $@
|
||||
@sed -n -e '/0xc940/,$$ p' < $< | gawk -f big5.awk >> $@
|
||||
|
||||
BIG5-HKSCS.map: ${GLIBC_CHARMAPS}/BIG5-HKSCS.gz mapconv compact.awk
|
||||
# Generating $@...
|
||||
@./mapconv $< '/^<.*[ ]\/x[89a-f].\//' GLIBC-2 compact.awk > $@
|
||||
|
||||
JOHAB.map: ${GLIBC_CHARMAPS}/JOHAB.gz mapconv compact.awk
|
||||
# Generating $@...
|
||||
@./mapconv $< '/^<.*[ ]\/x[89a-f]/' GLIBC-2 compact.awk > $@
|
||||
|
||||
CNS-1.map: ${GLIBC_CHARMAPS}/EUC-TW.gz mapconv compact.awk
|
||||
# Generating $@...
|
||||
@./mapconv $< '/^<.*[ ]\/x[a-f]/' GLIBC-2-7 compact.awk > $@
|
||||
|
||||
# CNS-1.map: mapfiles/cns2ucsdkw.txt mapconv compact.awk
|
||||
# # Generating $@...
|
||||
# @./mapconv $< '/^C1/' KANJI-DATABASE compact.awk > $@
|
||||
|
||||
CNS-2.map: mapfiles/cns2ucsdkw.txt mapconv compact.awk
|
||||
# Generating $@...
|
||||
@./mapconv $< '/^C2/' KANJI-DATABASE compact.awk > $@
|
||||
|
||||
CNS-3.map: mapfiles/cns2ucsdkw.txt mapconv compact.awk
|
||||
# Generating $@...
|
||||
@./mapconv $< '/^C3/' KANJI-DATABASE compact.awk > $@
|
||||
|
||||
CNS-4.map: mapfiles/cns2ucsdkw.txt mapconv compact.awk
|
||||
# Generating $@...
|
||||
@./mapconv $< '/^C4/' KANJI-DATABASE compact.awk > $@
|
||||
|
||||
CNS-5.map: mapfiles/cns2ucsdkw.txt mapconv compact.awk
|
||||
# Generating $@...
|
||||
@./mapconv $< '/^C5/' KANJI-DATABASE compact.awk > $@
|
||||
|
||||
CNS-6.map: mapfiles/cns2ucsdkw.txt mapconv compact.awk
|
||||
# Generating $@...
|
||||
@./mapconv $< '/^C6/' KANJI-DATABASE compact.awk > $@
|
||||
|
||||
CNS-7.map: mapfiles/cns2ucsdkw.txt mapconv compact.awk
|
||||
# Generating $@...
|
||||
@./mapconv $< '/^C7/' KANJI-DATABASE compact.awk > $@
|
||||
|
||||
CNS-F.map: ${GLIBC_CHARMAPS}/EUC-TW.gz mapconv compact.awk
|
||||
# Generating $@...
|
||||
@./mapconv $< '/^<.*\/x8e\/xaf/ s,/x8e/xaf,,' GLIBC-2-7 compact.awk > $@
|
||||
|
||||
# General target to produce map files for mule charsets.
|
||||
MULE-%.map: mapfiles/MULE-%.map
|
||||
# Generating $@...
|
||||
@cp $< $@
|
||||
|
||||
# General target to produce map files for ISO-8859, GEORGIAN, and
|
||||
# EBCDIC charsets. We can not use the original file name because of
|
||||
# file name limit on DOS. "KA" is ISO 639 language code for Georgian.
|
||||
|
||||
8859-%.map: ${GLIBC_CHARMAPS}/ISO-8859-%.gz mapconv compact.awk
|
||||
# Generating $@...
|
||||
@./mapconv $< '/^<.*[ ]\/x/' GLIBC-1 compact.awk > $@
|
||||
|
||||
KA-%.map: ${GLIBC_CHARMAPS}/GEORGIAN-%.gz mapconv compact.awk
|
||||
# Generating $@...
|
||||
@./mapconv $< '/^<.*[ ]\/x/' GLIBC-1 compact.awk > $@
|
||||
|
||||
EBCDIC%.map: ${GLIBC_CHARMAPS}/EBCDIC-%.gz mapconv compact.awk
|
||||
# Generating $@...
|
||||
@./mapconv $< '/^<.*[ ]\/x/' GLIBC-1 compact.awk > $@
|
||||
|
||||
# General target to produce map files for single-byte charsets.
|
||||
|
||||
%.map: ${GLIBC_CHARMAPS}/%.gz mapconv compact.awk
|
||||
# Generating $@...
|
||||
@./mapconv $< '/^<.*[ ]\/x/' GLIBC-1 compact.awk > $@
|
||||
|
||||
install:
|
||||
@for f in ${CHARSETS}; do \
|
||||
if test -r $$f; then \
|
||||
if ! cmp -s $$f ../../etc/charsets/$$f; then \
|
||||
echo updating $$f; \
|
||||
cp $$f ../../etc/charsets; \
|
||||
fi; \
|
||||
fi; \
|
||||
done
|
||||
@for f in ${TRANS_TABLE}; do \
|
||||
if test -r $$f; then \
|
||||
if ! cmp -s $$f ../../lisp/international/$$f; then \
|
||||
echo updating $$f; \
|
||||
cp $$f ../../lisp/international; \
|
||||
fi; \
|
||||
fi; \
|
||||
done
|
||||
|
||||
# Clear files that are automatically generated.
|
||||
clean:
|
||||
rm -f ${CHARSETS} ${TRANS_TABLE} ${SED_SCRIPT}
|
||||
|
335
admin/charsets/Makefile.in
Normal file
335
admin/charsets/Makefile.in
Normal file
|
@ -0,0 +1,335 @@
|
|||
### @configure_input@
|
||||
|
||||
# Copyright (C) 2015 Free Software Foundation, Inc.
|
||||
|
||||
# Copyright (C) 2003, 2004, 2005, 2006, 2007, 2008, 2009, 2010, 2011
|
||||
# National Institute of Advanced Industrial Science and Technology (AIST)
|
||||
# Registration Number H13PRO009
|
||||
#
|
||||
# This file is part of GNU Emacs.
|
||||
|
||||
# GNU Emacs is free software: you can redistribute it and/or modify
|
||||
# it under the terms of the GNU General Public License as published by
|
||||
# the Free Software Foundation, either version 3 of the License, or
|
||||
# (at your option) any later version.
|
||||
|
||||
# GNU Emacs is distributed in the hope that it will be useful,
|
||||
# but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||
# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
||||
# GNU General Public License for more details.
|
||||
|
||||
# You should have received a copy of the GNU General Public License
|
||||
# along with GNU Emacs. If not, see <http://www.gnu.org/licenses/>.
|
||||
|
||||
### Commentary:
|
||||
|
||||
# Generate charset maps in etc/charsets.
|
||||
|
||||
# If your system doesn't have the directory /usr/share/i18n/charmaps,
|
||||
# get the source of the latest glibc, gzip all the charmap files in
|
||||
# the directory "localedate/charmaps", and set the variable
|
||||
# GLIBC_CHARMAPS to that directory.
|
||||
|
||||
SHELL = @SHELL@
|
||||
|
||||
AWK = @AWK@
|
||||
|
||||
srcdir = @srcdir@
|
||||
top_srcdir = @top_srcdir@
|
||||
|
||||
charsetdir = ${top_srcdir}/etc/charsets
|
||||
lispintdir = ${top_srcdir}/lisp/international
|
||||
mapfiledir = ${srcdir}/mapfiles
|
||||
|
||||
GLIBC_CHARMAPS=/usr/share/i18n/charmaps
|
||||
|
||||
AM_DEFAULT_VERBOSITY = @AM_DEFAULT_VERBOSITY@
|
||||
AM_V_GEN = $(am__v_GEN_@AM_V@)
|
||||
am__v_GEN_ = $(am__v_GEN_@AM_DEFAULT_V@)
|
||||
am__v_GEN_0 = @echo " GEN " $@;
|
||||
am__v_GEN_1 =
|
||||
|
||||
AM_V_at = $(am__v_at_@AM_V@)
|
||||
am__v_at_ = $(am__v_at_@AM_DEFAULT_V@)
|
||||
am__v_at_0 = @
|
||||
am__v_at_1 =
|
||||
|
||||
# Note: We can not prepend "ISO-" to these map files because of file
|
||||
# name limits on DOS.
|
||||
ISO8859 = \
|
||||
8859-2.map 8859-3.map 8859-4.map 8859-5.map 8859-6.map 8859-7.map \
|
||||
8859-8.map 8859-9.map 8859-10.map 8859-11.map 8859-13.map 8859-14.map \
|
||||
8859-15.map 8859-16.map
|
||||
|
||||
IBM = \
|
||||
IBM037.map IBM038.map \
|
||||
IBM256.map IBM273.map IBM274.map IBM275.map IBM277.map IBM278.map \
|
||||
IBM280.map IBM281.map IBM284.map IBM285.map IBM290.map IBM297.map \
|
||||
IBM420.map IBM423.map IBM424.map IBM437.map IBM500.map IBM850.map \
|
||||
IBM851.map IBM852.map IBM855.map IBM856.map IBM857.map IBM860.map \
|
||||
IBM861.map IBM862.map IBM863.map IBM864.map IBM865.map IBM866.map \
|
||||
IBM868.map IBM869.map IBM870.map IBM871.map IBM874.map IBM875.map \
|
||||
IBM880.map IBM891.map IBM903.map IBM904.map IBM905.map IBM918.map \
|
||||
IBM1004.map IBM1026.map IBM1047.map
|
||||
|
||||
CODEPAGE = \
|
||||
CP737.map CP775.map CP1125.map\
|
||||
CP1250.map CP1251.map CP1252.map CP1253.map CP1254.map \
|
||||
CP1255.map CP1256.map CP1257.map CP1258.map \
|
||||
CP10007.map \
|
||||
CP720.map CP858.map
|
||||
|
||||
CJK = GB2312.map GBK.map GB180302.map GB180304.map \
|
||||
BIG5.map BIG5-HKSCS.map\
|
||||
CNS-1.map CNS-2.map CNS-3.map CNS-4.map CNS-5.map CNS-6.map CNS-7.map \
|
||||
CNS-F.map \
|
||||
JISX0201.map JISX0208.map JISX0212.map JISX2131.map JISX2132.map \
|
||||
JISC6226.map CP932-2BYTE.map JISX213A.map\
|
||||
KSC5601.map KSC5636.map JOHAB.map
|
||||
|
||||
MISC = KOI-8.map KOI8-R.map KOI8-U.map KOI8-T.map ALTERNATIVNYJ.map \
|
||||
MIK.map PTCP154.map \
|
||||
TIS-620.map VISCII.map VSCII.map VSCII-2.map\
|
||||
KA-PS.map KA-ACADEMY.map \
|
||||
HP-ROMAN8.map NEXTSTEP.map MACINTOSH.map EBCDICUK.map EBCDICUS.map \
|
||||
stdenc.map symbol.map \
|
||||
CP949-2BYTE.map \
|
||||
BIG5-1.map BIG5-2.map
|
||||
|
||||
# Emacs-mule charsets.
|
||||
MULE = MULE-ethiopic.map MULE-ipa.map MULE-is13194.map \
|
||||
MULE-sisheng.map MULE-tibetan.map \
|
||||
MULE-lviscii.map MULE-uviscii.map
|
||||
|
||||
SED_SCRIPT = jisx2131-filter
|
||||
|
||||
TRANS_TABLE = cp51932.el eucjp-ms.el
|
||||
TRANS_TABLE := $(addprefix ${lispintdir}/,${TRANS_TABLE})
|
||||
|
||||
CHARSETS = ${ISO8859} ${IBM} ${CODEPAGE} ${CJK} ${MISC} ${MULE}
|
||||
CHARSETS := $(addprefix ${charsetdir}/,${CHARSETS})
|
||||
|
||||
## Those charsets whose source is not in GLIBC_CHARMAPS.
|
||||
LOCAL = MIK.map PTCP154.map stdenc.map symbol.map CP720.map CP858.map \
|
||||
JISX213A.map CP932-2BYTE.map JISC6226.map \
|
||||
CNS-2.map CNS-3.map CNS-4.map CNS-5.map CNS-6.map CNS-7.map \
|
||||
${MULE}
|
||||
LOCAL := $(addprefix ${charsetdir}/,${LOCAL})
|
||||
|
||||
|
||||
.PHONY: all local
|
||||
|
||||
all: ${CHARSETS} ${TRANS_TABLE}
|
||||
local: ${LOCAL} ${lispintdir}/cp51932.el
|
||||
|
||||
## Rules for each charset.
|
||||
|
||||
mapconv = ${srcdir}/mapconv
|
||||
run_mapconv = AWK=${AWK} ${srcdir}/mapconv
|
||||
big5 = ${srcdir}/big5.awk
|
||||
compact = ${srcdir}/compact.awk
|
||||
cp51932 = ${srcdir}/cp51932.awk
|
||||
cp932 = ${srcdir}/cp932.awk
|
||||
eucjp_ms = ${srcdir}/eucjp-ms.awk
|
||||
gb180302 = ${srcdir}/gb180302.awk
|
||||
gb180304 = ${srcdir}/gb180304.awk
|
||||
kuten = ${srcdir}/kuten.awk
|
||||
|
||||
## Short aliases, eg VSCII.map = ${charsetdir}/VSCII.map
|
||||
define map_template
|
||||
.PHONY: $(notdir ${1})
|
||||
$(notdir ${1}): ${1}
|
||||
endef
|
||||
|
||||
$(foreach mfile,${CHARSETS} ${TRANS_TABLE},$(eval $(call map_template,$(mfile))))
|
||||
|
||||
${charsetdir}/VSCII.map: ${GLIBC_CHARMAPS}/TCVN5712-1.gz ${mapconv} ${compact}
|
||||
${AM_V_GEN}${run_mapconv} $< '/^<.*[ ]\/x[0-9a-f].[ ]/' GLIBC-1 ${compact} > $@
|
||||
|
||||
${charsetdir}/VSCII-2.map: ${GLIBC_CHARMAPS}/TCVN5712-1.gz ${mapconv} ${compact}
|
||||
${AM_V_GEN}${run_mapconv} $< '/^<.*[ ]\/x[2-7a-f].[ ]/' GLIBC-1 ${compact} \
|
||||
| sed 's/0x20-0x7F.*/0x00-0x7F 0x0000/' > $@
|
||||
|
||||
${charsetdir}/ALTERNATIVNYJ.map: ${charsetdir}/IBM866.map
|
||||
${AM_V_GEN}(echo "# Modified from $(notdir $<) according to the chart at" && \
|
||||
echo "# http://www.cyrillic.com/ref/cyrillic/koi-8alt.html," && \
|
||||
echo "# with guesses for the Unicodes of the glyphs." && \
|
||||
sed -e '1 d' \
|
||||
-e '/0xF2/ s/ .*/ 0x2019/' \
|
||||
-e '/0xF3/ s/ .*/ 0x2018/' \
|
||||
-e '/0xF4/ s/ .*/ 0x0301/' \
|
||||
-e '/0xF5/ s/ .*/ 0x0300/' \
|
||||
-e '/0xF6/ s/ .*/ 0x203A/' \
|
||||
-e '/0xF7/ s/ .*/ 0x2039/' \
|
||||
-e '/0xF8/ s/ .*/ 0x2191/' \
|
||||
-e '/0xF9/ s/ .*/ 0x2193/' \
|
||||
-e '/0xFA/ s/ .*/ 0x00B1/' \
|
||||
-e '/0xFB/ s/ .*/ 0x00F7/' < $< ) > $@
|
||||
|
||||
${charsetdir}/MIK.map: ${mapfiledir}/bulgarian-mik.txt ${mapconv} ${compact}
|
||||
${AM_V_GEN}${run_mapconv} $< '1,$$' CZYBORRA ${compact} > $@
|
||||
|
||||
${charsetdir}/PTCP154.map: ${mapfiledir}/PTCP154 ${mapconv} ${compact}
|
||||
${AM_V_GEN}${run_mapconv} $< '/^0x/' IANA ${compact} > $@
|
||||
|
||||
${charsetdir}/stdenc.map: ${mapfiledir}/stdenc.txt ${mapconv} ${compact}
|
||||
${AM_V_GEN}${run_mapconv} $< '/^[0-9A-Fa-f]/' UNICODE ${compact} > $@
|
||||
|
||||
${charsetdir}/symbol.map: ${mapfiledir}/symbol.txt ${mapconv} ${compact}
|
||||
${AM_V_GEN}${run_mapconv} $< '/^[0-9A-Fa-f]/' UNICODE ${compact} > $@
|
||||
|
||||
${charsetdir}/CP720.map: ${mapfiledir}/CP720.map
|
||||
${AM_V_GEN}cp $< $@
|
||||
|
||||
${charsetdir}/CP858.map: ${mapfiledir}/CP858.map
|
||||
${AM_V_GEN}cp $< $@
|
||||
|
||||
${charsetdir}/CP949-2BYTE.map: ${GLIBC_CHARMAPS}/CP949.gz ${mapconv} ${compact}
|
||||
${AM_V_GEN}${run_mapconv} $< '/^<.*[ ]\/x[89a-f]/' GLIBC-2 ${compact} > $@
|
||||
|
||||
${charsetdir}/GB2312.map: ${GLIBC_CHARMAPS}/GB2312.gz ${mapconv} ${compact}
|
||||
${AM_V_GEN}${run_mapconv} $< '/^<.*[ ]\/x[a-f]/' GLIBC-2-7 ${compact} > $@
|
||||
|
||||
${charsetdir}/GBK.map: ${GLIBC_CHARMAPS}/GBK.gz ${mapconv} ${compact}
|
||||
${AM_V_GEN}${run_mapconv} $< '/^<.*[ ]\/x[89a-f]/' GLIBC-2 ${compact} > $@
|
||||
|
||||
${charsetdir}/GB180302.map: ${GLIBC_CHARMAPS}/GB18030.gz ${mapconv} ${gb180302}
|
||||
${AM_V_GEN}${run_mapconv} $< '/^<.*[ ]\/x..\/x..[ ]/' GLIBC-2 ${gb180302} > $@
|
||||
|
||||
${charsetdir}/GB180304.map: ${charsetdir}/GB180302.map ${gb180304}
|
||||
${AM_V_GEN}$(AWK) -f ${gb180304} < $< > $@
|
||||
|
||||
${charsetdir}/JISX0201.map: ${GLIBC_CHARMAPS}/JIS_X0201.gz ${mapconv} ${compact}
|
||||
${AM_V_GEN}(${mapconv} $< '/^<.*[ ]\/x[0-9]/' GLIBC-1 ${compact} && \
|
||||
echo "# Generated by hand" && \
|
||||
echo "0xA1-0xDF 0xFF61" ) > $@
|
||||
|
||||
${charsetdir}/JISX0208.map: ${GLIBC_CHARMAPS}/EUC-JP.gz ${mapconv}
|
||||
${AM_V_GEN}${run_mapconv} $< '/^<.*[ ]\/x[a-f]/' GLIBC-2-7 \
|
||||
| sed 's/0x2015/0x2014/' > $@
|
||||
|
||||
${charsetdir}/JISX0212.map: ${GLIBC_CHARMAPS}/EUC-JP.gz ${mapconv} ${compact}
|
||||
${AM_V_GEN}${run_mapconv} $< '/^<.*[ ]\/x8f/ s,/x8f,,' GLIBC-2-7 ${compact} > $@
|
||||
|
||||
jisx2131-filter: ${mapfiledir}/JISX213A.map
|
||||
${AM_V_at}sed -n -e '/^#/d' -e 's,.*0x\([0-9A-Z]*\)$$,/0x0*\1$$/d,p' < $< > $@
|
||||
|
||||
${charsetdir}/JISX2131.map: ${GLIBC_CHARMAPS}/EUC-JISX0213.gz ${mapconv} jisx2131-filter
|
||||
${AM_V_GEN}${run_mapconv} $< '/^<.*[ ]\/x[a-f]/' GLIBC-2-7 \
|
||||
| sed -f jisx2131-filter \
|
||||
| sed -e 's/0x2015/0x2014/' -e 's/0x2299/0x29BF/' > $@
|
||||
|
||||
${charsetdir}/JISX2132.map: ${GLIBC_CHARMAPS}/EUC-JISX0213.gz ${mapconv}
|
||||
${AM_V_GEN}${run_mapconv} $< '/^<.*[ ]\/x8f/ s,/x8f,,' GLIBC-2-7 > $@
|
||||
|
||||
${charsetdir}/JISX213A.map: ${mapfiledir}/JISX213A.map
|
||||
${AM_V_GEN}cp $< $@
|
||||
|
||||
${charsetdir}/CP932-2BYTE.map: ${mapfiledir}/CP932.TXT ${mapconv} ${cp932}
|
||||
${AM_V_GEN}${run_mapconv} $< '/^0x[89A-F][0-9A-F][0-9A-F]/' UNICODE2 ${cp932} > $@
|
||||
|
||||
${lispintdir}/cp51932.el: ${charsetdir}/CP932-2BYTE.map ${cp51932}
|
||||
${AM_V_GEN}$(AWK) -f ${cp51932} < $< > $@
|
||||
|
||||
${lispintdir}/eucjp-ms.el: ${GLIBC_CHARMAPS}/EUC-JP-MS.gz ${eucjp_ms}
|
||||
${AM_V_GEN}gunzip -c $< | $(AWK) -f ${eucjp_ms} > $@
|
||||
|
||||
# As Uni2JIS doesn't contain mappings of characters added to Unicode
|
||||
# recently, we add them manually here (including one correction for
|
||||
# U+005C vs U+FF3C). These changes are based on bogytech's blog at
|
||||
# http://bogytech.blogspot.jp/search/label/emacs.
|
||||
${charsetdir}/JISC6226.map: ${mapfiledir}/Uni2JIS ${mapconv} ${kuten}
|
||||
${AM_V_GEN}(${run_mapconv} $< '/^[^#].*0-/' YASUOKA ${kuten} \
|
||||
| sed -e '/0x2140/s/005C/FF3C/' && \
|
||||
echo '0x3442 0x3D4E' && echo '0x374E 0x25874' && \
|
||||
echo '0x3764 0x28EF6' && echo '0x513D 0x2F80F' && \
|
||||
echo '0x7045 0x9724' ) > $@
|
||||
|
||||
${charsetdir}/KSC5601.map: ${GLIBC_CHARMAPS}/EUC-KR.gz ${mapconv} ${compact}
|
||||
${AM_V_GEN}${run_mapconv} $< '/^<.*[ ]\/x[a-f]/' GLIBC-2-7 ${compact} > $@
|
||||
|
||||
${charsetdir}/BIG5.map: ${GLIBC_CHARMAPS}/BIG5.gz ${mapconv} ${compact}
|
||||
${AM_V_GEN}${run_mapconv} $< '/^<.*[ ]\/x[a-f]/' GLIBC-2 > $@
|
||||
|
||||
${charsetdir}/BIG5-1.map: ${charsetdir}/BIG5.map ${mapconv} ${big5}
|
||||
${AM_V_GEN}(echo "# Generated from $(notdir $<)" && \
|
||||
sed -n -e '/0xa140/,/0xc8fe/p' < $< | $(AWK) -f ${big5} ) > $@
|
||||
|
||||
${charsetdir}/BIG5-2.map: ${charsetdir}/BIG5.map ${mapconv} ${big5}
|
||||
${AM_V_GEN}(echo "# Generated from $(notdir $<)" && \
|
||||
sed -n -e '/0xc940/,$$ p' < $< | $(AWK) -f ${big5} ) > $@
|
||||
|
||||
${charsetdir}/BIG5-HKSCS.map: ${GLIBC_CHARMAPS}/BIG5-HKSCS.gz ${mapconv} ${compact}
|
||||
${AM_V_GEN}${run_mapconv} $< '/^<.*[ ]\/x[89a-f].\//' GLIBC-2 ${compact} > $@
|
||||
|
||||
${charsetdir}/JOHAB.map: ${GLIBC_CHARMAPS}/JOHAB.gz ${mapconv} ${compact}
|
||||
${AM_V_GEN}${run_mapconv} $< '/^<.*[ ]\/x[89a-f]/' GLIBC-2 ${compact} > $@
|
||||
|
||||
${charsetdir}/CNS-1.map: ${GLIBC_CHARMAPS}/EUC-TW.gz ${mapconv} ${compact}
|
||||
${AM_V_GEN}${run_mapconv} $< '/^<.*[ ]\/x[a-f]/' GLIBC-2-7 ${compact} > $@
|
||||
|
||||
# ${charsetdir}/CNS-1.map: ${mapfiledir}/cns2ucsdkw.txt ${mapconv} ${compact}
|
||||
# ${AM_V_GEN}${run_mapconv} $< '/^C1/' KANJI-DATABASE ${compact} > $@
|
||||
|
||||
${charsetdir}/CNS-2.map: ${mapfiledir}/cns2ucsdkw.txt ${mapconv} ${compact}
|
||||
${AM_V_GEN}${run_mapconv} $< '/^C2/' KANJI-DATABASE ${compact} > $@
|
||||
|
||||
${charsetdir}/CNS-3.map: ${mapfiledir}/cns2ucsdkw.txt ${mapconv} ${compact}
|
||||
${AM_V_GEN}${run_mapconv} $< '/^C3/' KANJI-DATABASE ${compact} > $@
|
||||
|
||||
${charsetdir}/CNS-4.map: ${mapfiledir}/cns2ucsdkw.txt ${mapconv} ${compact}
|
||||
${AM_V_GEN}${run_mapconv} $< '/^C4/' KANJI-DATABASE ${compact} > $@
|
||||
|
||||
${charsetdir}/CNS-5.map: ${mapfiledir}/cns2ucsdkw.txt ${mapconv} ${compact}
|
||||
${AM_V_GEN}${run_mapconv} $< '/^C5/' KANJI-DATABASE ${compact} > $@
|
||||
|
||||
${charsetdir}/CNS-6.map: ${mapfiledir}/cns2ucsdkw.txt ${mapconv} ${compact}
|
||||
${AM_V_GEN}${run_mapconv} $< '/^C6/' KANJI-DATABASE ${compact} > $@
|
||||
|
||||
${charsetdir}/CNS-7.map: ${mapfiledir}/cns2ucsdkw.txt ${mapconv} ${compact}
|
||||
${AM_V_GEN}${run_mapconv} $< '/^C7/' KANJI-DATABASE ${compact} > $@
|
||||
|
||||
${charsetdir}/CNS-F.map: ${GLIBC_CHARMAPS}/EUC-TW.gz ${mapconv} ${compact}
|
||||
${AM_V_GEN}${run_mapconv} $< '/^<.*\/x8e\/xaf/ s,/x8e/xaf,,' GLIBC-2-7 ${compact} > $@
|
||||
|
||||
# General target to produce map files for mule charsets.
|
||||
${charsetdir}/MULE-%.map: ${mapfiledir}/MULE-%.map
|
||||
${AM_V_GEN}cp $< $@
|
||||
|
||||
# General target to produce map files for ISO-8859, GEORGIAN, and
|
||||
# EBCDIC charsets. We can not use the original file name because of
|
||||
# file name limit on DOS. "KA" is ISO 639 language code for Georgian.
|
||||
|
||||
${charsetdir}/8859-%.map: ${GLIBC_CHARMAPS}/ISO-8859-%.gz ${mapconv} ${compact}
|
||||
${AM_V_GEN}${run_mapconv} $< '/^<.*[ ]\/x/' GLIBC-1 ${compact} > $@
|
||||
|
||||
${charsetdir}/KA-%.map: ${GLIBC_CHARMAPS}/GEORGIAN-%.gz ${mapconv} ${compact}
|
||||
${AM_V_GEN}${run_mapconv} $< '/^<.*[ ]\/x/' GLIBC-1 ${compact} > $@
|
||||
|
||||
${charsetdir}/EBCDIC%.map: ${GLIBC_CHARMAPS}/EBCDIC-%.gz ${mapconv} ${compact}
|
||||
${AM_V_GEN}${run_mapconv} $< '/^<.*[ ]\/x/' GLIBC-1 ${compact} > $@
|
||||
|
||||
# General target to produce map files for single-byte charsets.
|
||||
|
||||
${charsetdir}/%.map: ${GLIBC_CHARMAPS}/%.gz ${mapconv} ${compact}
|
||||
${AM_V_GEN}${run_mapconv} $< '/^<.*[ ]\/x/' GLIBC-1 ${compact} > $@
|
||||
|
||||
|
||||
.PHONY: clean bootstrap-clean distclean maintainer-clean extraclean totalclean
|
||||
|
||||
clean:
|
||||
rm -f ${SED_SCRIPT}
|
||||
|
||||
bootstrap-clean: clean
|
||||
|
||||
distclean: clean
|
||||
rm -f Makefile
|
||||
|
||||
maintainer-clean: distclean
|
||||
|
||||
## Do not remove these files, even in a bootstrap. They rarely change.
|
||||
extraclean:
|
||||
rm -f ${LOCAL} ${TRANS_TABLE}
|
||||
|
||||
totalclean: extraclean
|
||||
rm -f ${CHARSETS}
|
|
@ -1,5 +1,7 @@
|
|||
#!/bin/sh
|
||||
|
||||
# Copyright (C) 2015 Free Software Foundation, Inc.
|
||||
|
||||
# Copyright (C) 2003, 2004, 2005, 2006, 2007, 2008, 2009, 2010, 2011
|
||||
# National Institute of Advanced Industrial Science and Technology (AIST)
|
||||
# Registration Number H13PRO009
|
||||
|
@ -33,8 +35,15 @@
|
|||
# GLIBC-1 GLIBC-2 GLIBC-2-7 CZYBORRA IANA UNICODE UNICODE2 YASUOKA
|
||||
# $4: awk script
|
||||
|
||||
FILE="admin/charsets/$1"
|
||||
BASE=`basename $1 .gz`
|
||||
## So that eg [A-F] as used by KANJI-DATABASE branch below works as expected.
|
||||
## Otherwise with LANG=en_US.utf8, CNS-6.map was generated with a
|
||||
## bogus entry. By experiment, LC_COLLATE=C was not enough.
|
||||
export LC_ALL=C
|
||||
|
||||
BASE=`expr "$1" : '.*/\(.*\)' '|' "$1"` # basename
|
||||
FILE="admin/charsets/mapfiles/$BASE"
|
||||
BASE=`expr "$BASE" : '\(.*\)\.gz$' '|' "$BASE"` # remove any .gz suffix
|
||||
AWK=${AWK:-awk}
|
||||
|
||||
case "$3" in
|
||||
GLIBC*)
|
||||
|
@ -69,7 +78,7 @@ fi
|
|||
|
||||
if [ -n "$4" ] ; then
|
||||
if [ -f "$4" ] ; then
|
||||
AWKPROG="gawk -f $4"
|
||||
AWKPROG="$AWK -f $4"
|
||||
else
|
||||
echo "Awk program does not exist: $4"
|
||||
exit 1
|
||||
|
@ -81,20 +90,20 @@ fi
|
|||
if [ "$3" = "GLIBC-1" ] ; then
|
||||
# Source format is:
|
||||
# <UYYYY> /xXX
|
||||
zcat $1 | sed -n -e "$2 p" \
|
||||
gunzip -c $1 | sed -n -e "${2}p" \
|
||||
| sed -e 's,<U\([^>]*\)>[ ]*/x\(..\).*,0x\2 0x\1,' \
|
||||
| sort | ${AWKPROG}
|
||||
elif [ "$3" = "GLIBC-2" ] ; then
|
||||
# Source format is:
|
||||
# <UYYYY> /xXX/xZZ
|
||||
zcat $1 | sed -n -e "$2 p" \
|
||||
gunzip -c $1 | sed -n -e "${2}p" \
|
||||
| sed -e 's,<U\([^>]*\)>[ ]*/x\(..\)/x\(..\).*,0x\2\3 0x\1,' \
|
||||
| sort | ${AWKPROG}
|
||||
elif [ "$3" = "GLIBC-2-7" ] ; then
|
||||
# Source format is:
|
||||
# <UYYYY> /xXX/xZZ
|
||||
# We must drop MSBs of XX and ZZ
|
||||
zcat $1 | sed -n -e "$2 p" \
|
||||
gunzip -c $1 | sed -n -e "${2}p" \
|
||||
| sed -e 's/xa/x2/g' -e 's/xb/x3/g' -e 's/xc/x4/g' \
|
||||
-e 's/xd/x5/g' -e 's/xe/x6/g' -e 's/xf/x7/g' \
|
||||
-e 's,<U\([^>]*\)>[ ]*/x\(..\)/x\(..\).*,0x\2\3 0x\1,' \
|
||||
|
@ -102,13 +111,13 @@ elif [ "$3" = "GLIBC-2-7" ] ; then
|
|||
elif [ "$3" = "CZYBORRA" ] ; then
|
||||
# Source format is:
|
||||
# =XX U+YYYY
|
||||
sed -n -e "$2 p" < $1 \
|
||||
sed -n -e "${2}p" < $1 \
|
||||
| sed -e 's/=\(..\)[^U]*U+\([0-9A-F]*\).*/0x\1 0x\2/' \
|
||||
| sort | ${AWKPROG}
|
||||
elif [ "$3" = "IANA" ] ; then
|
||||
# Source format is:
|
||||
# 0xXX 0xYYYY
|
||||
sed -n -e "$2 p" < $1 \
|
||||
sed -n -e "${2}p" < $1 \
|
||||
| sed -e 's/\(0x[0-9A-Fa-f]*\)[^0]*\(0x[0-9A-Fa-f]*\).*/\1 \2/' \
|
||||
| sort | ${AWKPROG}
|
||||
elif [ "$3" = "UNICODE" ] ; then
|
||||
|
@ -116,25 +125,25 @@ elif [ "$3" = "UNICODE" ] ; then
|
|||
# YYYY XX
|
||||
# We perform reverse sort to prefer the first one in the
|
||||
# duplicated mappings (e.g. 0x20->U+0020, 0x20->U+00A0).
|
||||
sed -n -e "$2 p" < $1 \
|
||||
sed -n -e "${2}p" < $1 \
|
||||
| sed -e 's/\([0-9A-F]*\)[^0-9A-F]*\([0-9A-F]*\).*/0x\2 0x\1/' \
|
||||
| sort -r
|
||||
elif [ "$3" = "UNICODE2" ] ; then
|
||||
# Source format is:
|
||||
# 0xXXXX 0xYYYY # ...
|
||||
sed -n -e "$2 p" < $1 \
|
||||
sed -n -e "${2}p" < $1 \
|
||||
| sed -e 's/\([0-9A-Fx]*\)[^0]*\([0-9A-Fx]*\).*/\1 \2/' \
|
||||
| ${AWKPROG} | sort -n -k 4,4
|
||||
elif [ "$3" = "YASUOKA" ] ; then
|
||||
# Source format is:
|
||||
# YYYY 0-XXXX (XXXX is a Kuten code)
|
||||
sed -n -e "$2 p" < $1 \
|
||||
sed -n -e "${2}p" < $1 \
|
||||
| sed -e 's/\([0-9A-F]*\)[^0]*0-\([0-9]*\).*/0x\2 0x\1/' \
|
||||
| sort | ${AWKPROG}
|
||||
elif [ "$3" = "KANJI-DATABASE" ] ; then
|
||||
# Source format is:
|
||||
# C?-XXXX U+YYYYY .....
|
||||
sed -n -e "$2 p" < $1 \
|
||||
sed -n -e "${2}p" < $1 \
|
||||
| sed -e 's/...\(....\) U+\([0-9A-F]*\).*/0x\1 0x\2/' \
|
||||
| sort | ${AWKPROG}
|
||||
else
|
||||
|
|
|
@ -288,4 +288,4 @@ e-mail: auskov&idc.kz
|
|||
Intended usage:
|
||||
COMMON
|
||||
|
||||
(record created 2002-09-27)
|
||||
(record created 2002-09-27)
|
||||
|
|
|
@ -245,6 +245,25 @@ nontrivial changes to the build process.
|
|||
lisp/leim/quail/ethiopic.el
|
||||
lisp/leim/quail/tibetan.el
|
||||
|
||||
* binary files
|
||||
|
||||
These files contain binary data, and are not text files.
|
||||
Some of the entries in this list are patterns, and stand for any
|
||||
files with the listed extension.
|
||||
|
||||
*.gz
|
||||
*.icns
|
||||
*.ico
|
||||
*.pbm
|
||||
*.pdf
|
||||
*.png
|
||||
*.sig
|
||||
etc/e/eterm-color
|
||||
etc/package-keyring.gpg
|
||||
msdos/emacs.pif
|
||||
nextstep/GNUstep/Emacs.base/Resources/emacs.tiff
|
||||
nt/icons/hand.cur
|
||||
|
||||
|
||||
This file is part of GNU Emacs.
|
||||
|
||||
|
|
|
@ -3,7 +3,7 @@ eval '(exit $?0)' && eval 'exec perl -wS "$0" ${1+"$@"}'
|
|||
if 0;
|
||||
# Convert git log output to ChangeLog format.
|
||||
|
||||
my $VERSION = '2015-05-08 06:05'; # UTC
|
||||
my $VERSION = '2015-05-19 01:37'; # UTC
|
||||
# The definition above must lie within the first 8 lines in order
|
||||
# for the Emacs time-stamp write hook (at end) to update it.
|
||||
# If you change this file with Emacs, please let the write hook
|
||||
|
@ -74,6 +74,7 @@ OPTIONS:
|
|||
the default is to convert all log entries.
|
||||
--until=DATE convert only the logs older than DATE.
|
||||
--ignore-matching=PAT ignore commit messages whose first lines match PAT.
|
||||
--ignore-line=PAT ignore lines of commit messages that match PAT.
|
||||
--format=FMT set format string for commit subject and body;
|
||||
see 'man git-log' for the list of format metacharacters;
|
||||
the default is '%s%n%b%n'
|
||||
|
@ -228,6 +229,7 @@ sub git_dir_option($)
|
|||
my $append_dot = 0;
|
||||
my $cluster = 1;
|
||||
my $ignore_matching;
|
||||
my $ignore_line;
|
||||
my $strip_tab = 0;
|
||||
my $strip_cherry_pick = 0;
|
||||
my $srcdir;
|
||||
|
@ -242,6 +244,7 @@ sub git_dir_option($)
|
|||
'append-dot' => \$append_dot,
|
||||
'cluster!' => \$cluster,
|
||||
'ignore-matching=s' => \$ignore_matching,
|
||||
'ignore-line=s' => \$ignore_line,
|
||||
'strip-tab' => \$strip_tab,
|
||||
'strip-cherry-pick' => \$strip_cherry_pick,
|
||||
'srcdir=s' => \$srcdir,
|
||||
|
@ -349,6 +352,12 @@ sub git_dir_option($)
|
|||
if (! (defined $ignore_matching
|
||||
&& @line && $line[0] =~ /$ignore_matching/))
|
||||
{
|
||||
if (defined $ignore_line && @line)
|
||||
{
|
||||
@line = grep ! /$ignore_line/, @line;
|
||||
while ($line[$#line] =~ /^\s*$/) { pop @line; }
|
||||
}
|
||||
|
||||
# Record whether there are two or more paragraphs.
|
||||
my $multi_paragraph = grep /^\s*$/, @line;
|
||||
|
||||
|
|
|
@ -23,7 +23,7 @@ LC_ALL=C
|
|||
export LC_ALL
|
||||
|
||||
# The newest revision that should not appear in the generated ChangeLog.
|
||||
gen_origin=d2c7e14ac3bd2b517d35a86255c28d5b6d779451
|
||||
gen_origin=f89080d18dd64e0c92c5f3d206182d65f23eafeb
|
||||
force=
|
||||
output=ChangeLog
|
||||
nmax=2
|
||||
|
@ -58,7 +58,7 @@ test -d .git || {
|
|||
|
||||
# Use Gnulib's packaged ChangeLog generator.
|
||||
./build-aux/gitlog-to-changelog --ignore-matching='^; ' \
|
||||
--format='%B' \
|
||||
--ignore-line='^; ' --format='%B' \
|
||||
"$gen_origin.." >"ChangeLog.tmp" || exit
|
||||
|
||||
if test -s "ChangeLog.tmp"; then
|
||||
|
|
|
@ -5271,7 +5271,8 @@ fi
|
|||
|
||||
dnl The admin/ directory used to be excluded from tarfiles.
|
||||
if test -d $srcdir/admin; then
|
||||
SUBDIR_MAKEFILES="$SUBDIR_MAKEFILES admin/unidata/Makefile admin/grammars/Makefile"
|
||||
SUBDIR_MAKEFILES="$SUBDIR_MAKEFILES admin/charsets/Makefile admin/unidata/Makefile admin/grammars/Makefile"
|
||||
AC_CONFIG_FILES([admin/charsets/Makefile])
|
||||
AC_CONFIG_FILES([admin/unidata/Makefile])
|
||||
AC_CONFIG_FILES([admin/grammars/Makefile])
|
||||
fi dnl -d admin
|
||||
|
|
|
@ -3304,6 +3304,9 @@ fontset, whose short name is @samp{fontset-default}.
|
|||
@var{character} may be a script name. In that case, use
|
||||
@var{font-spec} for all character in the charsets.
|
||||
|
||||
@var{font-spec} may be a font-spec object created by the function
|
||||
@code{font-spec} (@pxref{Low-Level Font}).
|
||||
|
||||
@var{font-spec} may be a cons; @code{(@var{family} . @var{registry})},
|
||||
where @var{family} is a family name of a font (possibly including a
|
||||
foundry name at the head), @var{registry} is a registry name of a font
|
||||
|
@ -3311,6 +3314,12 @@ foundry name at the head), @var{registry} is a registry name of a font
|
|||
|
||||
@var{font-spec} may be a font name string.
|
||||
|
||||
@var{font-spec} may be @code{nil}, which explicitly specifies that
|
||||
there's no font for the specified @var{character}. This is useful,
|
||||
for example, to avoid expensive system-wide search for fonts for
|
||||
characters that have no glyphs, like those from the Unicode Private
|
||||
Use Area (PUA).
|
||||
|
||||
The optional argument @var{add}, if non-@code{nil}, specifies how to
|
||||
add @var{font-spec} to the font specifications previously set. If it
|
||||
is @code{prepend}, @var{font-spec} is prepended. If it is
|
||||
|
@ -6614,7 +6623,8 @@ Display a box containing the Unicode codepoint of the character, in
|
|||
hexadecimal notation.
|
||||
|
||||
@item an @acronym{ASCII} string
|
||||
Display a box containing that string.
|
||||
Display a box containing that string. The string should contain at
|
||||
most 6 @acronym{ASCII} characters.
|
||||
|
||||
@item a cons cell @code{(@var{graphical} . @var{text})}
|
||||
Display with @var{graphical} on graphical displays, and with
|
||||
|
@ -6625,7 +6635,8 @@ must be one of the display methods described above.
|
|||
@noindent
|
||||
The @code{thin-space}, @code{empty-box}, @code{hex-code}, and
|
||||
@acronym{ASCII} string display methods are drawn with the
|
||||
@code{glyphless-char} face.
|
||||
@code{glyphless-char} face. On text terminals, a box is emulated by
|
||||
square brackets, @samp{[]}.
|
||||
|
||||
The char-table has one extra slot, which determines how to display any
|
||||
character that cannot be displayed with any available font, or cannot
|
||||
|
|
|
@ -659,6 +659,16 @@ Some window managers ignore program-specified positions. If you want to
|
|||
be sure the position you specify is not ignored, specify a
|
||||
non-@code{nil} value for the @code{user-position} parameter as well.
|
||||
|
||||
If the window manager refuses to align a frame at the left or top screen
|
||||
edge, combining position notation and @code{user-position} as in
|
||||
|
||||
@example
|
||||
(modify-frame-parameters
|
||||
nil '((user-position . t) (left . (+ -4))))
|
||||
@end example
|
||||
|
||||
may help to override that.
|
||||
|
||||
@vindex top, a frame parameter
|
||||
@item top
|
||||
The screen position of the top (or bottom) edge, in pixels, with respect
|
||||
|
@ -1624,7 +1634,8 @@ tooltip, it first runs the hook @code{delete-frame-functions} (each
|
|||
function gets one argument, @var{frame}). By default, @var{frame} is
|
||||
the selected frame.
|
||||
|
||||
A frame cannot be deleted if its minibuffer is used by other frames.
|
||||
A frame cannot be deleted as long as its minibuffer serves as surrogate
|
||||
minibuffer for another frame (@pxref{Minibuffers and Frames}).
|
||||
Normally, you cannot delete a frame if all other frames are invisible,
|
||||
but if @var{force} is non-@code{nil}, then you are allowed to do so.
|
||||
@end deffn
|
||||
|
@ -1700,12 +1711,18 @@ you can get it with @code{minibuffer-window} (@pxref{Definition of
|
|||
minibuffer-window}).
|
||||
|
||||
@cindex frame without a minibuffer
|
||||
However, you can also create a frame with no minibuffer. Such a frame
|
||||
must use the minibuffer window of some other frame. When you create the
|
||||
frame, you can explicitly specify the minibuffer window to use (in some
|
||||
other frame). If you don't, then the minibuffer is found in the frame
|
||||
which is the value of the variable @code{default-minibuffer-frame}. Its
|
||||
value should be a frame that does have a minibuffer.
|
||||
@cindex surrogate minibuffer frame
|
||||
However, you can also create a frame without a minibuffer. Such a frame
|
||||
must use the minibuffer window of some other frame. That other frame
|
||||
will serve as @dfn{surrogate minibuffer frame} for this frame and cannot
|
||||
be deleted via @code{delete-frame} (@pxref{Deleting Frames}) as long as
|
||||
this frame is live.
|
||||
|
||||
When you create the frame, you can explicitly specify the minibuffer
|
||||
window to use (in some other frame). If you don't, then the minibuffer
|
||||
is found in the frame which is the value of the variable
|
||||
@code{default-minibuffer-frame}. Its value should be a frame that does
|
||||
have a minibuffer.
|
||||
|
||||
If you use a minibuffer-only frame, you might want that frame to raise
|
||||
when you enter the minibuffer. If so, set the variable
|
||||
|
|
|
@ -540,8 +540,8 @@ property is used for bidirectional display.
|
|||
|
||||
@item old-name
|
||||
Corresponds to the Unicode @code{Unicode_1_Name} property. The value
|
||||
is a string. Unassigned codepoints, and characters that have no value
|
||||
for this property, the value is @code{nil}.
|
||||
is a string. For unassigned codepoints, and characters that have no
|
||||
value for this property, the value is @code{nil}.
|
||||
|
||||
@item iso-10646-comment
|
||||
Corresponds to the Unicode @code{ISO_Comment} property. The value is
|
||||
|
|
|
@ -350,10 +350,11 @@ would move to.
|
|||
@deffn Command forward-line &optional count
|
||||
@cindex beginning of line
|
||||
This function moves point forward @var{count} lines, to the beginning of
|
||||
the line. If @var{count} is negative, it moves point
|
||||
@minus{}@var{count} lines backward, to the beginning of a line. If
|
||||
@var{count} is zero, it moves point to the beginning of the current
|
||||
line. If @var{count} is @code{nil}, that means 1.
|
||||
the line following that. If @var{count} is negative, it moves point
|
||||
@minus{}@var{count} lines backward, to the beginning of a line
|
||||
preceding that. If @var{count} is zero, it moves point to the
|
||||
beginning of the current line. If @var{count} is @code{nil}, that
|
||||
means 1.
|
||||
|
||||
If @code{forward-line} encounters the beginning or end of the buffer (or
|
||||
of the accessible portion) before finding that many lines, it sets point
|
||||
|
@ -362,7 +363,11 @@ there. No error is signaled.
|
|||
@code{forward-line} returns the difference between @var{count} and the
|
||||
number of lines actually moved. If you attempt to move down five lines
|
||||
from the beginning of a buffer that has only three lines, point stops at
|
||||
the end of the last line, and the value will be 2.
|
||||
the end of the last line, and the value will be 2. As an explicit
|
||||
exception, if the last accessible line is non-empty, but has no
|
||||
newline (e.g., if the buffer ends without a newline), the function
|
||||
sets point to the end of that line, and the value returned by the
|
||||
function counts that line as one line successfully moved.
|
||||
|
||||
In an interactive call, @var{count} is the numeric prefix argument.
|
||||
@end deffn
|
||||
|
|
|
@ -2005,16 +2005,49 @@ list---both the global buffer list and the selected frame's buffer
|
|||
list (@pxref{Buffer List}). However, this is not done if the
|
||||
optional argument @var{norecord} is non-@code{nil}.
|
||||
|
||||
Sometimes, @code{switch-to-buffer} may be unable to display the buffer
|
||||
in the selected window. This happens if the selected window is a
|
||||
minibuffer window, or if the selected window is strongly dedicated to
|
||||
its buffer (@pxref{Dedicated Windows}). In that case, the command
|
||||
normally tries to display the buffer in some other window, by invoking
|
||||
@code{pop-to-buffer} (see below). However, if the optional argument
|
||||
@var{force-same-window} is non-@code{nil}, it signals an error
|
||||
instead.
|
||||
Sometimes, the selected window may not be suitable for displaying the
|
||||
buffer. This happens if the selected window is a minibuffer window, or
|
||||
if the selected window is strongly dedicated to its buffer
|
||||
(@pxref{Dedicated Windows}). In such cases, the command normally tries
|
||||
to display the buffer in some other window, by invoking
|
||||
@code{pop-to-buffer} (see below).
|
||||
|
||||
If the optional argument @var{force-same-window} is non-@code{nil} and
|
||||
the selected window is not suitable for displaying the buffer, this
|
||||
function always signals an error when called non-interactively. In
|
||||
interactive use, if the selected window is a minibuffer window, this
|
||||
function will try to use some other window instead. If the selected
|
||||
window is strongly dedicated to its buffer, the option
|
||||
@code{switch-to-buffer-in-dedicated-window} described next can be used
|
||||
to proceed.
|
||||
@end deffn
|
||||
|
||||
@defopt switch-to-buffer-in-dedicated-window
|
||||
This option, if non-@code{nil}, allows @code{switch-to-buffer} to
|
||||
proceed when called interactively and the selected window is strongly
|
||||
dedicated to its buffer.
|
||||
|
||||
The following values are respected:
|
||||
|
||||
@table @code
|
||||
@item nil
|
||||
Disallows switching and signals an error as in non-interactive use.
|
||||
|
||||
@item prompt
|
||||
Prompts the user whether to allow switching.
|
||||
|
||||
@item pop
|
||||
Invokes @code{pop-to-buffer} to proceed.
|
||||
|
||||
@item t
|
||||
Marks the selected window as non-dedicated and proceeds.
|
||||
@end table
|
||||
|
||||
When called non-interactively, @code{switch-to-buffer} always signals an
|
||||
error when the selected window is dedicated to its buffer and
|
||||
@var{force-same-window} is non-@code{nil}.
|
||||
@end defopt
|
||||
|
||||
By default, @code{switch-to-buffer} shows the buffer at its position of
|
||||
@code{point}. This behavior can be tuned using the following option.
|
||||
|
||||
|
|
|
@ -753,6 +753,26 @@ If non, @code{nil}, this is a list of IRC message types to hide, e.g.:
|
|||
@end example
|
||||
@end defopt
|
||||
|
||||
@defopt erc-network-hide-list
|
||||
If non, @code{nil}, this is a list of IRC networks and message types
|
||||
to hide, e.g.:
|
||||
|
||||
@example
|
||||
(setq erc-network-hide-list (("freenode" "JOIN" "PART" "QUIT")
|
||||
("OFTC" "JOIN" "PART""))
|
||||
@end example
|
||||
@end defopt
|
||||
|
||||
@defopt erc-channel-hide-list
|
||||
If non, @code{nil}, this is a list of IRC channels and message types
|
||||
to hide, e.g.:
|
||||
|
||||
@example
|
||||
(setq erc-channel-hide-list (("#erc" "JOIN" "PART" "QUIT")
|
||||
("#emacs" "NICK"))
|
||||
@end example
|
||||
@end defopt
|
||||
|
||||
@defopt erc-lurker-hide-list
|
||||
Like @code{erc-hide-list}, but only applies to messages sent by
|
||||
lurkers. The function @code{erc-lurker-p} determines whether a given
|
||||
|
|
38
etc/NEWS
38
etc/NEWS
|
@ -165,7 +165,7 @@ buffers to allow certain parts of the text to be writable.
|
|||
** A new function `directory-files-recursively' returns all matching
|
||||
files (recursively) under a directory.
|
||||
|
||||
** The new `directory-name-p' can be used to check whether a file
|
||||
** The new function `directory-name-p' can be used to check whether a file
|
||||
name (as returned from, for instance, `file-name-all-completions' is
|
||||
a directory file name. It returns non-nil if the last character in
|
||||
the name is a forward slash.
|
||||
|
@ -249,6 +249,13 @@ Unicode standards.
|
|||
|
||||
** The `save-place' variable is replaced by a `save-place-mode'.
|
||||
|
||||
** ERC
|
||||
|
||||
*** Hide message types by network or channel. `erc-hide-list' will
|
||||
hide all messages of the specified type, where `erc-network-hide-list'
|
||||
and `erc-channel-hide-list' will only hide the specified message types
|
||||
for the respective specified targets.
|
||||
|
||||
** Midnight-mode
|
||||
*** `midnight-mode' is a proper minor mode.
|
||||
*** clean-buffer-*-regexps can now specify buffers via predicate functions.
|
||||
|
@ -585,8 +592,8 @@ nil to disable this.
|
|||
fitting for use in money calculations; factorial works with
|
||||
non-integer inputs.
|
||||
|
||||
** HideIfDef mode now support full C/C++ expressions, argumented macro expansions
|
||||
, interactive macro evaluation and automatic scanning of #defined symbols.
|
||||
** HideIfDef mode now support full C/C++ expressions, argumented macro expansions,
|
||||
interactive macro evaluation and automatic scanning of #defined symbols.
|
||||
|
||||
*** New custom variable `hide-ifdef-header-regexp' to define C/C++ header file
|
||||
name patterns. Default case-insensitive .h, .hh, .hpp and .hxx.
|
||||
|
@ -675,6 +682,20 @@ command line's password prompt.
|
|||
*** The new built-in command `clear' can scroll window contents out of sight.
|
||||
If provided with an optional non-nil argument, the scrollback contents will be cleared.
|
||||
|
||||
*** New buffer syntax '#<buffer-name>', which is equivalent to
|
||||
'#<buffer buffer-name>'. This shorthand makes interacting with
|
||||
buffers from eshell more convenient. Custom variable
|
||||
`eshell-buffer-shorthand', which has been broken for a while, has been
|
||||
removed.
|
||||
|
||||
*** By default, eshell "visual" program buffers (created by
|
||||
`eshell-visual-commands' and similar custom vars) are no longer killed
|
||||
when their processes die. This fixes issues with short-lived commands
|
||||
and makes visual programs more useful in general. For example, if
|
||||
"git log" is a visual command, it will always show the visual command
|
||||
buffer, even if the "git log" process dies. For the old behavior,
|
||||
make the new option `eshell-destroy-buffer-when-process-dies' non-nil.
|
||||
|
||||
** Browse-url
|
||||
|
||||
*** Support for the Conkeror web browser.
|
||||
|
@ -720,6 +741,10 @@ a typographically-correct documents.
|
|||
|
||||
* Incompatible Lisp Changes in Emacs 25.1
|
||||
|
||||
** The optional `predicate' argument of `lisp-complete-symbol' no longer
|
||||
has any effect. (This change was made in Emacs 24.4 but was not
|
||||
advertised at the time.)
|
||||
|
||||
** `indirect-function' does not signal `void-function' any more.
|
||||
This is mostly a bug-fix, since this change was missed back in 24.4 when
|
||||
symbol-function was changed not to signal `void-function' any more.
|
||||
|
@ -737,7 +762,7 @@ If you want the old behavior of calling the function in the buffer
|
|||
from which the minibuffer was entered, call it with the new argument
|
||||
`switch-buffer'.
|
||||
|
||||
** window-configurations no longer record the buffers's marks.
|
||||
** window-configurations no longer record the buffers' marks.
|
||||
|
||||
** inhibit-modification-hooks now also inhibits lock-file checks, as well as
|
||||
active region handling.
|
||||
|
@ -942,6 +967,11 @@ fullwidth frames, the behavior may depend on the toolkit used.
|
|||
windows without "fixing" it. It's supported by `fit-window-to-buffer',
|
||||
`temp-buffer-resize-mode' and `display-buffer'.
|
||||
|
||||
+++
|
||||
** New option `switch-to-buffer-in-dedicated-window' allows to customize
|
||||
how `switch-to-buffer' proceeds interactively when the selected window
|
||||
is strongly dedicated to its buffer.
|
||||
|
||||
** Tearoff menus and detachable toolbars for Gtk+ has been removed.
|
||||
Those features have been deprecated in Gtk+ for a long time.
|
||||
|
||||
|
|
|
@ -107,13 +107,13 @@ char *w32_getenv (char *);
|
|||
/* Name used to invoke this program. */
|
||||
const char *progname;
|
||||
|
||||
/* The second argument to main. */
|
||||
/* The second argument to main. */
|
||||
char **main_argv;
|
||||
|
||||
/* Nonzero means don't wait for a response from Emacs. --no-wait. */
|
||||
int nowait = 0;
|
||||
|
||||
/* Nonzero means don't print messages for successful operations. --quiet. */
|
||||
/* Nonzero means don't print messages for successful operations. --quiet. */
|
||||
int quiet = 0;
|
||||
|
||||
/* Nonzero means args are expressions to be evaluated. --eval. */
|
||||
|
@ -131,7 +131,7 @@ const char *alt_display = NULL;
|
|||
/* The parent window ID, if we are opening a frame via XEmbed. */
|
||||
char *parent_id = NULL;
|
||||
|
||||
/* Nonzero means open a new Emacs frame on the current terminal. */
|
||||
/* Nonzero means open a new Emacs frame on the current terminal. */
|
||||
int tty = 0;
|
||||
|
||||
/* If non-NULL, the name of an editor to fallback to if the server
|
||||
|
@ -148,7 +148,7 @@ const char *server_file = NULL;
|
|||
int emacs_pid = 0;
|
||||
|
||||
/* If non-NULL, a string that should form a frame parameter alist to
|
||||
be used for the new frame */
|
||||
be used for the new frame. */
|
||||
const char *frame_parameters = NULL;
|
||||
|
||||
static _Noreturn void print_help_and_exit (void);
|
||||
|
|
109
lib-src/etags.c
109
lib-src/etags.c
|
@ -116,6 +116,7 @@ char pot_etags_version[] = "@(#) pot revision number is 17.38.1.4";
|
|||
# undef HAVE_NTGUI
|
||||
# undef DOS_NT
|
||||
# define DOS_NT
|
||||
# define O_CLOEXEC O_NOINHERIT
|
||||
#endif /* WINDOWSNT */
|
||||
|
||||
#include <unistd.h>
|
||||
|
@ -125,6 +126,7 @@ char pot_etags_version[] = "@(#) pot revision number is 17.38.1.4";
|
|||
#include <sysstdio.h>
|
||||
#include <ctype.h>
|
||||
#include <errno.h>
|
||||
#include <fcntl.h>
|
||||
#include <sys/types.h>
|
||||
#include <sys/stat.h>
|
||||
#include <binary-io.h>
|
||||
|
@ -336,6 +338,7 @@ static char *absolute_filename (char *, char *);
|
|||
static char *absolute_dirname (char *, char *);
|
||||
static bool filename_is_absolute (char *f);
|
||||
static void canonicalize_filename (char *);
|
||||
static char *etags_mktmp (void);
|
||||
static void linebuffer_init (linebuffer *);
|
||||
static void linebuffer_setlen (linebuffer *, int);
|
||||
static void *xmalloc (size_t);
|
||||
|
@ -1437,7 +1440,7 @@ process_file_name (char *file, language *lang)
|
|||
fdesc *fdp;
|
||||
compressor *compr;
|
||||
char *compressed_name, *uncompressed_name;
|
||||
char *ext, *real_name;
|
||||
char *ext, *real_name, *tmp_name;
|
||||
int retval;
|
||||
|
||||
canonicalize_filename (file);
|
||||
|
@ -1522,9 +1525,20 @@ process_file_name (char *file, language *lang)
|
|||
}
|
||||
if (real_name == compressed_name)
|
||||
{
|
||||
char *cmd = concat (compr->command, " ", real_name);
|
||||
inf = popen (cmd, "r" FOPEN_BINARY);
|
||||
free (cmd);
|
||||
tmp_name = etags_mktmp ();
|
||||
if (!tmp_name)
|
||||
inf = NULL;
|
||||
else
|
||||
{
|
||||
char *cmd1 = concat (compr->command, " ", real_name);
|
||||
char *cmd = concat (cmd1, " > ", tmp_name);
|
||||
free (cmd1);
|
||||
if (system (cmd) == -1)
|
||||
inf = NULL;
|
||||
else
|
||||
inf = fopen (tmp_name, "r" FOPEN_BINARY);
|
||||
free (cmd);
|
||||
}
|
||||
}
|
||||
else
|
||||
inf = fopen (real_name, "r" FOPEN_BINARY);
|
||||
|
@ -1536,10 +1550,12 @@ process_file_name (char *file, language *lang)
|
|||
|
||||
process_file (inf, uncompressed_name, lang);
|
||||
|
||||
retval = fclose (inf);
|
||||
if (real_name == compressed_name)
|
||||
retval = pclose (inf);
|
||||
else
|
||||
retval = fclose (inf);
|
||||
{
|
||||
remove (tmp_name);
|
||||
free (tmp_name);
|
||||
}
|
||||
if (retval < 0)
|
||||
pfatal (file);
|
||||
|
||||
|
@ -1707,9 +1723,6 @@ find_entries (FILE *inf)
|
|||
}
|
||||
}
|
||||
|
||||
/* We rewind here, even if inf may be a pipe. We fail if the
|
||||
length of the first line is longer than the pipe block size,
|
||||
which is unlikely. */
|
||||
rewind (inf);
|
||||
|
||||
/* Else try to guess the language given the case insensitive file name. */
|
||||
|
@ -1734,8 +1747,6 @@ find_entries (FILE *inf)
|
|||
if (old_last_node == last_node)
|
||||
/* No Fortran entries found. Try C. */
|
||||
{
|
||||
/* We do not tag if rewind fails.
|
||||
Only the file name will be recorded in the tags file. */
|
||||
rewind (inf);
|
||||
curfdp->lang = get_language_from_langname (cplusplus ? "c++" : "c");
|
||||
find_entries (inf);
|
||||
|
@ -5015,8 +5026,6 @@ TEX_mode (FILE *inf)
|
|||
TEX_opgrp = '<';
|
||||
TEX_clgrp = '>';
|
||||
}
|
||||
/* If the input file is compressed, inf is a pipe, and rewind may fail.
|
||||
No attempt is made to correct the situation. */
|
||||
rewind (inf);
|
||||
}
|
||||
|
||||
|
@ -6344,6 +6353,51 @@ etags_getcwd (void)
|
|||
return path;
|
||||
}
|
||||
|
||||
/* Return a newly allocated string containing a name of a temporary file. */
|
||||
static char *
|
||||
etags_mktmp (void)
|
||||
{
|
||||
const char *tmpdir = getenv ("TMPDIR");
|
||||
const char *slash = "/";
|
||||
|
||||
#if MSDOS || defined (DOS_NT)
|
||||
if (!tmpdir)
|
||||
tmpdir = getenv ("TEMP");
|
||||
if (!tmpdir)
|
||||
tmpdir = getenv ("TMP");
|
||||
if (!tmpdir)
|
||||
tmpdir = ".";
|
||||
if (tmpdir[strlen (tmpdir) - 1] == '/'
|
||||
|| tmpdir[strlen (tmpdir) - 1] == '\\')
|
||||
slash = "";
|
||||
#else
|
||||
if (!tmpdir)
|
||||
tmpdir = "/tmp";
|
||||
if (tmpdir[strlen (tmpdir) - 1] == '/')
|
||||
slash = "";
|
||||
#endif
|
||||
|
||||
char *templt = concat (tmpdir, slash, "etXXXXXX");
|
||||
int fd = mkostemp (templt, O_CLOEXEC);
|
||||
if (fd < 0)
|
||||
{
|
||||
free (templt);
|
||||
templt = NULL;
|
||||
}
|
||||
else
|
||||
close (fd);
|
||||
|
||||
#if defined (DOS_NT)
|
||||
/* The file name will be used in shell redirection, so it needs to have
|
||||
DOS-style backslashes, or else the Windows shell will barf. */
|
||||
char *p;
|
||||
for (p = templt; *p; p++)
|
||||
if (*p == '/')
|
||||
*p = '\\';
|
||||
#endif
|
||||
return templt;
|
||||
}
|
||||
|
||||
/* Return a newly allocated string containing the file name of FILE
|
||||
relative to the absolute directory DIR (which should end with a slash). */
|
||||
static char *
|
||||
|
@ -6484,7 +6538,6 @@ static void
|
|||
canonicalize_filename (register char *fn)
|
||||
{
|
||||
register char* cp;
|
||||
char sep = '/';
|
||||
|
||||
#ifdef DOS_NT
|
||||
/* Canonicalize drive letter case. */
|
||||
|
@ -6492,19 +6545,33 @@ canonicalize_filename (register char *fn)
|
|||
if (fn[0] != '\0' && fn[1] == ':' && ISUPPER (fn[0]))
|
||||
fn[0] = lowcase (fn[0]);
|
||||
|
||||
sep = '\\';
|
||||
#endif
|
||||
|
||||
/* Collapse multiple separators into a single slash. */
|
||||
/* Collapse multiple forward- and back-slashes into a single forward
|
||||
slash. */
|
||||
for (cp = fn; *cp != '\0'; cp++, fn++)
|
||||
if (*cp == sep)
|
||||
if (*cp == '/' || *cp == '\\')
|
||||
{
|
||||
*fn = '/';
|
||||
while (cp[1] == sep)
|
||||
while (cp[1] == '/' || cp[1] == '\\')
|
||||
cp++;
|
||||
}
|
||||
else
|
||||
*fn = *cp;
|
||||
|
||||
#else /* !DOS_NT */
|
||||
|
||||
/* Collapse multiple slashes into a single slash. */
|
||||
for (cp = fn; *cp != '\0'; cp++, fn++)
|
||||
if (*cp == '/')
|
||||
{
|
||||
*fn = '/';
|
||||
while (cp[1] == '/')
|
||||
cp++;
|
||||
}
|
||||
else
|
||||
*fn = *cp;
|
||||
|
||||
#endif /* !DOS_NT */
|
||||
|
||||
*fn = '\0';
|
||||
}
|
||||
|
||||
|
|
|
@ -5030,8 +5030,7 @@
|
|||
* mouse.el (mouse-yank-primarY): Look for frame-type w32, not
|
||||
system-type windows-nt.
|
||||
|
||||
* server.el (server-create-window-system-frame): Look for window
|
||||
type.
|
||||
* server.el (server-create-window-system-frame): Look for window type.
|
||||
(server-proces-filter): Only force a window system when windows-nt
|
||||
_and_ w32. Explain why.
|
||||
|
||||
|
|
|
@ -348,7 +348,7 @@ to `allout-body-modification-handler', and is always reset by
|
|||
images with lists containing the name of the icon directory (as
|
||||
found on the `load-path') and the icon name.
|
||||
|
||||
Set this variable to `nil' to empty the cache, and have it replenish from the
|
||||
Set this variable to nil to empty the cache, and have it replenish from the
|
||||
filesystem.")
|
||||
;;;_ = allout-widgets-unset-inhibit-read-only
|
||||
(defvar allout-widgets-unset-inhibit-read-only nil
|
||||
|
|
|
@ -322,7 +322,7 @@ With value nil, inhibit any automatic allout-mode activation."
|
|||
"Default allout outline layout specification.
|
||||
|
||||
This setting specifies the outline exposure to use when
|
||||
`allout-layout' has the local value `t'. This docstring describes the
|
||||
`allout-layout' has the local value t. This docstring describes the
|
||||
layout specifications.
|
||||
|
||||
A list value specifies a default layout for the current buffer,
|
||||
|
@ -933,7 +933,7 @@ followed by the equivalent of `(allout-expose-topic 0 : -1 -1 0)'.
|
|||
\(This is the layout used for the allout.el source file.)
|
||||
|
||||
`allout-default-layout' describes the specification format.
|
||||
`allout-layout' can additionally have the value `t', in which
|
||||
`allout-layout' can additionally have the value t, in which
|
||||
case the value of `allout-default-layout' is used.")
|
||||
(make-variable-buffer-local 'allout-layout)
|
||||
;;;###autoload
|
||||
|
|
|
@ -1,4 +1,4 @@
|
|||
;;; autorevert.el --- revert buffers when files on disk change
|
||||
;;; autorevert.el --- revert buffers when files on disk change -*- lexical-binding:t -*-
|
||||
|
||||
;; Copyright (C) 1997-1999, 2001-2015 Free Software Foundation, Inc.
|
||||
|
||||
|
@ -95,7 +95,7 @@
|
|||
;; mode. For example, the following line will activate Auto-Revert
|
||||
;; Mode in all C mode buffers:
|
||||
;;
|
||||
;; (add-hook 'c-mode-hook 'turn-on-auto-revert-mode)
|
||||
;; (add-hook 'c-mode-hook #'turn-on-auto-revert-mode)
|
||||
|
||||
;;; Code:
|
||||
|
||||
|
@ -260,10 +260,9 @@ buffers. CPU usage depends on the version control system."
|
|||
:type 'boolean
|
||||
:version "22.1")
|
||||
|
||||
(defvar global-auto-revert-ignore-buffer nil
|
||||
(defvar-local global-auto-revert-ignore-buffer nil
|
||||
"When non-nil, Global Auto-Revert Mode will not revert this buffer.
|
||||
This variable becomes buffer local when set in any fashion.")
|
||||
(make-variable-buffer-local 'global-auto-revert-ignore-buffer)
|
||||
|
||||
(defcustom auto-revert-remote-files nil
|
||||
"If non-nil remote files are also reverted."
|
||||
|
@ -315,9 +314,9 @@ the list of old buffers.")
|
|||
"Position of last known end of file.")
|
||||
|
||||
(add-hook 'find-file-hook
|
||||
(lambda ()
|
||||
(set (make-local-variable 'auto-revert-tail-pos)
|
||||
(nth 7 (file-attributes buffer-file-name)))))
|
||||
(lambda ()
|
||||
(setq-local auto-revert-tail-pos
|
||||
(nth 7 (file-attributes buffer-file-name)))))
|
||||
|
||||
(defvar auto-revert-notify-watch-descriptor-hash-list
|
||||
(make-hash-table :test 'equal)
|
||||
|
@ -326,15 +325,13 @@ Hash key is a watch descriptor, hash value is a list of buffers
|
|||
which are related to files being watched and carrying the same
|
||||
default directory.")
|
||||
|
||||
(defvar auto-revert-notify-watch-descriptor nil
|
||||
(defvar-local auto-revert-notify-watch-descriptor nil
|
||||
"The file watch descriptor active for the current buffer.")
|
||||
(make-variable-buffer-local 'auto-revert-notify-watch-descriptor)
|
||||
(put 'auto-revert-notify-watch-descriptor 'permanent-local t)
|
||||
|
||||
(defvar auto-revert-notify-modified-p nil
|
||||
(defvar-local auto-revert-notify-modified-p nil
|
||||
"Non-nil when file has been modified on the file system.
|
||||
This has been reported by a file notification event.")
|
||||
(make-variable-buffer-local 'auto-revert-notify-modified-p)
|
||||
|
||||
;; Functions:
|
||||
|
||||
|
@ -370,7 +367,7 @@ without being changed in the part that is already in the buffer."
|
|||
"Turn on Auto-Revert Mode.
|
||||
|
||||
This function is designed to be added to hooks, for example:
|
||||
(add-hook 'c-mode-hook 'turn-on-auto-revert-mode)"
|
||||
(add-hook 'c-mode-hook #'turn-on-auto-revert-mode)"
|
||||
(auto-revert-mode 1))
|
||||
|
||||
|
||||
|
@ -420,8 +417,8 @@ Perform a full revert? ")
|
|||
;; else we might reappend our own end when we save
|
||||
(add-hook 'before-save-hook (lambda () (auto-revert-tail-mode 0)) nil t)
|
||||
(or (local-variable-p 'auto-revert-tail-pos) ; don't lose prior position
|
||||
(set (make-local-variable 'auto-revert-tail-pos)
|
||||
(nth 7 (file-attributes buffer-file-name))))
|
||||
(setq-local auto-revert-tail-pos
|
||||
(nth 7 (file-attributes buffer-file-name))))
|
||||
;; let auto-revert-mode set up the mechanism for us if it isn't already
|
||||
(or auto-revert-mode
|
||||
(let ((auto-revert-tail-mode t))
|
||||
|
@ -434,7 +431,7 @@ Perform a full revert? ")
|
|||
"Turn on Auto-Revert Tail mode.
|
||||
|
||||
This function is designed to be added to hooks, for example:
|
||||
(add-hook 'my-logfile-mode-hook 'turn-on-auto-revert-tail-mode)"
|
||||
(add-hook 'my-logfile-mode-hook #'turn-on-auto-revert-tail-mode)"
|
||||
(auto-revert-tail-mode 1))
|
||||
|
||||
|
||||
|
@ -495,7 +492,7 @@ will use an up-to-date value of `auto-revert-interval'"
|
|||
(ignore-errors
|
||||
(file-notify-rm-watch auto-revert-notify-watch-descriptor)))))
|
||||
auto-revert-notify-watch-descriptor-hash-list)
|
||||
(remove-hook 'kill-buffer-hook 'auto-revert-notify-rm-watch))
|
||||
(remove-hook 'kill-buffer-hook #'auto-revert-notify-rm-watch))
|
||||
(setq auto-revert-notify-watch-descriptor nil
|
||||
auto-revert-notify-modified-p nil))
|
||||
|
||||
|
@ -508,7 +505,7 @@ will use an up-to-date value of `auto-revert-interval'"
|
|||
(file-symlink-p (or buffer-file-name default-directory)))
|
||||
|
||||
;; Fallback to file checks.
|
||||
(set (make-local-variable 'auto-revert-use-notify) nil)
|
||||
(setq-local auto-revert-use-notify nil)
|
||||
|
||||
(when (not auto-revert-notify-watch-descriptor)
|
||||
(setq auto-revert-notify-watch-descriptor
|
||||
|
@ -530,10 +527,10 @@ will use an up-to-date value of `auto-revert-interval'"
|
|||
(gethash auto-revert-notify-watch-descriptor
|
||||
auto-revert-notify-watch-descriptor-hash-list))
|
||||
auto-revert-notify-watch-descriptor-hash-list)
|
||||
(add-hook (make-local-variable 'kill-buffer-hook)
|
||||
'auto-revert-notify-rm-watch))
|
||||
(add-hook 'kill-buffer-hook
|
||||
#'auto-revert-notify-rm-watch nil t))
|
||||
;; Fallback to file checks.
|
||||
(set (make-local-variable 'auto-revert-use-notify) nil)))))
|
||||
(setq-local auto-revert-use-notify nil)))))
|
||||
|
||||
;; If we have file notifications, we want to update the auto-revert buffers
|
||||
;; immediately when a notification occurs. Since file updates can happen very
|
||||
|
|
|
@ -1034,7 +1034,7 @@ in Calc algebraic input.")
|
|||
|
||||
(defun math-restore-placeholders (x)
|
||||
"Replace placeholders by the proper characters in the symbol x.
|
||||
This includes `#' for `_' and `'' for `%'.
|
||||
This includes ‘#’ for ‘_’ and ‘'’ for ‘%’.
|
||||
If the current Calc language does not use placeholders, return nil."
|
||||
(if (or (memq calc-language calc-lang-allow-underscores)
|
||||
(memq calc-language calc-lang-allow-percentsigns))
|
||||
|
|
|
@ -149,7 +149,7 @@ as well as set the contents of the Emacs register REGISTER to TEXT."
|
|||
"Return the CALCVAL portion of the contents of the Calc register REG,
|
||||
unless the TEXT portion doesn't match the contents of the Emacs register REG,
|
||||
in which case either return the contents of the Emacs register (if it is
|
||||
text) or `nil'."
|
||||
text) or nil."
|
||||
(let ((cval (cdr (assq reg calc-register-alist)))
|
||||
(val (cdr (assq reg register-alist))))
|
||||
(if (stringp val)
|
||||
|
|
|
@ -2034,7 +2034,7 @@ See calc-keypad for details."
|
|||
;; (YEAR MONTH DAY math-date-from-gregorian-dt(YEAR MONTH DAY)) for speed.
|
||||
(defcustom calc-gregorian-switch nil
|
||||
"The first day the Gregorian calendar is used by Calc's date forms.
|
||||
This is `nil' (the default) if the Gregorian calendar is the only one used.
|
||||
This is nil (the default) if the Gregorian calendar is the only one used.
|
||||
Otherwise, it should be a list `(YEAR MONTH DAY)' when Calc begins to use
|
||||
the Gregorian calendar; Calc will use the Julian calendar for earlier dates.
|
||||
The dates in which different regions of the world began to use the
|
||||
|
|
|
@ -1203,10 +1203,10 @@ arguments."
|
|||
;; f is an expression
|
||||
(let ((TX (and X (calculator-truncate X)))
|
||||
(TY (and Y (calculator-truncate Y)))
|
||||
(DX (if (and X calculator-deg) (/ (* X pi) 180) X))
|
||||
(DX (if (and X calculator-deg) (degrees-to-radians X) X))
|
||||
(L calculator-saved-list)
|
||||
(fF `(calculator-funcall ',f x y))
|
||||
(fD `(if calculator-deg (/ (* x 180) float-pi) x)))
|
||||
(fD `(if calculator-deg (* radians-to-degrees x) x)))
|
||||
(eval `(cl-flet ((F (&optional x y) ,fF) (D (x) ,fD))
|
||||
(let ((X ,X) (Y ,Y) (DX ,DX) (TX ,TX) (TY ,TY) (L ',L))
|
||||
,f))
|
||||
|
|
|
@ -2182,7 +2182,7 @@ in `calendar-month-name-array'. These abbreviations are used in
|
|||
the calendar menu entries, and can also be used in the diary
|
||||
file. Do not include a trailing `.' in the strings specified in
|
||||
this variable, though you may use such in the diary file. By
|
||||
default, each string is the first ``calendar-abbrev-length'
|
||||
default, each string is the first `calendar-abbrev-length'
|
||||
characters of the corresponding full name."
|
||||
:group 'calendar
|
||||
:set-after '(calendar-abbrev-length calendar-month-name-array)
|
||||
|
|
|
@ -104,9 +104,9 @@ are: `string', `symbol', `int', `tnil', `stringtnil.'"
|
|||
(choice (const string :tag "A string")
|
||||
(const symbol :tag "A symbol")
|
||||
(const int :tag "An integer")
|
||||
(const tnil :tag "`t' or `nil'")
|
||||
(const tnil :tag "t or nil")
|
||||
(const stringtnil
|
||||
:tag "A string, `t', or `nil'"))))
|
||||
:tag "A string, t, or nil"))))
|
||||
:group 'diary)
|
||||
|
||||
(defcustom diary-glob-file-regexp-prefix "^\\#"
|
||||
|
@ -1671,7 +1671,7 @@ DAY MONTH YEAR in the European style).
|
|||
|
||||
%%(diary-date MONTH DAY YEAR &optional MARK) text
|
||||
Entry applies if date is MONTH, DAY, YEAR. DAY, MONTH, and YEAR can
|
||||
be a list of integers, `t' (meaning all values), or an integer.
|
||||
be a list of integers, t (meaning all values), or an integer.
|
||||
|
||||
%%(diary-float MONTH DAYNAME N &optional DAY MARK) text
|
||||
Entry will appear on the Nth DAYNAME after/before MONTH DAY.
|
||||
|
@ -1679,7 +1679,7 @@ DAY MONTH YEAR in the European style).
|
|||
If N>0, use the Nth DAYNAME after MONTH DAY.
|
||||
If N<0, use the Nth DAYNAME before MONTH DAY.
|
||||
DAY defaults to 1 if N>0, and MONTH's last day otherwise.
|
||||
MONTH can be a list of months, a single month, or `t' to
|
||||
MONTH can be a list of months, a single month, or t to
|
||||
specify all months.
|
||||
|
||||
%%(diary-block M1 D1 Y1 M2 D2 Y2 &optional MARK) text
|
||||
|
@ -1814,7 +1814,7 @@ form used internally by the calendar and diary."
|
|||
(defun diary-date (month day year &optional mark)
|
||||
"Specific date(s) diary entry.
|
||||
Entry applies if date is MONTH, DAY, YEAR. Each parameter can be a
|
||||
list of integers, `t' (meaning all values), or an integer. The order
|
||||
list of integers, t (meaning all values), or an integer. The order
|
||||
of the input parameters changes according to `calendar-date-style'
|
||||
\(e.g. to DAY MONTH YEAR in the European style).
|
||||
|
||||
|
@ -1863,7 +1863,7 @@ DAYNAME=0 means Sunday, DAYNAME=1 means Monday, and so on.
|
|||
If N>0, use the Nth DAYNAME after MONTH DAY.
|
||||
If N<0, use the Nth DAYNAME before MONTH DAY.
|
||||
DAY defaults to 1 if N>0, and MONTH's last day otherwise.
|
||||
MONTH can be a list of months, an integer, or `t' (meaning all months).
|
||||
MONTH can be a list of months, an integer, or t (meaning all months).
|
||||
Optional MARK specifies a face or single-character string to use when
|
||||
highlighting the day in the calendar."
|
||||
;; This is messy because the diary entry may apply, but the date on which it
|
||||
|
|
|
@ -346,7 +346,7 @@ If SUNRISE-FLAG is non-nil, only calculate longitude and inclination."
|
|||
(solar-cosine-degrees (* 2 l)))
|
||||
(* -0.5 y y (solar-sin-degrees (* 4 l)))
|
||||
(* -1.25 ecc ecc (solar-sin-degrees (* 2 m)))))
|
||||
3.1415926535))))
|
||||
float-pi))))
|
||||
(list app i time-eq nut)))
|
||||
|
||||
(defun solar-ephemeris-correction (year)
|
||||
|
|
|
@ -5443,7 +5443,7 @@ dynamically create item insertion commands.")
|
|||
The list consists of item insertion parameters that can be passed
|
||||
as insertion command arguments in fixed positions. If a position
|
||||
in the list is not occupied by the corresponding parameter, it is
|
||||
occupied by `nil'."
|
||||
occupied by nil."
|
||||
(let* ((arg (list (car todo-insert-item--args)))
|
||||
(args (nconc (cdr todo-insert-item--args)
|
||||
(list (car (todo-insert-item--argsleft
|
||||
|
|
|
@ -86,7 +86,7 @@ into memory.")
|
|||
;; If the thing to match is stored in a config file.
|
||||
((stringp fc)
|
||||
(when (file-exists-p fc)
|
||||
(let ((matchstring
|
||||
(let ((matchstring
|
||||
(if (slot-boundp dirmatch 'configdatastash)
|
||||
(oref dirmatch configdatastash)
|
||||
nil)))
|
||||
|
@ -123,7 +123,7 @@ into memory.")
|
|||
(not (= (match-end 0) (length file))))
|
||||
)
|
||||
)))
|
||||
|
||||
|
||||
;; Add new matches here
|
||||
;; ((stringp somenewslot ...)
|
||||
;; )
|
||||
|
@ -155,9 +155,9 @@ into memory.")
|
|||
Specifying this matcher object will allow EDE to perform a complex
|
||||
check without loading the project.
|
||||
|
||||
NOTE: If you use dirmatch, you may need to set :root-only to `nil'.
|
||||
NOTE: If you use dirmatch, you may need to set :root-only to nil.
|
||||
While it may be a root based project, all subdirs will happen to return
|
||||
true for the dirmatch, so for scanning purposes, set it to `nil'.")
|
||||
true for the dirmatch, so for scanning purposes, set it to nil.")
|
||||
(proj-root :initarg :proj-root
|
||||
:type function
|
||||
:documentation "A function symbol to call for the project root.
|
||||
|
@ -280,7 +280,7 @@ added. Possible values are:
|
|||
(if f
|
||||
(and f (file-exists-p f))
|
||||
(let ((dirmatch (oref this proj-root-dirmatch)))
|
||||
(cond
|
||||
(cond
|
||||
((stringp dirmatch)
|
||||
nil) ; <- do something here - maybe obsolete the option?
|
||||
((ede-project-autoload-dirmatch-p dirmatch)
|
||||
|
@ -312,7 +312,7 @@ NOTE: Do not call this - it should only be called from `ede-load-project-file'."
|
|||
|
||||
|
||||
|
||||
;;; -------- Old Methods
|
||||
;;; -------- Old Methods
|
||||
;; See if we can do without them.
|
||||
|
||||
;; @FIXME - delete from loaddefs to remove this.
|
||||
|
|
|
@ -41,7 +41,7 @@
|
|||
(declare-function ede-locate-flush-hash "ede/locate")
|
||||
|
||||
(defvar ede--disable-inode nil
|
||||
"Set to 't' to simulate systems w/out inode support.")
|
||||
"Set to t to simulate systems w/out inode support.")
|
||||
|
||||
;;; Code:
|
||||
;;;###autoload
|
||||
|
|
|
@ -207,7 +207,7 @@ The resulting bookmark is then sorted within the ring."
|
|||
)))
|
||||
|
||||
(defun semantic-mrub-cache-flush-fcn ()
|
||||
"Function called in the `semantic-before-toplevel-cache-flush-hook`.
|
||||
"Function called in the `semantic-before-toplevel-cache-flush-hook'.
|
||||
Cause tags in the ring to become unlinked."
|
||||
(let* ((ring (oref semantic-mru-bookmark-ring ring))
|
||||
(len (ring-length ring))
|
||||
|
|
|
@ -351,7 +351,7 @@ until the next command is executed."
|
|||
(setq semantic-symref-recently-opened-buffers nil)
|
||||
(remove-hook 'post-command-hook 'semantic-symref-cleanup-recent-buffers-fcn)
|
||||
)
|
||||
|
||||
|
||||
(cl-defmethod semantic-symref-result-get-tags ((result semantic-symref-result)
|
||||
&optional open-buffers)
|
||||
"Get the list of tags from the symref result RESULT.
|
||||
|
@ -512,7 +512,7 @@ buffers that were opened."
|
|||
(searchtype :initarg :searchtype
|
||||
:type symbol
|
||||
:documentation "The type of search to do.
|
||||
Values could be `symbol, `regexp, 'tagname, or 'completion.")
|
||||
Values could be 'symbol, 'regexp, 'tagname, or 'completion.")
|
||||
(searchscope :initarg :searchscope
|
||||
:type symbol
|
||||
:documentation
|
||||
|
|
|
@ -621,7 +621,7 @@ buffer, the originating buffer file name is kept in the `:filename'
|
|||
property of the copied tag.
|
||||
If KEEP-FILE is a string, and the originating buffer is NOT available,
|
||||
then KEEP-FILE is stored on the `:filename' property.
|
||||
This runs the tag hook `unlink-copy-hook`."
|
||||
This runs the tag hook `unlink-copy-hook'."
|
||||
;; Right now, TAG is a list.
|
||||
(let ((copy (semantic-tag-clone tag name)))
|
||||
|
||||
|
@ -958,7 +958,7 @@ Return nil if TAG is not of class 'alias."
|
|||
"Return a list of components for TAG.
|
||||
A Component is a part of TAG which itself may be a TAG.
|
||||
Examples include the elements of a structure in a
|
||||
tag of class `type, or the list of arguments to a
|
||||
tag of class 'type, or the list of arguments to a
|
||||
tag of class 'function."
|
||||
)
|
||||
|
||||
|
|
|
@ -84,7 +84,7 @@ HEADER - Shown section if in a header file."
|
|||
;;;###autoload
|
||||
(defun srecode-semantic-handle-:cpp (dict)
|
||||
"Add macros into the dictionary DICT based on the current c file.
|
||||
Calls `srecode-semantic-handle-:c.
|
||||
Calls `srecode-semantic-handle-:c'.
|
||||
Also adds the following:
|
||||
- nothing -"
|
||||
(srecode-semantic-handle-:c dict)
|
||||
|
|
|
@ -241,11 +241,11 @@ This is to take advantage of TeXinfo's markup symbols."
|
|||
For instances where CLASS is the class being referenced, do not Xref
|
||||
that class.
|
||||
|
||||
`function' => @dfn{function}
|
||||
`variable' => @code{variable}
|
||||
`class' => @code{class} @xref{class}
|
||||
`unknown' => @code{unknown}
|
||||
\"text\" => ``text''
|
||||
function => @dfn{function}
|
||||
variable => @code{variable}
|
||||
class => @code{class} @xref{class}
|
||||
unknown => @code{unknown}
|
||||
\" text \" => `` text ''
|
||||
'quoteme => @code{quoteme}
|
||||
non-nil => non-@code{nil}
|
||||
t => @code{t}
|
||||
|
|
|
@ -1965,7 +1965,7 @@ Each entry is of the form (STATE MAGIC FACE ITEM-DESC [ GROUP-DESC ]), where
|
|||
|
||||
STATE is one of the following symbols:
|
||||
|
||||
`nil'
|
||||
nil
|
||||
For internal use, should never occur.
|
||||
`unknown'
|
||||
For internal use, should never occur.
|
||||
|
|
|
@ -2257,7 +2257,7 @@ of marked files. If KILL-ROOT is non-nil, kill DIRNAME as well."
|
|||
;; components are string-lessp.
|
||||
;; Thus ("/usr/" "/usr/bin") and ("/usr/a/" "/usr/b/") are tree-lessp.
|
||||
;; string-lessp could arguably be replaced by file-newer-than-file-p
|
||||
;; if dired-actual-switches contained `t'.
|
||||
;; if dired-actual-switches contained t.
|
||||
(setq dir1 (file-name-as-directory dir1)
|
||||
dir2 (file-name-as-directory dir2))
|
||||
(let ((components-1 (dired-split "/" dir1))
|
||||
|
|
|
@ -3889,7 +3889,7 @@ Ask means pop up a menu for the user to select one of copy, move or link."
|
|||
|
||||
;;; Start of automatically extracted autoloads.
|
||||
|
||||
;;;### (autoloads nil "dired-aux" "dired-aux.el" "8820677763cb69eef827e38b86d35f47")
|
||||
;;;### (autoloads nil "dired-aux" "dired-aux.el" "45867cb96abef86d29a9850ee2113cf2")
|
||||
;;; Generated autoloads from dired-aux.el
|
||||
|
||||
(autoload 'dired-diff "dired-aux" "\
|
||||
|
|
|
@ -51,7 +51,7 @@
|
|||
;; which matches your prompt up to and including the pathname part.
|
||||
;; The second is a number which tells which regular expression group to
|
||||
;; match to extract only the pathname. If you use a multi-line prompt,
|
||||
;; add 't' as a third element. Note that some of the functions in
|
||||
;; add t as a third element. Note that some of the functions in
|
||||
;; 'comint.el' assume a single-line prompt (eg, comint-bol).
|
||||
;;
|
||||
;; Determining this information may take some experimentation. Using
|
||||
|
|
|
@ -2149,7 +2149,6 @@ the cache-id will clear the cache."
|
|||
|
||||
(defun ad-arglist (definition)
|
||||
"Return the argument list of DEFINITION."
|
||||
(require 'help-fns)
|
||||
(help-function-arglist
|
||||
(if (or (macrop definition) (ad-advice-p definition))
|
||||
(cdr definition)
|
||||
|
@ -2474,8 +2473,6 @@ Example: `(ad-map-arglists '(a &rest args) '(w x y z))' will return
|
|||
(capitalize (symbol-name class))
|
||||
(ad-advice-name advice)))))))
|
||||
|
||||
(require 'help-fns) ;For help-split-fundoc and help-add-fundoc-usage.
|
||||
|
||||
(defun ad--make-advised-docstring (function &optional style)
|
||||
"Construct a documentation string for the advised FUNCTION.
|
||||
Concatenate the original documentation with the documentation
|
||||
|
|
|
@ -32,7 +32,6 @@
|
|||
|
||||
(require 'lisp-mode) ;for `doc-string-elt' properties.
|
||||
(require 'lisp-mnt)
|
||||
(require 'help-fns) ;for help-add-fundoc-usage.
|
||||
(eval-when-compile (require 'cl-lib))
|
||||
|
||||
(defvar generated-autoload-file nil
|
||||
|
|
|
@ -566,7 +566,7 @@
|
|||
(cons fn args)))))))
|
||||
|
||||
(defun byte-optimize-all-constp (list)
|
||||
"Non-nil if all elements of LIST satisfy `macroexp-const-p"
|
||||
"Non-nil if all elements of LIST satisfy `macroexp-const-p'."
|
||||
(let ((constant t))
|
||||
(while (and list constant)
|
||||
(unless (macroexp-const-p (car list))
|
||||
|
@ -1225,7 +1225,7 @@
|
|||
window-left-child window-left-column window-margins window-minibuffer-p
|
||||
window-next-buffers window-next-sibling window-new-normal
|
||||
window-new-total window-normal-size window-parameter window-parameters
|
||||
window-parent window-pixel-edges window-point window-prev-buffers
|
||||
window-parent window-pixel-edges window-point window-prev-buffers
|
||||
window-prev-sibling window-redisplay-end-trigger window-scroll-bars
|
||||
window-start window-text-height window-top-child window-top-line
|
||||
window-total-height window-total-width window-use-time window-vscroll
|
||||
|
|
|
@ -348,7 +348,7 @@ else the global value will be modified."
|
|||
;;;###autoload
|
||||
(defun byte-compile-enable-warning (warning)
|
||||
"Change `byte-compile-warnings' to enable WARNING.
|
||||
If `byte-compile-warnings' is `t', do nothing. Otherwise, if the
|
||||
If `byte-compile-warnings' is t, do nothing. Otherwise, if the
|
||||
first element is `not', remove WARNING, else add it.
|
||||
Normally you should let-bind `byte-compile-warnings' before calling this,
|
||||
else the global value will be modified."
|
||||
|
|
|
@ -98,7 +98,7 @@ don't know how to recognize (e.g. some macros)."
|
|||
(stringp (setq fnfile (nth 2 form)))
|
||||
(setq fnfile (check-declare-locate fnfile
|
||||
(expand-file-name file)))
|
||||
;; Use `t' to distinguish unspecified arglist from empty one.
|
||||
;; Use t to distinguish unspecified arglist from empty one.
|
||||
(or (eq t (setq arglist (if (> len 3)
|
||||
(nth 3 form)
|
||||
t)))
|
||||
|
|
|
@ -1615,8 +1615,8 @@ function,command,variable,option or symbol." ms1))))))
|
|||
(or
|
||||
;; * The documentation string for a variable that is a
|
||||
;; yes-or-no flag should start with words such as Non-nil
|
||||
;; means..., to make it clear that all non-`nil' values are
|
||||
;; equivalent and indicate explicitly what `nil' and non-`nil'
|
||||
;; means..., to make it clear that all non-nil values are
|
||||
;; equivalent and indicate explicitly what nil and non-nil
|
||||
;; mean.
|
||||
;; * If a user option variable records a true-or-false
|
||||
;; condition, give it a name that ends in `-flag'.
|
||||
|
@ -2405,7 +2405,7 @@ Argument END is the maximum bounds to search in."
|
|||
According to the documentation for the function `error', the error list
|
||||
should not end with a period, and should start with a capital letter.
|
||||
The function `y-or-n-p' has similar constraints.
|
||||
Argument TYPE specifies the type of question, such as `error or `y-or-n-p."
|
||||
Argument TYPE specifies the type of question, such as `error' or `y-or-n-p'."
|
||||
;; If type is nil, then attempt to derive it.
|
||||
(if (not type)
|
||||
(save-excursion
|
||||
|
@ -2613,9 +2613,12 @@ function called to create the messages."
|
|||
(count-lines (point-min) (or point (point-min))))
|
||||
": " msg)))
|
||||
(with-current-buffer (get-buffer checkdoc-diagnostic-buffer)
|
||||
(goto-char (point-max))
|
||||
(let ((inhibit-read-only t))
|
||||
(apply #'insert text)))))
|
||||
(let ((inhibit-read-only t)
|
||||
(pt (point-max)))
|
||||
(goto-char pt)
|
||||
(apply #'insert text)
|
||||
(when noninteractive
|
||||
(warn (buffer-substring pt (point-max))))))))
|
||||
|
||||
(defun checkdoc-show-diagnostics ()
|
||||
"Display the checkdoc diagnostic buffer in a temporary window."
|
||||
|
|
|
@ -237,14 +237,19 @@ BODY, if present, is used as the body of a default method.
|
|||
(`(,spec-args . ,_) (cl--generic-split-args args))
|
||||
(mandatory (mapcar #'car spec-args))
|
||||
(apo (assq :argument-precedence-order options)))
|
||||
(setf (cl--generic-dispatches generic) nil)
|
||||
(unless (fboundp name)
|
||||
;; If the generic function was fmakunbound, throw away previous methods.
|
||||
(setf (cl--generic-dispatches generic) nil)
|
||||
(setf (cl--generic-method-table generic) nil))
|
||||
(when apo
|
||||
(dolist (arg (cdr apo))
|
||||
(let ((pos (memq arg mandatory)))
|
||||
(unless pos (error "%S is not a mandatory argument" arg))
|
||||
(push (list (- (length mandatory) (length pos)))
|
||||
(cl--generic-dispatches generic)))))
|
||||
(setf (cl--generic-method-table generic) nil)
|
||||
(let* ((argno (- (length mandatory) (length pos)))
|
||||
(dispatches (cl--generic-dispatches generic))
|
||||
(dispatch (or (assq argno dispatches) (list argno))))
|
||||
(setf (cl--generic-dispatches generic)
|
||||
(cons dispatch (delq dispatch dispatches)))))))
|
||||
(setf (cl--generic-options generic) options)
|
||||
(cl--generic-make-function generic)))
|
||||
|
||||
|
@ -438,16 +443,14 @@ which case this method will be invoked when the argument is `eql' to VAL.
|
|||
;; the generic function.
|
||||
current-load-list)
|
||||
;; For aliases, cl--generic-name gives us the actual name.
|
||||
(funcall
|
||||
(if purify-flag
|
||||
;; BEWARE! Don't purify this function definition, since that leads
|
||||
;; to memory corruption if the hash-tables it holds are modified
|
||||
;; (the GC doesn't trace those pointers).
|
||||
#'fset
|
||||
;; But do use `defalias' in the normal case, so that it interacts
|
||||
;; properly with nadvice, e.g. for tracing/debug-on-entry.
|
||||
#'defalias)
|
||||
(cl--generic-name generic) gfun))))
|
||||
(let ((purify-flag
|
||||
;; BEWARE! Don't purify this function definition, since that leads
|
||||
;; to memory corruption if the hash-tables it holds are modified
|
||||
;; (the GC doesn't trace those pointers).
|
||||
nil))
|
||||
;; But do use `defalias', so that it interacts properly with nadvice,
|
||||
;; e.g. for tracing/debug-on-entry.
|
||||
(defalias (cl--generic-name generic) gfun)))))
|
||||
|
||||
(defmacro cl--generic-with-memoization (place &rest code)
|
||||
(declare (indent 1) (debug t))
|
||||
|
@ -525,7 +528,7 @@ which case this method will be invoked when the argument is `eql' to VAL.
|
|||
(progn
|
||||
(while (and dispatches
|
||||
(let ((x (nth 1 (car dispatches))))
|
||||
;; No need to dispatch for `t' specializers.
|
||||
;; No need to dispatch for t specializers.
|
||||
(or (null x) (equal x cl--generic-t-generalizer))))
|
||||
(setq dispatches (cdr dispatches)))
|
||||
(pop dispatches))))
|
||||
|
@ -701,10 +704,15 @@ methods.")
|
|||
#'cl--generic-standard-method-combination)
|
||||
|
||||
(cl-defmethod cl-generic-generalizers (specializer)
|
||||
"Support for the catch-all `t' specializer."
|
||||
"Support for the catch-all t specializer."
|
||||
(if (eq specializer t) (list cl--generic-t-generalizer)
|
||||
(error "Unknown specializer %S" specializer)))
|
||||
|
||||
(eval-when-compile
|
||||
;; This macro is brittle and only really important in order to be
|
||||
;; able to preload cl-generic without also preloading the byte-compiler,
|
||||
;; So we use `eval-when-compile' so as not keep it available longer than
|
||||
;; strictly needed.
|
||||
(defmacro cl--generic-prefill-dispatchers (arg-or-context specializer)
|
||||
(unless (integerp arg-or-context)
|
||||
(setq arg-or-context `(&context . ,arg-or-context)))
|
||||
|
@ -722,7 +730,7 @@ methods.")
|
|||
,@(cl-generic-generalizers ',specializer)
|
||||
,cl--generic-t-generalizer)))
|
||||
;; (message "Prefilling for %S with \n%S" dispatch ',fun)
|
||||
(puthash dispatch ',fun cl--generic-dispatchers))))
|
||||
(puthash dispatch ',fun cl--generic-dispatchers)))))
|
||||
|
||||
(cl-defmethod cl-generic-combine-methods (generic methods)
|
||||
"Standard support for :after, :before, :around, and `:extra NAME' qualifiers."
|
||||
|
@ -796,8 +804,6 @@ Can only be used from within the lexical body of a primary or around method."
|
|||
specializers qualifiers
|
||||
(cl--generic-method-table (cl--generic generic)))))
|
||||
|
||||
(defalias 'cl-method-qualifiers 'cl--generic-method-qualifiers)
|
||||
|
||||
;;; Add support for describe-function
|
||||
|
||||
(defun cl--generic-search-method (met-name)
|
||||
|
@ -850,6 +856,9 @@ Can only be used from within the lexical body of a primary or around method."
|
|||
|
||||
(add-hook 'help-fns-describe-function-functions #'cl--generic-describe)
|
||||
(defun cl--generic-describe (function)
|
||||
;; Supposedly this is called from help-fns, so help-fns should be loaded at
|
||||
;; this point.
|
||||
(declare-function help-fns-short-filename "help-fns" (filename))
|
||||
(let ((generic (if (symbolp function) (cl--generic function))))
|
||||
(when generic
|
||||
(require 'help-mode) ;Needed for `help-function-def' button!
|
||||
|
|
|
@ -140,13 +140,13 @@ If non-nil, alignment is done with the first parameter
|
|||
|
||||
(defcustom lisp-indent-backquote-substitution-mode t
|
||||
"How to indent substitutions in backquotes.
|
||||
If `t', the default, indent substituted forms normally.
|
||||
If `nil', do not apply special indentation rule to substituted
|
||||
If t, the default, indent substituted forms normally.
|
||||
If nil, do not apply special indentation rule to substituted
|
||||
forms. If `corrected', subtract the `,' or `,@' from the form
|
||||
column, indenting as if this character sequence were not present.
|
||||
In any case, do not backtrack beyond a backquote substitution.
|
||||
|
||||
Until Emacs 25.1, the `nil' behavior was hard-wired."
|
||||
Until Emacs 25.1, the nil behavior was hard-wired."
|
||||
:version "25.1"
|
||||
:type '(choice (const corrected) (const nil) (const t))
|
||||
:group 'lisp-indent)
|
||||
|
|
|
@ -294,7 +294,6 @@ FORM is of the form (ARGS . BODY)."
|
|||
;; apparently harmless computation, so it should not
|
||||
;; touch the match-data.
|
||||
(save-match-data
|
||||
(require 'help-fns)
|
||||
(cons (help-add-fundoc-usage
|
||||
(if (stringp (car header)) (pop header))
|
||||
;; Be careful with make-symbol and (back)quote,
|
||||
|
|
|
@ -54,7 +54,7 @@ the middle is discarded, and just the beginning and end are displayed."
|
|||
The value affects the behavior of operations on any window
|
||||
previously showing the debugger buffer.
|
||||
|
||||
`nil' means that if its window is not deleted when exiting the
|
||||
nil means that if its window is not deleted when exiting the
|
||||
debugger, invoking `switch-to-prev-buffer' will usually show
|
||||
the debugger buffer again.
|
||||
|
||||
|
|
|
@ -600,7 +600,7 @@ list of a symbol.")
|
|||
(defun edebug-get-form-data-entry (pnt &optional end-point)
|
||||
;; Find the edebug form data entry which is closest to PNT.
|
||||
;; If END-POINT is supplied, match must be exact.
|
||||
;; Return `nil' if none found.
|
||||
;; Return nil if none found.
|
||||
(let ((rest edebug-form-data)
|
||||
closest-entry
|
||||
(closest-dist 999999)) ;; Need maxint here.
|
||||
|
|
|
@ -46,8 +46,6 @@
|
|||
|
||||
;;; Code:
|
||||
|
||||
(require 'help-fns)
|
||||
|
||||
(defgroup elint nil
|
||||
"Linting for Emacs Lisp."
|
||||
:prefix "elint-"
|
||||
|
|
|
@ -90,7 +90,7 @@
|
|||
;; Change this function to use `cl-gensym' if you want the generated
|
||||
;; code to be easier to read and debug.
|
||||
;; (cl-gensym (apply #'format fmt args))
|
||||
`(make-symbol ,fmt))
|
||||
`(progn (ignore ,@args) (make-symbol ,fmt)))
|
||||
|
||||
(defvar cps--dynamic-wrappers '(identity)
|
||||
"List of transformer functions to apply to atomic forms we
|
||||
|
@ -308,14 +308,14 @@ don't yield.")
|
|||
collect (if (symbolp binding)
|
||||
(list binding nil)
|
||||
binding)))
|
||||
(temps (cl-loop for (var value-form) in bindings
|
||||
(temps (cl-loop for (var _value-form) in bindings
|
||||
collect (cps--add-binding var))))
|
||||
(cps--transform-1
|
||||
`(let* ,(append
|
||||
(cl-loop for (var value-form) in bindings
|
||||
(cl-loop for (_var value-form) in bindings
|
||||
for temp in temps
|
||||
collect (list temp value-form))
|
||||
(cl-loop for (var binding) in bindings
|
||||
(cl-loop for (var _binding) in bindings
|
||||
for temp in temps
|
||||
collect (list var temp)))
|
||||
,@body)
|
||||
|
@ -704,7 +704,7 @@ of values. Callers can retrieve each value using `iter-next'."
|
|||
|
||||
(defun iter-next (iterator &optional yield-result)
|
||||
"Extract a value from an iterator.
|
||||
YIELD-RESULT becomes the return value of `iter-yield` in the
|
||||
YIELD-RESULT becomes the return value of `iter-yield' in the
|
||||
context of the generator.
|
||||
|
||||
This routine raises the `iter-end-of-sequence' condition if the
|
||||
|
|
|
@ -229,248 +229,246 @@
|
|||
(match-beginning 0)))))
|
||||
(throw 'found t))))))
|
||||
|
||||
(pcase-let
|
||||
((`(,vdefs ,tdefs
|
||||
,el-defs-re ,cl-defs-re
|
||||
,el-kws-re ,cl-kws-re
|
||||
,el-errs-re ,cl-errs-re)
|
||||
(eval-when-compile
|
||||
(let ((lisp-fdefs '("defmacro" "defsubst" "defun"))
|
||||
(lisp-vdefs '("defvar"))
|
||||
(lisp-kw '("cond" "if" "while" "let" "let*" "progn" "prog1"
|
||||
"prog2" "lambda" "unwind-protect" "condition-case"
|
||||
"when" "unless" "with-output-to-string"
|
||||
"ignore-errors" "dotimes" "dolist" "declare"))
|
||||
(lisp-errs '("warn" "error" "signal"))
|
||||
;; Elisp constructs. Now they are update dynamically
|
||||
;; from obarray but they are also used for setting up
|
||||
;; the keywords for Common Lisp.
|
||||
(el-fdefs '("define-advice" "defadvice" "defalias"
|
||||
"define-derived-mode" "define-minor-mode"
|
||||
"define-generic-mode" "define-global-minor-mode"
|
||||
"define-globalized-minor-mode" "define-skeleton"
|
||||
"define-widget"))
|
||||
(el-vdefs '("defconst" "defcustom" "defvaralias" "defvar-local"
|
||||
"defface"))
|
||||
(el-tdefs '("defgroup" "deftheme"))
|
||||
(el-kw '("while-no-input" "letrec" "pcase" "pcase-exhaustive"
|
||||
"pcase-lambda" "pcase-let" "pcase-let*" "save-restriction"
|
||||
"save-excursion" "save-selected-window"
|
||||
;; "eval-after-load" "eval-next-after-load"
|
||||
"save-window-excursion" "save-current-buffer"
|
||||
"save-match-data" "combine-after-change-calls"
|
||||
"condition-case-unless-debug" "track-mouse"
|
||||
"eval-and-compile" "eval-when-compile" "with-case-table"
|
||||
"with-category-table" "with-coding-priority"
|
||||
"with-current-buffer" "with-demoted-errors"
|
||||
"with-electric-help" "with-eval-after-load"
|
||||
"with-file-modes"
|
||||
"with-local-quit" "with-no-warnings"
|
||||
"with-output-to-temp-buffer" "with-selected-window"
|
||||
"with-selected-frame" "with-silent-modifications"
|
||||
"with-syntax-table" "with-temp-buffer" "with-temp-file"
|
||||
"with-temp-message" "with-timeout"
|
||||
"with-timeout-handler"))
|
||||
(el-errs '("user-error"))
|
||||
;; Common-Lisp constructs supported by EIEIO. FIXME: namespace.
|
||||
(eieio-fdefs '("defgeneric" "defmethod"))
|
||||
(eieio-tdefs '("defclass"))
|
||||
(eieio-kw '("with-slots"))
|
||||
;; Common-Lisp constructs supported by cl-lib.
|
||||
(cl-lib-fdefs '("defmacro" "defsubst" "defun" "defmethod"))
|
||||
(cl-lib-tdefs '("defstruct" "deftype"))
|
||||
(cl-lib-kw '("progv" "eval-when" "case" "ecase" "typecase"
|
||||
"etypecase" "ccase" "ctypecase" "loop" "do" "do*"
|
||||
"the" "locally" "proclaim" "declaim" "letf" "go"
|
||||
;; "lexical-let" "lexical-let*"
|
||||
"symbol-macrolet" "flet" "flet*" "destructuring-bind"
|
||||
"labels" "macrolet" "tagbody" "multiple-value-bind"
|
||||
"block" "return" "return-from"))
|
||||
(cl-lib-errs '("assert" "check-type"))
|
||||
;; Common-Lisp constructs not supported by cl-lib.
|
||||
(cl-fdefs '("defsetf" "define-method-combination"
|
||||
"define-condition" "define-setf-expander"
|
||||
;; "define-function"??
|
||||
"define-compiler-macro" "define-modify-macro"))
|
||||
(cl-vdefs '("define-symbol-macro" "defconstant" "defparameter"))
|
||||
(cl-tdefs '("defpackage" "defstruct" "deftype"))
|
||||
(cl-kw '("prog" "prog*" "handler-case" "handler-bind"
|
||||
"in-package" "restart-case" ;; "inline"
|
||||
"restart-bind" "break" "multiple-value-prog1"
|
||||
"compiler-let" "with-accessors" "with-compilation-unit"
|
||||
"with-condition-restarts" "with-hash-table-iterator"
|
||||
"with-input-from-string" "with-open-file"
|
||||
"with-open-stream" "with-package-iterator"
|
||||
"with-simple-restart" "with-standard-io-syntax"))
|
||||
(cl-errs '("abort" "cerror")))
|
||||
(let-when-compile
|
||||
((lisp-fdefs '("defmacro" "defsubst" "defun"))
|
||||
(lisp-vdefs '("defvar"))
|
||||
(lisp-kw '("cond" "if" "while" "let" "let*" "progn" "prog1"
|
||||
"prog2" "lambda" "unwind-protect" "condition-case"
|
||||
"when" "unless" "with-output-to-string"
|
||||
"ignore-errors" "dotimes" "dolist" "declare"))
|
||||
(lisp-errs '("warn" "error" "signal"))
|
||||
;; Elisp constructs. Now they are update dynamically
|
||||
;; from obarray but they are also used for setting up
|
||||
;; the keywords for Common Lisp.
|
||||
(el-fdefs '("define-advice" "defadvice" "defalias"
|
||||
"define-derived-mode" "define-minor-mode"
|
||||
"define-generic-mode" "define-global-minor-mode"
|
||||
"define-globalized-minor-mode" "define-skeleton"
|
||||
"define-widget"))
|
||||
(el-vdefs '("defconst" "defcustom" "defvaralias" "defvar-local"
|
||||
"defface"))
|
||||
(el-tdefs '("defgroup" "deftheme"))
|
||||
(el-kw '("while-no-input" "letrec" "pcase" "pcase-exhaustive"
|
||||
"pcase-lambda" "pcase-let" "pcase-let*" "save-restriction"
|
||||
"save-excursion" "save-selected-window"
|
||||
;; "eval-after-load" "eval-next-after-load"
|
||||
"save-window-excursion" "save-current-buffer"
|
||||
"save-match-data" "combine-after-change-calls"
|
||||
"condition-case-unless-debug" "track-mouse"
|
||||
"eval-and-compile" "eval-when-compile" "with-case-table"
|
||||
"with-category-table" "with-coding-priority"
|
||||
"with-current-buffer" "with-demoted-errors"
|
||||
"with-electric-help" "with-eval-after-load"
|
||||
"with-file-modes"
|
||||
"with-local-quit" "with-no-warnings"
|
||||
"with-output-to-temp-buffer" "with-selected-window"
|
||||
"with-selected-frame" "with-silent-modifications"
|
||||
"with-syntax-table" "with-temp-buffer" "with-temp-file"
|
||||
"with-temp-message" "with-timeout"
|
||||
"with-timeout-handler"))
|
||||
(el-errs '("user-error"))
|
||||
;; Common-Lisp constructs supported by EIEIO. FIXME: namespace.
|
||||
(eieio-fdefs '("defgeneric" "defmethod"))
|
||||
(eieio-tdefs '("defclass"))
|
||||
(eieio-kw '("with-slots"))
|
||||
;; Common-Lisp constructs supported by cl-lib.
|
||||
(cl-lib-fdefs '("defmacro" "defsubst" "defun" "defmethod"))
|
||||
(cl-lib-tdefs '("defstruct" "deftype"))
|
||||
(cl-lib-kw '("progv" "eval-when" "case" "ecase" "typecase"
|
||||
"etypecase" "ccase" "ctypecase" "loop" "do" "do*"
|
||||
"the" "locally" "proclaim" "declaim" "letf" "go"
|
||||
;; "lexical-let" "lexical-let*"
|
||||
"symbol-macrolet" "flet" "flet*" "destructuring-bind"
|
||||
"labels" "macrolet" "tagbody" "multiple-value-bind"
|
||||
"block" "return" "return-from"))
|
||||
(cl-lib-errs '("assert" "check-type"))
|
||||
;; Common-Lisp constructs not supported by cl-lib.
|
||||
(cl-fdefs '("defsetf" "define-method-combination"
|
||||
"define-condition" "define-setf-expander"
|
||||
;; "define-function"??
|
||||
"define-compiler-macro" "define-modify-macro"))
|
||||
(cl-vdefs '("define-symbol-macro" "defconstant" "defparameter"))
|
||||
(cl-tdefs '("defpackage" "defstruct" "deftype"))
|
||||
(cl-kw '("prog" "prog*" "handler-case" "handler-bind"
|
||||
"in-package" "restart-case" ;; "inline"
|
||||
"restart-bind" "break" "multiple-value-prog1"
|
||||
"compiler-let" "with-accessors" "with-compilation-unit"
|
||||
"with-condition-restarts" "with-hash-table-iterator"
|
||||
"with-input-from-string" "with-open-file"
|
||||
"with-open-stream" "with-package-iterator"
|
||||
"with-simple-restart" "with-standard-io-syntax"))
|
||||
(cl-errs '("abort" "cerror")))
|
||||
(let ((vdefs (eval-when-compile
|
||||
(append lisp-vdefs el-vdefs cl-vdefs)))
|
||||
(tdefs (eval-when-compile
|
||||
(append el-tdefs eieio-tdefs cl-tdefs cl-lib-tdefs
|
||||
(mapcar (lambda (s) (concat "cl-" s)) cl-lib-tdefs))))
|
||||
;; Elisp and Common Lisp definers.
|
||||
(el-defs-re (eval-when-compile
|
||||
(regexp-opt (append lisp-fdefs lisp-vdefs
|
||||
el-fdefs el-vdefs el-tdefs
|
||||
(mapcar (lambda (s) (concat "cl-" s))
|
||||
(append cl-lib-fdefs cl-lib-tdefs))
|
||||
eieio-fdefs eieio-tdefs)
|
||||
t)))
|
||||
(cl-defs-re (eval-when-compile
|
||||
(regexp-opt (append lisp-fdefs lisp-vdefs
|
||||
cl-lib-fdefs cl-lib-tdefs
|
||||
eieio-fdefs eieio-tdefs
|
||||
cl-fdefs cl-vdefs cl-tdefs)
|
||||
t)))
|
||||
;; Elisp and Common Lisp keywords.
|
||||
;; (el-kws-re (eval-when-compile
|
||||
;; (regexp-opt (append
|
||||
;; lisp-kw el-kw eieio-kw
|
||||
;; (cons "go" (mapcar (lambda (s) (concat "cl-" s))
|
||||
;; (remove "go" cl-lib-kw))))
|
||||
;; t)))
|
||||
(cl-kws-re (eval-when-compile
|
||||
(regexp-opt (append lisp-kw cl-kw eieio-kw cl-lib-kw)
|
||||
t)))
|
||||
;; Elisp and Common Lisp "errors".
|
||||
(el-errs-re (eval-when-compile
|
||||
(regexp-opt (append (mapcar (lambda (s) (concat "cl-" s))
|
||||
cl-lib-errs)
|
||||
lisp-errs el-errs)
|
||||
t)))
|
||||
(cl-errs-re (eval-when-compile
|
||||
(regexp-opt (append lisp-errs cl-lib-errs cl-errs) t))))
|
||||
(dolist (v vdefs)
|
||||
(put (intern v) 'lisp-define-type 'var))
|
||||
(dolist (v tdefs)
|
||||
(put (intern v) 'lisp-define-type 'type))
|
||||
|
||||
(list (append lisp-vdefs el-vdefs cl-vdefs)
|
||||
(append el-tdefs eieio-tdefs cl-tdefs cl-lib-tdefs
|
||||
(mapcar (lambda (s) (concat "cl-" s)) cl-lib-tdefs))
|
||||
(define-obsolete-variable-alias 'lisp-font-lock-keywords-1
|
||||
'lisp-el-font-lock-keywords-1 "24.4")
|
||||
(defconst lisp-el-font-lock-keywords-1
|
||||
`( ;; Definitions.
|
||||
(,(concat "(" el-defs-re "\\_>"
|
||||
;; Any whitespace and defined object.
|
||||
"[ \t']*"
|
||||
"\\(([ \t']*\\)?" ;; An opening paren.
|
||||
"\\(\\(setf\\)[ \t]+\\(?:\\sw\\|\\s_\\)+\\|\\(?:\\sw\\|\\s_\\)+\\)?")
|
||||
(1 font-lock-keyword-face)
|
||||
(3 (let ((type (get (intern-soft (match-string 1)) 'lisp-define-type)))
|
||||
(cond ((eq type 'var) font-lock-variable-name-face)
|
||||
((eq type 'type) font-lock-type-face)
|
||||
;; If match-string 2 is non-nil, we encountered a
|
||||
;; form like (defalias (intern (concat s "-p"))),
|
||||
;; unless match-string 4 is also there. Then its a
|
||||
;; defmethod with (setf foo) as name.
|
||||
((or (not (match-string 2)) ;; Normal defun.
|
||||
(and (match-string 2) ;; Setf method.
|
||||
(match-string 4))) font-lock-function-name-face)))
|
||||
nil t))
|
||||
;; Emacs Lisp autoload cookies. Supports the slightly different
|
||||
;; forms used by mh-e, calendar, etc.
|
||||
("^;;;###\\([-a-z]*autoload\\)" 1 font-lock-warning-face prepend))
|
||||
"Subdued level highlighting for Emacs Lisp mode.")
|
||||
|
||||
;; Elisp and Common Lisp definers.
|
||||
(regexp-opt (append lisp-fdefs lisp-vdefs
|
||||
el-fdefs el-vdefs el-tdefs
|
||||
(mapcar (lambda (s) (concat "cl-" s))
|
||||
(append cl-lib-fdefs cl-lib-tdefs))
|
||||
eieio-fdefs eieio-tdefs)
|
||||
t)
|
||||
(regexp-opt (append lisp-fdefs lisp-vdefs
|
||||
cl-lib-fdefs cl-lib-tdefs
|
||||
eieio-fdefs eieio-tdefs
|
||||
cl-fdefs cl-vdefs cl-tdefs)
|
||||
t)
|
||||
(defconst lisp-cl-font-lock-keywords-1
|
||||
`( ;; Definitions.
|
||||
(,(concat "(" cl-defs-re "\\_>"
|
||||
;; Any whitespace and defined object.
|
||||
"[ \t']*"
|
||||
"\\(([ \t']*\\)?" ;; An opening paren.
|
||||
"\\(\\(setf\\)[ \t]+\\(?:\\sw\\|\\s_\\)+\\|\\(?:\\sw\\|\\s_\\)+\\)?")
|
||||
(1 font-lock-keyword-face)
|
||||
(3 (let ((type (get (intern-soft (match-string 1)) 'lisp-define-type)))
|
||||
(cond ((eq type 'var) font-lock-variable-name-face)
|
||||
((eq type 'type) font-lock-type-face)
|
||||
((or (not (match-string 2)) ;; Normal defun.
|
||||
(and (match-string 2) ;; Setf function.
|
||||
(match-string 4))) font-lock-function-name-face)))
|
||||
nil t)))
|
||||
"Subdued level highlighting for Lisp modes.")
|
||||
|
||||
;; Elisp and Common Lisp keywords.
|
||||
(regexp-opt (append
|
||||
lisp-kw el-kw eieio-kw
|
||||
(cons "go" (mapcar (lambda (s) (concat "cl-" s))
|
||||
(remove "go" cl-lib-kw))))
|
||||
t)
|
||||
(regexp-opt (append lisp-kw cl-kw eieio-kw cl-lib-kw)
|
||||
t)
|
||||
(define-obsolete-variable-alias 'lisp-font-lock-keywords-2
|
||||
'lisp-el-font-lock-keywords-2 "24.4")
|
||||
(defconst lisp-el-font-lock-keywords-2
|
||||
(append
|
||||
lisp-el-font-lock-keywords-1
|
||||
`( ;; Regexp negated char group.
|
||||
("\\[\\(\\^\\)" 1 font-lock-negation-char-face prepend)
|
||||
;; Control structures. Common Lisp forms.
|
||||
(lisp--el-match-keyword . 1)
|
||||
;; Exit/Feature symbols as constants.
|
||||
(,(concat "(\\(catch\\|throw\\|featurep\\|provide\\|require\\)\\_>"
|
||||
"[ \t']*\\(\\(?:\\sw\\|\\s_\\)+\\)?")
|
||||
(1 font-lock-keyword-face)
|
||||
(2 font-lock-constant-face nil t))
|
||||
;; Erroneous structures.
|
||||
(,(concat "(" el-errs-re "\\_>")
|
||||
(1 font-lock-warning-face))
|
||||
;; Words inside \\[] tend to be for `substitute-command-keys'.
|
||||
("\\\\\\\\\\[\\(\\(?:\\sw\\|\\s_\\)+\\)\\]"
|
||||
(1 font-lock-constant-face prepend))
|
||||
;; Words inside `' tend to be symbol names.
|
||||
("`\\(\\(?:\\sw\\|\\s_\\)\\(?:\\sw\\|\\s_\\)+\\)'"
|
||||
(1 font-lock-constant-face prepend))
|
||||
;; Constant values.
|
||||
("\\_<:\\(?:\\sw\\|\\s_\\)+\\_>" 0 font-lock-builtin-face)
|
||||
;; ELisp and CLisp `&' keywords as types.
|
||||
("\\_<\\&\\(?:\\sw\\|\\s_\\)+\\_>" . font-lock-type-face)
|
||||
;; ELisp regexp grouping constructs
|
||||
(,(lambda (bound)
|
||||
(catch 'found
|
||||
;; The following loop is needed to continue searching after matches
|
||||
;; that do not occur in strings. The associated regexp matches one
|
||||
;; of `\\\\' `\\(' `\\(?:' `\\|' `\\)'. `\\\\' has been included to
|
||||
;; avoid highlighting, for example, `\\(' in `\\\\('.
|
||||
(while (re-search-forward "\\(\\\\\\\\\\)\\(?:\\(\\\\\\\\\\)\\|\\((\\(?:\\?[0-9]*:\\)?\\|[|)]\\)\\)" bound t)
|
||||
(unless (match-beginning 2)
|
||||
(let ((face (get-text-property (1- (point)) 'face)))
|
||||
(when (or (and (listp face)
|
||||
(memq 'font-lock-string-face face))
|
||||
(eq 'font-lock-string-face face))
|
||||
(throw 'found t)))))))
|
||||
(1 'font-lock-regexp-grouping-backslash prepend)
|
||||
(3 'font-lock-regexp-grouping-construct prepend))
|
||||
;; This is too general -- rms.
|
||||
;; A user complained that he has functions whose names start with `do'
|
||||
;; and that they get the wrong color.
|
||||
;; ;; CL `with-' and `do-' constructs
|
||||
;;("(\\(\\(do-\\|with-\\)\\(\\s_\\|\\w\\)*\\)" 1 font-lock-keyword-face)
|
||||
(lisp--match-hidden-arg
|
||||
(0 '(face font-lock-warning-face
|
||||
help-echo "Hidden behind deeper element; move to another line?")))
|
||||
))
|
||||
"Gaudy level highlighting for Emacs Lisp mode.")
|
||||
|
||||
;; Elisp and Common Lisp "errors".
|
||||
(regexp-opt (append (mapcar (lambda (s) (concat "cl-" s))
|
||||
cl-lib-errs)
|
||||
lisp-errs el-errs)
|
||||
t)
|
||||
(regexp-opt (append lisp-errs cl-lib-errs cl-errs) t))))))
|
||||
|
||||
(dolist (v vdefs)
|
||||
(put (intern v) 'lisp-define-type 'var))
|
||||
(dolist (v tdefs)
|
||||
(put (intern v) 'lisp-define-type 'type))
|
||||
|
||||
(define-obsolete-variable-alias 'lisp-font-lock-keywords-1
|
||||
'lisp-el-font-lock-keywords-1 "24.4")
|
||||
(defconst lisp-el-font-lock-keywords-1
|
||||
`( ;; Definitions.
|
||||
(,(concat "(" el-defs-re "\\_>"
|
||||
;; Any whitespace and defined object.
|
||||
"[ \t']*"
|
||||
"\\(([ \t']*\\)?" ;; An opening paren.
|
||||
"\\(\\(setf\\)[ \t]+\\(?:\\sw\\|\\s_\\)+\\|\\(?:\\sw\\|\\s_\\)+\\)?")
|
||||
(1 font-lock-keyword-face)
|
||||
(3 (let ((type (get (intern-soft (match-string 1)) 'lisp-define-type)))
|
||||
(cond ((eq type 'var) font-lock-variable-name-face)
|
||||
((eq type 'type) font-lock-type-face)
|
||||
;; If match-string 2 is non-nil, we encountered a
|
||||
;; form like (defalias (intern (concat s "-p"))),
|
||||
;; unless match-string 4 is also there. Then its a
|
||||
;; defmethod with (setf foo) as name.
|
||||
((or (not (match-string 2)) ;; Normal defun.
|
||||
(and (match-string 2) ;; Setf method.
|
||||
(match-string 4))) font-lock-function-name-face)))
|
||||
nil t))
|
||||
;; Emacs Lisp autoload cookies. Supports the slightly different
|
||||
;; forms used by mh-e, calendar, etc.
|
||||
("^;;;###\\([-a-z]*autoload\\)" 1 font-lock-warning-face prepend))
|
||||
"Subdued level highlighting for Emacs Lisp mode.")
|
||||
|
||||
(defconst lisp-cl-font-lock-keywords-1
|
||||
`( ;; Definitions.
|
||||
(,(concat "(" cl-defs-re "\\_>"
|
||||
;; Any whitespace and defined object.
|
||||
"[ \t']*"
|
||||
"\\(([ \t']*\\)?" ;; An opening paren.
|
||||
"\\(\\(setf\\)[ \t]+\\(?:\\sw\\|\\s_\\)+\\|\\(?:\\sw\\|\\s_\\)+\\)?")
|
||||
(1 font-lock-keyword-face)
|
||||
(3 (let ((type (get (intern-soft (match-string 1)) 'lisp-define-type)))
|
||||
(cond ((eq type 'var) font-lock-variable-name-face)
|
||||
((eq type 'type) font-lock-type-face)
|
||||
((or (not (match-string 2)) ;; Normal defun.
|
||||
(and (match-string 2) ;; Setf function.
|
||||
(match-string 4))) font-lock-function-name-face)))
|
||||
nil t)))
|
||||
"Subdued level highlighting for Lisp modes.")
|
||||
|
||||
(define-obsolete-variable-alias 'lisp-font-lock-keywords-2
|
||||
'lisp-el-font-lock-keywords-2 "24.4")
|
||||
(defconst lisp-el-font-lock-keywords-2
|
||||
(append
|
||||
lisp-el-font-lock-keywords-1
|
||||
`( ;; Regexp negated char group.
|
||||
("\\[\\(\\^\\)" 1 font-lock-negation-char-face prepend)
|
||||
;; Control structures. Common Lisp forms.
|
||||
(lisp--el-match-keyword . 1)
|
||||
;; Exit/Feature symbols as constants.
|
||||
(,(concat "(\\(catch\\|throw\\|featurep\\|provide\\|require\\)\\_>"
|
||||
"[ \t']*\\(\\(?:\\sw\\|\\s_\\)+\\)?")
|
||||
(1 font-lock-keyword-face)
|
||||
(2 font-lock-constant-face nil t))
|
||||
;; Erroneous structures.
|
||||
(,(concat "(" el-errs-re "\\_>")
|
||||
(1 font-lock-warning-face))
|
||||
;; Words inside \\[] tend to be for `substitute-command-keys'.
|
||||
("\\\\\\\\\\[\\(\\(?:\\sw\\|\\s_\\)+\\)\\]"
|
||||
(1 font-lock-constant-face prepend))
|
||||
;; Words inside `' tend to be symbol names.
|
||||
("`\\(\\(?:\\sw\\|\\s_\\)\\(?:\\sw\\|\\s_\\)+\\)'"
|
||||
(1 font-lock-constant-face prepend))
|
||||
;; Constant values.
|
||||
("\\_<:\\(?:\\sw\\|\\s_\\)+\\_>" 0 font-lock-builtin-face)
|
||||
;; ELisp and CLisp `&' keywords as types.
|
||||
("\\_<\\&\\(?:\\sw\\|\\s_\\)+\\_>" . font-lock-type-face)
|
||||
;; ELisp regexp grouping constructs
|
||||
(,(lambda (bound)
|
||||
(catch 'found
|
||||
;; The following loop is needed to continue searching after matches
|
||||
;; that do not occur in strings. The associated regexp matches one
|
||||
;; of `\\\\' `\\(' `\\(?:' `\\|' `\\)'. `\\\\' has been included to
|
||||
;; avoid highlighting, for example, `\\(' in `\\\\('.
|
||||
(while (re-search-forward "\\(\\\\\\\\\\)\\(?:\\(\\\\\\\\\\)\\|\\((\\(?:\\?[0-9]*:\\)?\\|[|)]\\)\\)" bound t)
|
||||
(unless (match-beginning 2)
|
||||
(let ((face (get-text-property (1- (point)) 'face)))
|
||||
(when (or (and (listp face)
|
||||
(memq 'font-lock-string-face face))
|
||||
(eq 'font-lock-string-face face))
|
||||
(throw 'found t)))))))
|
||||
(1 'font-lock-regexp-grouping-backslash prepend)
|
||||
(3 'font-lock-regexp-grouping-construct prepend))
|
||||
;; This is too general -- rms.
|
||||
;; A user complained that he has functions whose names start with `do'
|
||||
;; and that they get the wrong color.
|
||||
;; ;; CL `with-' and `do-' constructs
|
||||
;;("(\\(\\(do-\\|with-\\)\\(\\s_\\|\\w\\)*\\)" 1 font-lock-keyword-face)
|
||||
(lisp--match-hidden-arg
|
||||
(0 '(face font-lock-warning-face
|
||||
help-echo "Hidden behind deeper element; move to another line?")))
|
||||
))
|
||||
"Gaudy level highlighting for Emacs Lisp mode.")
|
||||
|
||||
(defconst lisp-cl-font-lock-keywords-2
|
||||
(append
|
||||
lisp-cl-font-lock-keywords-1
|
||||
`( ;; Regexp negated char group.
|
||||
("\\[\\(\\^\\)" 1 font-lock-negation-char-face prepend)
|
||||
;; Control structures. Common Lisp forms.
|
||||
(,(concat "(" cl-kws-re "\\_>") . 1)
|
||||
;; Exit/Feature symbols as constants.
|
||||
(,(concat "(\\(catch\\|throw\\|provide\\|require\\)\\_>"
|
||||
"[ \t']*\\(\\(?:\\sw\\|\\s_\\)+\\)?")
|
||||
(1 font-lock-keyword-face)
|
||||
(2 font-lock-constant-face nil t))
|
||||
;; Erroneous structures.
|
||||
(,(concat "(" cl-errs-re "\\_>")
|
||||
(1 font-lock-warning-face))
|
||||
;; Words inside `' tend to be symbol names.
|
||||
("`\\(\\(?:\\sw\\|\\s_\\)\\(?:\\sw\\|\\s_\\)+\\)'"
|
||||
(1 font-lock-constant-face prepend))
|
||||
;; Constant values.
|
||||
("\\_<:\\(?:\\sw\\|\\s_\\)+\\_>" 0 font-lock-builtin-face)
|
||||
;; ELisp and CLisp `&' keywords as types.
|
||||
("\\_<\\&\\(?:\\sw\\|\\s_\\)+\\_>" . font-lock-type-face)
|
||||
;; This is too general -- rms.
|
||||
;; A user complained that he has functions whose names start with `do'
|
||||
;; and that they get the wrong color.
|
||||
;; ;; CL `with-' and `do-' constructs
|
||||
;;("(\\(\\(do-\\|with-\\)\\(\\s_\\|\\w\\)*\\)" 1 font-lock-keyword-face)
|
||||
(lisp--match-hidden-arg
|
||||
(0 '(face font-lock-warning-face
|
||||
help-echo "Hidden behind deeper element; move to another line?")))
|
||||
))
|
||||
"Gaudy level highlighting for Lisp modes."))
|
||||
(defconst lisp-cl-font-lock-keywords-2
|
||||
(append
|
||||
lisp-cl-font-lock-keywords-1
|
||||
`( ;; Regexp negated char group.
|
||||
("\\[\\(\\^\\)" 1 font-lock-negation-char-face prepend)
|
||||
;; Control structures. Common Lisp forms.
|
||||
(,(concat "(" cl-kws-re "\\_>") . 1)
|
||||
;; Exit/Feature symbols as constants.
|
||||
(,(concat "(\\(catch\\|throw\\|provide\\|require\\)\\_>"
|
||||
"[ \t']*\\(\\(?:\\sw\\|\\s_\\)+\\)?")
|
||||
(1 font-lock-keyword-face)
|
||||
(2 font-lock-constant-face nil t))
|
||||
;; Erroneous structures.
|
||||
(,(concat "(" cl-errs-re "\\_>")
|
||||
(1 font-lock-warning-face))
|
||||
;; Words inside `' tend to be symbol names.
|
||||
("`\\(\\(?:\\sw\\|\\s_\\)\\(?:\\sw\\|\\s_\\)+\\)'"
|
||||
(1 font-lock-constant-face prepend))
|
||||
;; Constant values.
|
||||
("\\_<:\\(?:\\sw\\|\\s_\\)+\\_>" 0 font-lock-builtin-face)
|
||||
;; ELisp and CLisp `&' keywords as types.
|
||||
("\\_<\\&\\(?:\\sw\\|\\s_\\)+\\_>" . font-lock-type-face)
|
||||
;; This is too general -- rms.
|
||||
;; A user complained that he has functions whose names start with `do'
|
||||
;; and that they get the wrong color.
|
||||
;; ;; CL `with-' and `do-' constructs
|
||||
;;("(\\(\\(do-\\|with-\\)\\(\\s_\\|\\w\\)*\\)" 1 font-lock-keyword-face)
|
||||
(lisp--match-hidden-arg
|
||||
(0 '(face font-lock-warning-face
|
||||
help-echo "Hidden behind deeper element; move to another line?")))
|
||||
))
|
||||
"Gaudy level highlighting for Lisp modes.")))
|
||||
|
||||
(define-obsolete-variable-alias 'lisp-font-lock-keywords
|
||||
'lisp-el-font-lock-keywords "24.4")
|
||||
|
|
|
@ -746,9 +746,10 @@ The context determines which symbols are considered. If the
|
|||
symbol starts just after an open-parenthesis, only symbols with
|
||||
function definitions are considered. Otherwise, all symbols with
|
||||
function definitions, values or properties are considered."
|
||||
(declare (obsolete completion-at-point "24.4"))
|
||||
(declare (obsolete completion-at-point "24.4")
|
||||
(advertised-calling-convention () "25.1"))
|
||||
(interactive)
|
||||
(let* ((data (lisp-completion-at-point))
|
||||
(let* ((data (elisp-completion-at-point))
|
||||
(plist (nthcdr 3 data)))
|
||||
(if (null data)
|
||||
(minibuffer-message "Nothing to complete")
|
||||
|
|
|
@ -341,7 +341,7 @@ This variable is fed automatically by Emacs when installing a new package.
|
|||
This variable is used by `package-autoremove' to decide
|
||||
which packages are no longer needed.
|
||||
You can use it to (re)install packages on other machines
|
||||
by running `package-user-selected-packages-install'.
|
||||
by running `package-install-selected-packages'.
|
||||
|
||||
To check if a package is contained in this list here, use
|
||||
`package--user-selected-p', as it may populate the variable with
|
||||
|
@ -350,8 +350,9 @@ a sane initial value."
|
|||
|
||||
(defcustom package-menu-async t
|
||||
"If non-nil, package-menu will use async operations when possible.
|
||||
This includes refreshing archive contents as well as installing
|
||||
packages."
|
||||
Currently, only the refreshing of archive contents supports
|
||||
asynchronous operations. Package transactions are still done
|
||||
synchronously."
|
||||
:type 'boolean
|
||||
:version "25.1")
|
||||
|
||||
|
@ -1646,21 +1647,25 @@ These are packages which are neither contained in
|
|||
unless (memq p needed)
|
||||
collect p)))
|
||||
|
||||
(defun package--used-elsewhere-p (pkg-desc &optional pkg-list)
|
||||
(defun package--used-elsewhere-p (pkg-desc &optional pkg-list all)
|
||||
"Non-nil if PKG-DESC is a dependency of a package in PKG-LIST.
|
||||
Return the first package found in PKG-LIST of which PKG is a
|
||||
dependency.
|
||||
dependency. If ALL is non-nil, return all such packages instead.
|
||||
|
||||
When not specified, PKG-LIST defaults to `package-alist'
|
||||
with PKG-DESC entry removed."
|
||||
(unless (string= (package-desc-status pkg-desc) "obsolete")
|
||||
(let ((pkg (package-desc-name pkg-desc)))
|
||||
(cl-loop with alist = (or pkg-list
|
||||
(remove (assq pkg package-alist)
|
||||
package-alist))
|
||||
for p in alist thereis
|
||||
(and (memq pkg (mapcar #'car (package-desc-reqs (cadr p))))
|
||||
(car p))))))
|
||||
(let* ((pkg (package-desc-name pkg-desc))
|
||||
(alist (or pkg-list
|
||||
(remove (assq pkg package-alist)
|
||||
package-alist))))
|
||||
(if all
|
||||
(cl-loop for p in alist
|
||||
if (assq pkg (package-desc-reqs (cadr p)))
|
||||
collect (cadr p))
|
||||
(cl-loop for p in alist thereis
|
||||
(and (assq pkg (package-desc-reqs (cadr p)))
|
||||
(cadr p)))))))
|
||||
|
||||
(defun package--sort-deps-in-alist (package only)
|
||||
"Return a list of dependencies for PACKAGE sorted by dependency.
|
||||
|
@ -1708,31 +1713,26 @@ if all the in-between dependencies are also in PACKAGE-LIST."
|
|||
"Return the archive containing the package NAME."
|
||||
(cdr (assoc (package-desc-archive desc) package-archives)))
|
||||
|
||||
(defun package-install-from-archive (pkg-desc &optional async callback)
|
||||
"Download and install a tar package.
|
||||
If ASYNC is non-nil, perform the download asynchronously.
|
||||
If CALLBACK is non-nil, call it with no arguments once the
|
||||
operation is done."
|
||||
(defun package-install-from-archive (pkg-desc)
|
||||
"Download and install a tar package."
|
||||
;; This won't happen, unless the archive is doing something wrong.
|
||||
(when (eq (package-desc-kind pkg-desc) 'dir)
|
||||
(error "Can't install directory package from archive"))
|
||||
(let* ((location (package-archive-base pkg-desc))
|
||||
(file (concat (package-desc-full-name pkg-desc)
|
||||
(package-desc-suffix pkg-desc))))
|
||||
(package--with-work-buffer-async location file async
|
||||
(package--with-work-buffer location file
|
||||
(if (or (not package-check-signature)
|
||||
(member (package-desc-archive pkg-desc)
|
||||
package-unsigned-archives))
|
||||
;; If we don't care about the signature, unpack and we're
|
||||
;; done.
|
||||
(progn (let ((save-silently async)
|
||||
(inhibit-message async))
|
||||
(package-unpack pkg-desc))
|
||||
(funcall callback))
|
||||
(let ((save-silently t))
|
||||
(package-unpack pkg-desc))
|
||||
;; If we care, check it and *then* write the file.
|
||||
(let ((content (buffer-string)))
|
||||
(package--check-signature
|
||||
location file content async
|
||||
location file content nil
|
||||
;; This function will be called after signature checking.
|
||||
(lambda (&optional good-sigs)
|
||||
(unless (or good-sigs (eq package-check-signature 'allow-unsigned))
|
||||
|
@ -1742,8 +1742,7 @@ operation is done."
|
|||
(package-desc-name pkg-desc)))
|
||||
;; Signature checked, unpack now.
|
||||
(with-temp-buffer (insert content)
|
||||
(let ((save-silently async)
|
||||
(inhibit-message async))
|
||||
(let ((save-silently t))
|
||||
(package-unpack pkg-desc)))
|
||||
;; Here the package has been installed successfully, mark it as
|
||||
;; signed if appropriate.
|
||||
|
@ -1759,9 +1758,7 @@ operation is done."
|
|||
(setf (package-desc-signed pkg-desc) t)
|
||||
;; Update the new (activated) pkg-desc as well.
|
||||
(when-let ((pkg-descs (cdr (assq (package-desc-name pkg-desc) package-alist))))
|
||||
(setf (package-desc-signed (car pkg-descs)) t)))
|
||||
(when (functionp callback)
|
||||
(funcall callback)))))))))
|
||||
(setf (package-desc-signed (car pkg-descs)) t))))))))))
|
||||
|
||||
(defun package-installed-p (package &optional min-version)
|
||||
"Return true if PACKAGE, of MIN-VERSION or newer, is installed.
|
||||
|
@ -1782,25 +1779,13 @@ If PACKAGE is a package-desc object, MIN-VERSION is ignored."
|
|||
;; Also check built-in packages.
|
||||
(package-built-in-p package min-version))))
|
||||
|
||||
(defun package-download-transaction (packages &optional async callback)
|
||||
(defun package-download-transaction (packages)
|
||||
"Download and install all the packages in PACKAGES.
|
||||
PACKAGES should be a list of package-desc.
|
||||
If ASYNC is non-nil, perform the downloads asynchronously.
|
||||
If CALLBACK is non-nil, call it with no arguments once the
|
||||
entire operation is done.
|
||||
|
||||
This function assumes that all package requirements in
|
||||
PACKAGES are satisfied, i.e. that PACKAGES is computed
|
||||
using `package-compute-transaction'."
|
||||
(cond
|
||||
(packages (package-install-from-archive
|
||||
(car packages)
|
||||
async
|
||||
(lambda ()
|
||||
(package-download-transaction (cdr packages))
|
||||
(when (functionp callback)
|
||||
(funcall callback)))))
|
||||
(callback (funcall callback))))
|
||||
(mapc #'package-install-from-archive packages))
|
||||
|
||||
(defun package--ensure-init-file ()
|
||||
"Ensure that the user's init file has `package-initialize'.
|
||||
|
@ -1853,16 +1838,13 @@ add a call to it along with some explanatory comments."
|
|||
(setq package--init-file-ensured t))
|
||||
|
||||
;;;###autoload
|
||||
(defun package-install (pkg &optional dont-select async callback)
|
||||
(defun package-install (pkg &optional dont-select)
|
||||
"Install the package PKG.
|
||||
PKG can be a package-desc or the package name of one the available packages
|
||||
in an archive in `package-archives'. Interactively, prompt for its name.
|
||||
|
||||
If called interactively or if DONT-SELECT nil, add PKG to
|
||||
`package-selected-packages'.
|
||||
If ASYNC is non-nil, perform the downloads asynchronously.
|
||||
If CALLBACK is non-nil, call it with no arguments once the
|
||||
entire operation is done.
|
||||
|
||||
If PKG is a package-desc and it is already installed, don't try
|
||||
to install it but still mark it as selected."
|
||||
|
@ -1895,9 +1877,8 @@ to install it but still mark it as selected."
|
|||
(package-compute-transaction (list pkg)
|
||||
(package-desc-reqs pkg)))
|
||||
(package-compute-transaction () (list (list pkg))))))
|
||||
(package-download-transaction transaction async callback)
|
||||
(message "`%s' is already installed" (package-desc-full-name pkg))
|
||||
(funcall callback)))
|
||||
(package-download-transaction transaction)
|
||||
(message "`%s' is already installed" (package-desc-full-name pkg))))
|
||||
|
||||
(defun package-strip-rcs-id (str)
|
||||
"Strip RCS version ID from the version string STR.
|
||||
|
@ -2027,7 +2008,7 @@ If NOSAVE is non-nil, the package is not removed from
|
|||
;; Don't delete packages used as dependency elsewhere.
|
||||
(error "Package `%s' is used by `%s' as dependency, not deleting"
|
||||
(package-desc-full-name pkg-desc)
|
||||
pkg-used-elsewhere-by))
|
||||
(package-desc-name pkg-used-elsewhere-by)))
|
||||
(t
|
||||
(delete-directory dir t t)
|
||||
;; Remove NAME-VERSION.signed file.
|
||||
|
@ -2127,6 +2108,7 @@ will be deleted."
|
|||
(name (if desc (package-desc-name desc) pkg))
|
||||
(pkg-dir (if desc (package-desc-dir desc)))
|
||||
(reqs (if desc (package-desc-reqs desc)))
|
||||
(required-by (if desc (package--used-elsewhere-p desc nil 'all)))
|
||||
(version (if desc (package-desc-version desc)))
|
||||
(archive (if desc (package-desc-archive desc)))
|
||||
(extras (and desc (package-desc-extras desc)))
|
||||
|
@ -2168,7 +2150,14 @@ will be deleted."
|
|||
(insert "'"))
|
||||
(if signed
|
||||
(insert ".")
|
||||
(insert " (unsigned).")))
|
||||
(insert " (unsigned)."))
|
||||
(when (and (package-desc-p desc)
|
||||
(not required-by)
|
||||
(package-installed-p desc))
|
||||
(insert " ")
|
||||
(package-make-button "Delete"
|
||||
'action #'package-delete-button-action
|
||||
'package-desc desc)))
|
||||
(incompatible-reason
|
||||
(insert (propertize "Incompatible" 'face font-lock-warning-face)
|
||||
" because it depends on ")
|
||||
|
@ -2212,6 +2201,19 @@ will be deleted."
|
|||
(help-insert-xref-button text 'help-package name)
|
||||
(insert reason)))
|
||||
(insert "\n")))
|
||||
(when required-by
|
||||
(insert (propertize "Required by" 'font-lock-face 'bold) ": ")
|
||||
(let ((first t))
|
||||
(dolist (pkg required-by)
|
||||
(let ((text (package-desc-full-name pkg)))
|
||||
(cond (first (setq first nil))
|
||||
((>= (+ 2 (current-column) (length text))
|
||||
(window-width))
|
||||
(insert ",\n "))
|
||||
(t (insert ", ")))
|
||||
(help-insert-xref-button text 'help-package
|
||||
(package-desc-name pkg))))
|
||||
(insert "\n")))
|
||||
(insert " " (propertize "Summary" 'font-lock-face 'bold)
|
||||
": " (if desc (package-desc-summary desc)) "\n")
|
||||
(when homepage
|
||||
|
@ -2299,6 +2301,14 @@ will be deleted."
|
|||
(revert-buffer nil t)
|
||||
(goto-char (point-min)))))
|
||||
|
||||
(defun package-delete-button-action (button)
|
||||
(let ((pkg-desc (button-get button 'package-desc)))
|
||||
(when (y-or-n-p (format "Delete package `%s'? "
|
||||
(package-desc-full-name pkg-desc)))
|
||||
(package-delete pkg-desc)
|
||||
(revert-buffer nil t)
|
||||
(goto-char (point-min)))))
|
||||
|
||||
(defun package-keyword-button-action (button)
|
||||
(let ((pkg-keyword (button-get button 'package-keyword)))
|
||||
(package-show-package-list t (list pkg-keyword))))
|
||||
|
@ -2390,12 +2400,17 @@ will be deleted."
|
|||
(defvar package-menu--new-package-list nil
|
||||
"List of newly-available packages since `list-packages' was last called.")
|
||||
|
||||
(defvar package-menu--transaction-status nil
|
||||
"Mode-line status of ongoing package transaction.")
|
||||
|
||||
(define-derived-mode package-menu-mode tabulated-list-mode "Package Menu"
|
||||
"Major mode for browsing a list of packages.
|
||||
Letters do not insert themselves; instead, they are commands.
|
||||
\\<package-menu-mode-map>
|
||||
\\{package-menu-mode-map}"
|
||||
(setq mode-line-process '(package--downloads-in-progress ":Loading"))
|
||||
(setq mode-line-process '((package--downloads-in-progress ":Loading")
|
||||
(package-menu--transaction-status
|
||||
package-menu--transaction-status)))
|
||||
(setq tabulated-list-format
|
||||
`[("Package" 18 package-menu--name-predicate)
|
||||
("Version" 13 nil)
|
||||
|
@ -2885,57 +2900,77 @@ prompt (see `package-menu--prompt-transaction-p')."
|
|||
(t (format "package `%s'"
|
||||
(package-desc-full-name (car packages))))))
|
||||
|
||||
(defun package-menu--prompt-transaction-p (install delete)
|
||||
"Prompt the user about installing INSTALL and deleting DELETE.
|
||||
INSTALL and DELETE are lists of `package-desc'. Either may be
|
||||
nil, but not both."
|
||||
(defun package-menu--prompt-transaction-p (delete install upgrade)
|
||||
"Prompt the user about DELETE, INSTALL, and UPGRADE.
|
||||
DELETE, INSTALL, and UPGRADE are lists of `package-desc' objects.
|
||||
Either may be nil, but not all."
|
||||
(y-or-n-p
|
||||
(concat
|
||||
(when delete "Delete ")
|
||||
(package-menu--list-to-prompt delete)
|
||||
(when (and delete install)
|
||||
(if upgrade "; " "; and "))
|
||||
(when install "Install ")
|
||||
(package-menu--list-to-prompt install)
|
||||
(when (and upgrade (or install delete)) "; and ")
|
||||
(when upgrade "Upgrade ")
|
||||
(package-menu--list-to-prompt upgrade)
|
||||
"? ")))
|
||||
|
||||
(defun package-menu--partition-transaction (install delete)
|
||||
"Return an alist describing an INSTALL DELETE transaction.
|
||||
Alist contains three entries, upgrade, delete, and install, each
|
||||
with a list of package names.
|
||||
|
||||
The upgrade entry contains any `package-desc' objects in INSTALL
|
||||
whose name coincides with an object in DELETE. The delete and
|
||||
the install entries are the same as DELETE and INSTALL with such
|
||||
objects removed."
|
||||
(let* ((upg (cl-intersection install delete :key #'package-desc-name))
|
||||
(ins (cl-set-difference install upg :key #'package-desc-name))
|
||||
(del (cl-set-difference delete upg :key #'package-desc-name)))
|
||||
(y-or-n-p
|
||||
(concat
|
||||
(when del "Delete ")
|
||||
(package-menu--list-to-prompt del)
|
||||
(when (and del ins)
|
||||
(if upg "; " "; and "))
|
||||
(when ins "Install ")
|
||||
(package-menu--list-to-prompt ins)
|
||||
(when (and upg (or ins del)) "; and ")
|
||||
(when upg "Upgrade ")
|
||||
(package-menu--list-to-prompt upg)
|
||||
"? "))))
|
||||
`((delete . ,del) (install . ,ins) (upgrade . ,upg))))
|
||||
|
||||
(defun package-menu--perform-transaction (install-list delete-list &optional async)
|
||||
"Install packages in INSTALL-LIST and delete DELETE-LIST.
|
||||
If ASYNC is non-nil, perform the installation downloads
|
||||
asynchronously."
|
||||
;; While there are packages to install, call `package-install' on
|
||||
;; the next one and defer deletion to the callback function.
|
||||
(defun package-menu--perform-transaction (install-list delete-list)
|
||||
"Install packages in INSTALL-LIST and delete DELETE-LIST."
|
||||
(if install-list
|
||||
(let* ((pkg (car install-list))
|
||||
(rest (cdr install-list))
|
||||
;; Don't mark as selected if it's a new version of an
|
||||
;; installed package.
|
||||
(dont-mark (and (not (package-installed-p pkg))
|
||||
(package-installed-p
|
||||
(package-desc-name pkg)))))
|
||||
(package-install
|
||||
pkg dont-mark async
|
||||
(lambda () (package-menu--perform-transaction rest delete-list async))))
|
||||
(let ((inhibit-message async))
|
||||
;; Once there are no more packages to install, proceed to
|
||||
;; deletion.
|
||||
(let ((status-format (format ":Installing %%d/%d"
|
||||
(length install-list)))
|
||||
(i 0)
|
||||
(package-menu--transaction-status))
|
||||
(dolist (pkg install-list)
|
||||
(setq package-menu--transaction-status
|
||||
(format status-format (cl-incf i)))
|
||||
(force-mode-line-update)
|
||||
(redisplay 'force)
|
||||
;; Don't mark as selected, `package-menu-execute' already
|
||||
;; does that.
|
||||
(package-install pkg 'dont-select)))
|
||||
;; Once there are no more packages to install, proceed to
|
||||
;; deletion.
|
||||
(let ((package-menu--transaction-status ":Deleting"))
|
||||
(force-mode-line-update)
|
||||
(redisplay 'force)
|
||||
(dolist (elt (package--sort-by-dependence delete-list))
|
||||
(condition-case-unless-debug err
|
||||
(package-delete elt)
|
||||
(error (message (cadr err))))))
|
||||
(message "Transaction done")
|
||||
(when package-selected-packages
|
||||
(when-let ((removable (package--removable-packages)))
|
||||
(message "These %d packages are no longer needed, type `M-x package-autoremove' to remove them (%s)"
|
||||
(length removable)
|
||||
(mapconcat #'symbol-name removable ", "))))
|
||||
(package-menu--post-refresh)))
|
||||
(let ((inhibit-message t))
|
||||
(package-delete elt nil 'nosave))
|
||||
(error (message (cadr err))))))))
|
||||
|
||||
(defun package--update-selected-packages (add remove)
|
||||
"Update the `package-selected-packages' list according to ADD and REMOVE.
|
||||
ADD and REMOVE must be disjoint lists of package names (or
|
||||
`package-desc' objects) to be added and removed to the selected
|
||||
packages list, respectively."
|
||||
(dolist (p add)
|
||||
(cl-pushnew (if (package-desc-p p) (package-desc-name p) p)
|
||||
package-selected-packages))
|
||||
(dolist (p remove)
|
||||
(setq package-selected-packages
|
||||
(remove (if (package-desc-p p) (package-desc-name p) p)
|
||||
package-selected-packages)))
|
||||
(when (or add remove)
|
||||
(package--save-selected-packages package-selected-packages)))
|
||||
|
||||
(defun package-menu-execute (&optional noquery)
|
||||
"Perform marked Package Menu actions.
|
||||
|
@ -2960,12 +2995,30 @@ Optional argument NOQUERY non-nil means do not ask the user to confirm."
|
|||
(forward-line)))
|
||||
(unless (or delete-list install-list)
|
||||
(user-error "No operations specified"))
|
||||
(when (or noquery
|
||||
(package-menu--prompt-transaction-p install-list delete-list))
|
||||
(message "Transaction started")
|
||||
;; This calls `package-menu--generate' after everything's done.
|
||||
(package-menu--perform-transaction
|
||||
install-list delete-list package-menu-async))))
|
||||
(let-alist (package-menu--partition-transaction install-list delete-list)
|
||||
(when (or noquery
|
||||
(package-menu--prompt-transaction-p .delete .install .upgrade))
|
||||
(let ((message-template
|
||||
(concat "Package menu: Operation %s ["
|
||||
(when .delete (format "Delet__ %s" (length .delete)))
|
||||
(when (and .delete .install) "; ")
|
||||
(when .install (format "Install__ %s" (length .install)))
|
||||
(when (and .upgrade (or .install .delete)) "; ")
|
||||
(when .upgrade (format "Upgrad__ %s" (length .upgrade)))
|
||||
"]")))
|
||||
(message (replace-regexp-in-string "__" "ing" message-template) "started")
|
||||
;; Packages being upgraded are not marked as selected.
|
||||
(package--update-selected-packages .install .delete)
|
||||
(package-menu--perform-transaction install-list delete-list)
|
||||
(when package-selected-packages
|
||||
(if-let ((removable (package--removable-packages)))
|
||||
(message "Package menu: Operation finished. %d packages %s"
|
||||
(length removable)
|
||||
"are no longer needed, type `M-x package-autoremove' to remove them")
|
||||
(message (replace-regexp-in-string "__" "ed" message-template)
|
||||
"finished"))))
|
||||
;; This calls `package-menu--generate'.
|
||||
(package-menu--post-refresh)))))
|
||||
|
||||
(defun package-menu--version-predicate (A B)
|
||||
(let ((vA (or (aref (cadr A) 1) '(0)))
|
||||
|
|
|
@ -140,6 +140,10 @@ to bind a single value, BINDINGS can just be a plain tuple."
|
|||
(declare (indent 1) (debug if-let))
|
||||
(list 'if-let bindings (macroexp-progn body)))
|
||||
|
||||
(defsubst hash-table-empty-p (hash-table)
|
||||
"Check whether HASH-TABLE is empty (has 0 elements)."
|
||||
(zerop (hash-table-count hash-table)))
|
||||
|
||||
(defsubst hash-table-keys (hash-table)
|
||||
"Return a list of keys in HASH-TABLE."
|
||||
(let ((keys '()))
|
||||
|
|
|
@ -574,7 +574,7 @@ running the hook."
|
|||
|
||||
;; (defun buffer-syntactic-context (&optional buffer)
|
||||
;; "Syntactic context at point in BUFFER.
|
||||
;; Either of `string', `comment' or `nil'.
|
||||
;; Either of `string', `comment' or nil.
|
||||
;; This is an XEmacs compatibility function."
|
||||
;; (with-current-buffer (or buffer (current-buffer))
|
||||
;; (syntax-ppss-context (syntax-ppss))))
|
||||
|
|
|
@ -1301,7 +1301,7 @@ Usually contains ` ', linefeed, TAB or formfeed.")
|
|||
))
|
||||
|
||||
;; SYMBOL is used because customize requires it, but it is ignored, unless it
|
||||
;; is `nil'. If nil, use setq.
|
||||
;; is nil. If nil, use setq.
|
||||
(defun viper-set-syntax-preference (&optional symbol value)
|
||||
"Set Viper syntax preference.
|
||||
If called interactively or if SYMBOL is nil, sets syntax preference in current
|
||||
|
|
|
@ -652,7 +652,7 @@ EVENT is the message received from the closed connection process."
|
|||
(run-at-time erc-server-reconnect-timeout nil
|
||||
#'erc-process-sentinel-2
|
||||
event buffer)
|
||||
(error (concat "`erc-server-reconnect-timeout`"
|
||||
(error (concat "`erc-server-reconnect-timeout'"
|
||||
" must be a number")))))))))))
|
||||
|
||||
(defun erc-process-sentinel-1 (event buffer)
|
||||
|
|
|
@ -78,7 +78,7 @@ The alist's format is as follows:
|
|||
(defun erc-ezb-get-login (server port)
|
||||
"Return an appropriate EZBounce login for SERVER and PORT.
|
||||
Look up entries in `erc-ezb-login-alist'. If the username or password
|
||||
in the alist is `nil', prompt for the appropriate values."
|
||||
in the alist is nil, prompt for the appropriate values."
|
||||
(let ((login (cdr (assoc (cons server port) erc-ezb-login-alist))))
|
||||
(when login
|
||||
(let ((username (car login))
|
||||
|
|
|
@ -33,7 +33,7 @@
|
|||
;;
|
||||
;; If you want nickname completions ordered such that the most recent
|
||||
;; speakers are listed first, set
|
||||
;; `erc-pcomplete-order-nickname-completions' to `t'.
|
||||
;; `erc-pcomplete-order-nickname-completions' to t.
|
||||
;;
|
||||
;; See CREDITS for other contributors.
|
||||
;;
|
||||
|
|
|
@ -1,3 +1,4 @@
|
|||
|
||||
;; erc.el --- An Emacs Internet Relay Chat client -*- lexical-binding:t -*-
|
||||
|
||||
;; Copyright (C) 1997-2015 Free Software Foundation, Inc.
|
||||
|
@ -12,6 +13,7 @@
|
|||
;; Kelvin White (kwhite@gnu.org)
|
||||
;; Maintainer: emacs-devel@gnu.org
|
||||
;; Keywords: IRC, chat, client, Internet
|
||||
|
||||
;; Version: 5.3
|
||||
|
||||
;; This file is part of GNU Emacs.
|
||||
|
@ -37,15 +39,13 @@
|
|||
;; * http://sv.gnu.org/projects/erc/
|
||||
;; * http://www.emacswiki.org/cgi-bin/wiki/ERC
|
||||
|
||||
|
||||
|
||||
;; As of 2006-06-13, ERC development is now hosted on Savannah
|
||||
;; (http://sv.gnu.org/projects/erc). I invite everyone who wants to
|
||||
;; hack on it to contact me <mwolson@gnu.org> in order to get write
|
||||
;; access to the shared Arch archive.
|
||||
|
||||
;; Installation:
|
||||
|
||||
;; Put erc.el in your load-path, and put (require 'erc) in your .emacs.
|
||||
|
||||
;; Configuration:
|
||||
|
||||
;; Use M-x customize-group RET erc RET to get an overview
|
||||
|
@ -258,11 +258,25 @@ If nil, only \"> \" will be shown."
|
|||
(repeat :inline t :tag "Others" (string :tag "IRC Message Type"))))
|
||||
|
||||
(defcustom erc-hide-list nil
|
||||
"List of IRC type messages to hide.
|
||||
"A global list of IRC message types to hide.
|
||||
A typical value would be '(\"JOIN\" \"PART\" \"QUIT\")."
|
||||
:group 'erc-ignore
|
||||
:type 'erc-message-type)
|
||||
|
||||
(defcustom erc-network-hide-list nil
|
||||
"A list of IRC networks to hide message types from.
|
||||
A typical value would be '((\"freenode\" \"MODE\")
|
||||
(\"OFTC\" \"JOIN\" \"QUIT\"))."
|
||||
:group 'erc-ignore
|
||||
:type 'erc-message-type)
|
||||
|
||||
(defcustom erc-channel-hide-list nil
|
||||
"A list of IRC channels to hide message types from.
|
||||
A typical value would be '((\"#emacs\" \"QUIT\" \JOIN\")
|
||||
(\"#erc\" \"NICK\")."
|
||||
:group 'erc-ignore
|
||||
:type 'erc-message-type)
|
||||
|
||||
(defvar erc-session-password nil
|
||||
"The password used for the current session.")
|
||||
(make-variable-buffer-local 'erc-session-password)
|
||||
|
@ -2616,15 +2630,36 @@ otherwise `erc-server-announced-name'. SERVER is matched against
|
|||
erc-common-server-suffixes))
|
||||
erc-server-announced-name)))
|
||||
|
||||
(defun erc-add-targets (scope target-list)
|
||||
(let ((targets
|
||||
(mapcar (lambda (targets) (member scope targets)) target-list)))
|
||||
(cdr (apply 'append (delete nil targets)))))
|
||||
|
||||
(defun erc-hide-current-message-p (parsed)
|
||||
"Predicate indicating whether the parsed ERC response PARSED should be hidden.
|
||||
|
||||
Messages are always hidden if the message type of PARSED appears in
|
||||
`erc-hide-list'. In addition, messages whose type is a member of
|
||||
`erc-lurker-hide-list' are hidden if `erc-lurker-p' returns true."
|
||||
`erc-hide-list'. Message types that appear in `erc-network-hide-list'
|
||||
or `erc-channel-hide-list' are are only hidden if the target matches
|
||||
the network or channel in the list. In addition, messages whose type
|
||||
is a member of `erc-lurker-hide-list' are hidden if `erc-lurker-p'
|
||||
returns non-nil."
|
||||
(let* ((command (erc-response.command parsed))
|
||||
(sender (car (erc-parse-user (erc-response.sender parsed)))))
|
||||
(sender (car (erc-parse-user (erc-response.sender parsed))))
|
||||
(channel (nth 1 (erc-response.command-args parsed)))
|
||||
(network (or (and (fboundp 'erc-network-name) (erc-network-name))
|
||||
(erc-shorten-server-name
|
||||
(or erc-server-announced-name
|
||||
erc-session-server))))
|
||||
(current-hide-list
|
||||
(when erc-network-hide-list
|
||||
(erc-add-targets network erc-network-hide-list)))
|
||||
(current-hide-list
|
||||
(apply 'append current-hide-list
|
||||
(when erc-channel-hide-list
|
||||
(erc-add-targets channel erc-channel-hide-list)))))
|
||||
(or (member command erc-hide-list)
|
||||
(member command current-hide-list)
|
||||
(and (member command erc-lurker-hide-list) (erc-lurker-p sender)))))
|
||||
|
||||
(defun erc-display-message (parsed type buffer msg &rest args)
|
||||
|
@ -4150,7 +4185,7 @@ See also `erc-display-error-notice'."
|
|||
;; server's setting if we haven't
|
||||
;; established a connection yet
|
||||
(- 9 (length erc-nick-uniquifier))))
|
||||
erc-nick-uniquifier)))
|
||||
erc-nick-uniqifier)))
|
||||
(erc-cmd-NICK newnick)
|
||||
(erc-display-error-notice
|
||||
nil
|
||||
|
|
|
@ -132,6 +132,13 @@ character to the invoked process."
|
|||
:type 'boolean
|
||||
:group 'eshell-term)
|
||||
|
||||
(defcustom eshell-destroy-buffer-when-process-dies nil
|
||||
"If non-nil, term buffers are destroyed after their processes die.
|
||||
WARNING: Setting this to non-nil may result in unexpected
|
||||
behavior for short-lived processes, see bug#18108."
|
||||
:type 'boolean
|
||||
:group 'eshell-term)
|
||||
|
||||
;;; Internal Variables:
|
||||
|
||||
(defvar eshell-parent-buffer)
|
||||
|
@ -190,20 +197,24 @@ allowed."
|
|||
nil)
|
||||
|
||||
;; Process sentinels receive two arguments.
|
||||
(defun eshell-term-sentinel (proc _string)
|
||||
"Destroy the buffer visiting PROC."
|
||||
(let ((proc-buf (process-buffer proc)))
|
||||
(when (and proc-buf (buffer-live-p proc-buf)
|
||||
(not (eq 'run (process-status proc)))
|
||||
(= (process-exit-status proc) 0))
|
||||
(if (eq (current-buffer) proc-buf)
|
||||
(let ((buf (and (boundp 'eshell-parent-buffer)
|
||||
eshell-parent-buffer
|
||||
(buffer-live-p eshell-parent-buffer)
|
||||
eshell-parent-buffer)))
|
||||
(if buf
|
||||
(switch-to-buffer buf))))
|
||||
(kill-buffer proc-buf))))
|
||||
(defun eshell-term-sentinel (proc msg)
|
||||
"Clean up the buffer visiting PROC.
|
||||
If `eshell-destroy-buffer-when-process-dies' is non-nil, destroy
|
||||
the buffer."
|
||||
(term-sentinel proc msg) ;; First call the normal term sentinel.
|
||||
(when eshell-destroy-buffer-when-process-dies
|
||||
(let ((proc-buf (process-buffer proc)))
|
||||
(when (and proc-buf (buffer-live-p proc-buf)
|
||||
(not (eq 'run (process-status proc)))
|
||||
(= (process-exit-status proc) 0))
|
||||
(if (eq (current-buffer) proc-buf)
|
||||
(let ((buf (and (boundp 'eshell-parent-buffer)
|
||||
eshell-parent-buffer
|
||||
(buffer-live-p eshell-parent-buffer)
|
||||
eshell-parent-buffer)))
|
||||
(if buf
|
||||
(switch-to-buffer buf))))
|
||||
(kill-buffer proc-buf)))))
|
||||
|
||||
;; jww (1999-09-17): The code below will allow Eshell to send input
|
||||
;; characters directly to the currently running interactive process.
|
||||
|
|
|
@ -357,22 +357,31 @@ after are both returned."
|
|||
(goto-char (1+ end)))))))
|
||||
|
||||
(defun eshell-parse-special-reference ()
|
||||
"Parse a special syntax reference, of the form '#<type arg>'."
|
||||
(if (and (not eshell-current-argument)
|
||||
(not eshell-current-quoted)
|
||||
(looking-at "#<\\(buffer\\|process\\)\\s-"))
|
||||
(let ((here (point)))
|
||||
(goto-char (match-end 0))
|
||||
(let* ((buffer-p (string= (match-string 1) "buffer"))
|
||||
(end (eshell-find-delimiter ?\< ?\>)))
|
||||
(if (not end)
|
||||
(throw 'eshell-incomplete ?\<)
|
||||
(if (eshell-arg-delimiter (1+ end))
|
||||
(prog1
|
||||
(list (if buffer-p 'get-buffer-create 'get-process)
|
||||
(buffer-substring-no-properties (point) end))
|
||||
(goto-char (1+ end)))
|
||||
(ignore (goto-char here))))))))
|
||||
"Parse a special syntax reference, of the form '#<args>'.
|
||||
|
||||
args := `type' `whitespace' `arbitrary-args' | `arbitrary-args'
|
||||
type := \"buffer\" or \"process\"
|
||||
arbitrary-args := any string of characters.
|
||||
|
||||
If the form has no 'type', the syntax is parsed as if 'type' were
|
||||
\"buffer\"."
|
||||
(when (and (not eshell-current-argument)
|
||||
(not eshell-current-quoted)
|
||||
(looking-at "#<\\(\\(buffer\\|process\\)\\s-\\)?"))
|
||||
(let ((here (point)))
|
||||
(goto-char (match-end 0)) ;; Go to the end of the match.
|
||||
(let ((buffer-p (if (match-string 1)
|
||||
(string= (match-string 2) "buffer")
|
||||
t)) ;; buffer-p is non-nil by default.
|
||||
(end (eshell-find-delimiter ?\< ?\>)))
|
||||
(when (not end)
|
||||
(throw 'eshell-incomplete ?\<))
|
||||
(if (eshell-arg-delimiter (1+ end))
|
||||
(prog1
|
||||
(list (if buffer-p 'get-buffer-create 'get-process)
|
||||
(buffer-substring-no-properties (point) end))
|
||||
(goto-char (1+ end)))
|
||||
(ignore (goto-char here)))))))
|
||||
|
||||
(defun eshell-parse-delimiter ()
|
||||
"Parse an argument delimiter, which is essentially a command operator."
|
||||
|
|
|
@ -31,6 +31,18 @@
|
|||
;; consistent with most shells. Therefore, only unique features are
|
||||
;; mentioned here.
|
||||
;;
|
||||
;;;_* Redirect to a Buffer or Process
|
||||
;;
|
||||
;; Buffers and processes can be named with '#<buffer buffer-name>' and
|
||||
;; '#<process process-name>', respectively. As a shorthand,
|
||||
;; '#<buffer-name>' without the explicit "buffer" arg is equivalent to
|
||||
;; '#<buffer buffer-name>'.
|
||||
;;
|
||||
;; echo hello > #<buffer *scratch*> # Overwrite '*scratch*' with 'hello'.
|
||||
;; echo hello > #<*scratch*> # Same as the command above.
|
||||
;;
|
||||
;; echo hello > #<process shell> # Pipe "hello" into the shell process.
|
||||
;;
|
||||
;;;_* Insertion
|
||||
;;
|
||||
;; To insert at the location of point in a buffer, use '>>>':
|
||||
|
@ -98,19 +110,6 @@ other buffers) ."
|
|||
:type 'integer
|
||||
:group 'eshell-io)
|
||||
|
||||
(defcustom eshell-buffer-shorthand nil
|
||||
"If non-nil, a symbol name can be used for a buffer in redirection.
|
||||
If nil, redirecting to a buffer requires buffer name syntax. If this
|
||||
variable is set, redirection directly to Lisp symbols will be
|
||||
impossible.
|
||||
|
||||
Example:
|
||||
|
||||
echo hello > '*scratch* ; works if `eshell-buffer-shorthand' is t
|
||||
echo hello > #<buffer *scratch*> ; always works"
|
||||
:type 'boolean
|
||||
:group 'eshell-io)
|
||||
|
||||
(defcustom eshell-print-queue-size 5
|
||||
"The size of the print queue, for doing buffered printing.
|
||||
This is basically a speed enhancement, to avoid blocking the Lisp code
|
||||
|
@ -355,21 +354,14 @@ it defaults to `insert'."
|
|||
(goto-char (point-max))))
|
||||
(point-marker))))))
|
||||
|
||||
((or (bufferp target)
|
||||
(and (boundp 'eshell-buffer-shorthand)
|
||||
(symbol-value 'eshell-buffer-shorthand)
|
||||
(symbolp target)
|
||||
(not (memq target '(t nil)))))
|
||||
(let ((buf (if (bufferp target)
|
||||
target
|
||||
(get-buffer-create
|
||||
(symbol-name target)))))
|
||||
(with-current-buffer buf
|
||||
(cond ((eq mode 'overwrite)
|
||||
(erase-buffer))
|
||||
((eq mode 'append)
|
||||
(goto-char (point-max))))
|
||||
(point-marker))))
|
||||
|
||||
((bufferp target)
|
||||
(with-current-buffer target
|
||||
(cond ((eq mode 'overwrite)
|
||||
(erase-buffer))
|
||||
((eq mode 'append)
|
||||
(goto-char (point-max))))
|
||||
(point-marker)))
|
||||
|
||||
((functionp target) nil)
|
||||
|
||||
|
|
|
@ -206,7 +206,7 @@ This is used by `eshell-watch-for-password-prompt'."
|
|||
|
||||
;; Internal Variables:
|
||||
|
||||
;; these are only set to `nil' initially for the sake of the
|
||||
;; these are only set to nil initially for the sake of the
|
||||
;; byte-compiler, when compiling other files which `require' this one
|
||||
(defvar eshell-mode nil)
|
||||
(defvar eshell-mode-map nil)
|
||||
|
|
|
@ -33,7 +33,7 @@
|
|||
;;; User Variables:
|
||||
|
||||
(defcustom eshell-stringify-t t
|
||||
"If non-nil, the string representation of t is 't'.
|
||||
"If non-nil, the string representation of t is \"t\".
|
||||
If nil, t will be represented only in the exit code of the function,
|
||||
and not printed as a string. This causes Lisp functions to behave
|
||||
similarly to external commands, as far as successful result output."
|
||||
|
|
|
@ -187,7 +187,7 @@ of face attribute/value pairs, like in a `face' text property.
|
|||
|
||||
If SPECS is empty, call `face-remap-reset-base' to use the normal
|
||||
definition of FACE as the base remapping; note that this is
|
||||
different from SPECS containing a single value `nil', which means
|
||||
different from SPECS containing a single value nil, which means
|
||||
not to inherit from the global definition of FACE at all."
|
||||
(while (and (consp specs) (not (null (car specs))) (null (cdr specs)))
|
||||
(setq specs (car specs)))
|
||||
|
|
|
@ -458,7 +458,7 @@ These special properties include `invisible', `intangible' and `read-only'."
|
|||
|
||||
(defcustom list-colors-sort nil
|
||||
"Color sort order for `list-colors-display'.
|
||||
`nil' means default implementation-dependent order (defined in `x-colors').
|
||||
nil means default implementation-dependent order (defined in `x-colors').
|
||||
`name' sorts by color name.
|
||||
`rgb' sorts by red, green, blue components.
|
||||
`(rgb-dist . COLOR)' sorts by the RGB distance to the specified color.
|
||||
|
|
|
@ -619,7 +619,7 @@ VALUE must be a string specifying the font family
|
|||
`:foundry'
|
||||
|
||||
VALUE must be a string specifying the font foundry,
|
||||
e.g. ``adobe''. If a font foundry is specified, wild-cards `*'
|
||||
e.g., \"adobe\". If a font foundry is specified, wild-cards `*'
|
||||
and `?' are allowed.
|
||||
|
||||
`:width'
|
||||
|
@ -892,7 +892,7 @@ where COLOR is a string or `foreground-color', and STYLE is either
|
|||
foreground color. :style may be omitted, which means to use a line.
|
||||
|
||||
FRAME nil or not specified means change face on all frames.
|
||||
Use `set-face-attribute' to ``unspecify'' underlining."
|
||||
Use `set-face-attribute' to \"unspecify\" underlining."
|
||||
(interactive (read-face-and-attribute :underline))
|
||||
(set-face-attribute face frame :underline underline))
|
||||
|
||||
|
@ -905,7 +905,7 @@ Use `set-face-attribute' to ``unspecify'' underlining."
|
|||
INVERSE-VIDEO-P non-nil means FACE displays explicitly in inverse video.
|
||||
INVERSE-VIDEO-P nil means FACE explicitly is not in inverse video.
|
||||
FRAME nil or not specified means change face on all frames.
|
||||
Use `set-face-attribute' to ``unspecify'' the inverse video attribute."
|
||||
Use `set-face-attribute' to \"unspecify\" the inverse video attribute."
|
||||
(interactive
|
||||
(let ((list (read-face-and-attribute :inverse-video)))
|
||||
(list (car list) (if (cadr list) t))))
|
||||
|
@ -2042,7 +2042,7 @@ Value is the new parameter list."
|
|||
"Create and return a frame with frame parameters PARAMETERS.
|
||||
If PARAMETERS specify a frame name, handle X geometry resources
|
||||
for that name. If PARAMETERS includes a `reverse' parameter, or
|
||||
the X resource ``reverseVideo'' is present, handle that."
|
||||
the X resource \"reverseVideo\" is present, handle that."
|
||||
(setq parameters (x-handle-named-frame-geometry parameters))
|
||||
(let* ((params (copy-tree parameters))
|
||||
(visibility-spec (assq 'visibility parameters))
|
||||
|
|
|
@ -1092,14 +1092,14 @@ Tip: You can use this expansion of remote identifier components
|
|||
|
||||
(defcustom remote-file-name-inhibit-cache 10
|
||||
"Whether to use the remote file-name cache for read access.
|
||||
When `nil', never expire cached values (caution)
|
||||
When `t', never use the cache (safe, but may be slow)
|
||||
When nil, never expire cached values (caution)
|
||||
When t, never use the cache (safe, but may be slow)
|
||||
A number means use cached values for that amount of seconds since caching.
|
||||
|
||||
The attributes of remote files are cached for better performance.
|
||||
If they are changed outside of Emacs's control, the cached values
|
||||
become invalid, and must be reread. If you are sure that nothing
|
||||
other than Emacs changes the files, you can set this variable to `nil'.
|
||||
other than Emacs changes the files, you can set this variable to nil.
|
||||
|
||||
If a remote file is checked regularly, it might be a good idea to
|
||||
let-bind this variable to a value less than the interval between
|
||||
|
|
|
@ -1755,7 +1755,7 @@ Otherwise enables edit mode if the visited file is writable."
|
|||
With ARG: store the record after the current one.
|
||||
If `forms-new-record-filter' contains the name of a function,
|
||||
it is called to fill (some of) the fields with default values.
|
||||
If `forms-insert-after is non-nil, the default behavior is to insert
|
||||
If `forms-insert-after' is non-nil, the default behavior is to insert
|
||||
after the current record."
|
||||
|
||||
(interactive "P")
|
||||
|
|
|
@ -35,8 +35,9 @@
|
|||
;; Verifying Cancel-Lock is mainly a function of news servers, however,
|
||||
;; you can verify your own article using the command `canlock-verify' in
|
||||
;; the (raw) article buffer. You will be prompted for the password for
|
||||
;; each time if the option `canlock-password' or `canlock-password-for-
|
||||
;; verify' is nil. Note that setting these options is a bit unsafe.
|
||||
;; each time if the option `canlock-password' or
|
||||
;; `canlock-password-for-verify' is nil. Note that setting these
|
||||
;; options is a bit unsafe.
|
||||
|
||||
;;; Code:
|
||||
|
||||
|
|
|
@ -78,7 +78,7 @@
|
|||
;; `gnus-outlook-deuglify-unwrap-stop-chars'. Setting this to ".?!"
|
||||
;; inhibits unwrapping if the cited line ends with a full stop,
|
||||
;; question mark or exclamation mark. Note that this variable
|
||||
;; defaults to `nil', triggering a few false positives but generally
|
||||
;; defaults to nil, triggering a few false positives but generally
|
||||
;; giving you better results.
|
||||
;;
|
||||
;; Unwrapping works on every level of citation. Thus you will be able
|
||||
|
@ -110,7 +110,7 @@
|
|||
;; > Bye, John
|
||||
;;
|
||||
;; Repairing the attribution line will be done by function
|
||||
;; `gnus-article-outlook-repair-attribution which calls other function that
|
||||
;; `gnus-article-outlook-repair-attribution' which calls other function that
|
||||
;; try to recognize and repair broken attribution lines. See variable
|
||||
;; `gnus-outlook-deuglify-attrib-cut-regexp' for stuff that should be
|
||||
;; cut off from the beginning of an attribution line and variable
|
||||
|
@ -121,7 +121,7 @@
|
|||
;; Rearranging the article so that the cited text appears above the
|
||||
;; new text will be done by function
|
||||
;; `gnus-article-outlook-rearrange-citation'. This function calls
|
||||
;; `gnus-article-outlook-repair-attribution to find and repair an attribution
|
||||
;; `gnus-article-outlook-repair-attribution' to find and repair an attribution
|
||||
;; line.
|
||||
;;
|
||||
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
|
||||
|
@ -177,14 +177,14 @@
|
|||
;; As I said before there may (or will) be a few false positives on
|
||||
;; unwrapping cited lines with `gnus-article-outlook-unwrap-lines'.
|
||||
;;
|
||||
;; `gnus-article-outlook-repair-attribution will only fix the first
|
||||
;; `gnus-article-outlook-repair-attribution' will only fix the first
|
||||
;; attribution line found in the article. Furthermore it fixed to
|
||||
;; certain kinds of attributions. And there may be horribly many
|
||||
;; false positives, vanishing lines and so on -- so don't trust your
|
||||
;; eyes. Again I recommend manual invocation.
|
||||
;;
|
||||
;; `gnus-article-outlook-rearrange-citation' carries all the limitations of
|
||||
;; `gnus-article-outlook-repair-attribution.
|
||||
;; `gnus-article-outlook-repair-attribution'.
|
||||
;;
|
||||
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
|
||||
;;
|
||||
|
|
|
@ -1256,7 +1256,7 @@ how to control what it hides."
|
|||
:type gnus-article-treat-custom)
|
||||
|
||||
(defcustom gnus-treat-strip-list-identifiers 'head
|
||||
"Strip list identifiers from `gnus-list-identifiers`.
|
||||
"Strip list identifiers from `gnus-list-identifiers'.
|
||||
Valid values are nil, t, `head', `first', `last', an integer or a
|
||||
predicate. See Info node `(gnus)Customizing Articles'."
|
||||
:version "21.1"
|
||||
|
@ -1735,7 +1735,7 @@ regexp."
|
|||
(modify-syntax-entry ?` " " table)
|
||||
table)
|
||||
"Syntax table used in article mode buffers.
|
||||
Initialized from `text-mode-syntax-table.")
|
||||
Initialized from `text-mode-syntax-table'.")
|
||||
|
||||
(defvar gnus-save-article-buffer nil)
|
||||
|
||||
|
|
|
@ -272,7 +272,7 @@ DOC is a documentation string for the parameter.")
|
|||
(repeat (list (string :format "%v" :tag "File name"))))
|
||||
"Which score files to use when using score to select articles to fetch.
|
||||
|
||||
`nil'
|
||||
nil
|
||||
All articles will be scored to zero (0).
|
||||
|
||||
`file'
|
||||
|
|
|
@ -3285,7 +3285,7 @@ mail messages or news articles in files that have numeric names."
|
|||
|
||||
Rights is a string listing a (possibly empty) set of alphanumeric
|
||||
characters, each character listing a set of operations which is being
|
||||
controlled. Letters are reserved for ``standard'' rights, listed
|
||||
controlled. Letters are reserved for \"standard\" rights, listed
|
||||
below. Digits are reserved for implementation or site defined rights.
|
||||
|
||||
l - lookup (mailbox is visible to LIST/LSUB commands)
|
||||
|
|
|
@ -4376,7 +4376,7 @@ Returns HEADER if it was entered in the DEPENDENCIES. Returns nil otherwise."
|
|||
;; The last case ignores an existing entry, except it adds any
|
||||
;; additional Xrefs (in case the two articles came from different
|
||||
;; servers.
|
||||
;; Also sets `header' to `nil' meaning that the `dependencies'
|
||||
;; Also sets `header' to nil meaning that the `dependencies'
|
||||
;; table was *not* modified.
|
||||
(t
|
||||
(mail-header-set-xref
|
||||
|
|
|
@ -1123,7 +1123,7 @@ e.g. using `gnus-posting-styles':
|
|||
|
||||
(defcustom message-cite-style nil
|
||||
"*The overall style to be used when yanking cited text.
|
||||
Value is either `nil' (no variable overrides) or a let-style list
|
||||
Value is either nil (no variable overrides) or a let-style list
|
||||
of pairs (VARIABLE VALUE) that will be bound in
|
||||
`message-yank-original' to do the quoting.
|
||||
|
||||
|
|
|
@ -199,7 +199,7 @@ from the document.")
|
|||
;; lines in the body. For MIME dissections only, ARTICLE-INSERT [5] and
|
||||
;; SUMMARY-INSERT [6] give headers to insert for full article or summary line
|
||||
;; generation, respectively. Other headers usually follow directly from the
|
||||
;; buffer. Value `nil' means no insert.
|
||||
;; buffer. Value nil means no insert.
|
||||
(defvoo nndoc-dissection-alist nil)
|
||||
(defvoo nndoc-prepare-body-function nil)
|
||||
(defvoo nndoc-generate-head-function nil)
|
||||
|
|
|
@ -84,13 +84,13 @@ Some of the FLAGS correspond to Gnus marks.")
|
|||
|
||||
(defsubst nnmaildir--mark-to-flag (mark)
|
||||
"Find the Maildir flag that corresponds to MARK (an atom).
|
||||
Return a character, or `nil' if not found.
|
||||
Return a character, or nil if not found.
|
||||
See `nnmaildir-flag-mark-mapping'."
|
||||
(car (rassq mark nnmaildir-flag-mark-mapping)))
|
||||
|
||||
(defsubst nnmaildir--flag-to-mark (flag)
|
||||
"Find the Gnus mark that corresponds to FLAG (a character).
|
||||
Return an atom, or `nil' if not found.
|
||||
Return an atom, or nil if not found.
|
||||
See `nnmaildir-flag-mark-mapping'."
|
||||
(cdr (assq flag nnmaildir-flag-mark-mapping)))
|
||||
|
||||
|
|
|
@ -1136,7 +1136,7 @@ other than `\"' and `\\' in quoted strings."
|
|||
;; `decode-coding-string' in Emacs offers a third optional
|
||||
;; arg NOCOPY to avoid consing a new string if the decoding
|
||||
;; is "trivial". Unfortunately it currently doesn't
|
||||
;; consider anything else than a `nil' coding system
|
||||
;; consider anything else than a nil coding system
|
||||
;; trivial.
|
||||
;; `rfc2047-decode-string' is called multiple times for each
|
||||
;; article during summary buffer generation, and we really
|
||||
|
|
|
@ -99,10 +99,10 @@
|
|||
;; from the kill ring. May be good if you don't know how far up in
|
||||
;; the kill-ring the required entry is, and don't want to mess with
|
||||
;; "Choose Next Paste".
|
||||
;; `try-complete-lisp-symbol' : like `lisp-complete-symbol', but goes
|
||||
;; `try-complete-lisp-symbol' : like `elisp-completion-at-point', but goes
|
||||
;; through all possibilities instead of completing what is unique.
|
||||
;; Might be tedious (usually a lot of possible completions) and
|
||||
;; since its function is much like `lisp-complete-symbol', which
|
||||
;; since its function is much like `completion-at-point', which
|
||||
;; already has a key of its own, you might want to remove this.
|
||||
;; `try-complete-lisp-symbol-partially' : To insert in the list just
|
||||
;; before `try-complete-lisp-symbol' for those who first want to get
|
||||
|
|
|
@ -1908,9 +1908,9 @@ the buffer object itself and the current mark symbol."
|
|||
;; Kill the line if the buffer is dead
|
||||
'kill)))
|
||||
;; A given mapping function should return:
|
||||
;; `nil' if it chose not to affect the buffer
|
||||
;; nil if it chose not to affect the buffer
|
||||
;; `kill' means the remove line from the buffer list
|
||||
;; `t' otherwise
|
||||
;; t otherwise
|
||||
(cl-incf ibuffer-map-lines-total)
|
||||
(cond ((null result)
|
||||
(forward-line 1))
|
||||
|
|
|
@ -149,16 +149,26 @@ icompletion is occurring."
|
|||
(defvar icomplete-minibuffer-map
|
||||
(let ((map (make-sparse-keymap)))
|
||||
(define-key map [?\M-\t] 'minibuffer-force-complete)
|
||||
(define-key map [?\C-j] 'minibuffer-force-complete-and-exit)
|
||||
(define-key map [?\C-j] 'icomplete-force-complete-and-exit)
|
||||
(define-key map [?\C-.] 'icomplete-forward-completions)
|
||||
(define-key map [?\C-,] 'icomplete-backward-completions)
|
||||
map)
|
||||
"Keymap used by `icomplete-mode' in the minibuffer.")
|
||||
|
||||
(defun icomplete-force-complete-and-exit ()
|
||||
"Complete the minibuffer and exit.
|
||||
Use the first of the matches if there are any displayed, and use
|
||||
the default otherwise."
|
||||
(interactive)
|
||||
(if (or icomplete-show-matches-on-no-input
|
||||
(> (icomplete--field-end) (icomplete--field-beg)))
|
||||
(minibuffer-force-complete-and-exit)
|
||||
(minibuffer-complete-and-exit)))
|
||||
|
||||
(defun icomplete-forward-completions ()
|
||||
"Step forward completions by one entry.
|
||||
Second entry becomes the first and can be selected with
|
||||
`minibuffer-force-complete-and-exit'."
|
||||
`icomplete-force-complete-and-exit'."
|
||||
(interactive)
|
||||
(let* ((beg (icomplete--field-beg))
|
||||
(end (icomplete--field-end))
|
||||
|
@ -171,7 +181,7 @@ Second entry becomes the first and can be selected with
|
|||
(defun icomplete-backward-completions ()
|
||||
"Step backward completions by one entry.
|
||||
Last entry becomes the first and can be selected with
|
||||
`minibuffer-force-complete-and-exit'."
|
||||
`icomplete-force-complete-and-exit'."
|
||||
(interactive)
|
||||
(let* ((beg (icomplete--field-beg))
|
||||
(end (icomplete--field-end))
|
||||
|
|
|
@ -377,7 +377,7 @@ use either \\[customize] or the function `ido-mode'."
|
|||
'("\\` ")
|
||||
"List of regexps or functions matching buffer names to ignore.
|
||||
For example, traditional behavior is not to list buffers whose names begin
|
||||
with a space, for which the regexp is `\\` '. See the source file for
|
||||
with a space, for which the regexp is ‘\\` ’. See the source file for
|
||||
example functions that filter buffer names."
|
||||
:type '(repeat (choice regexp function))
|
||||
:group 'ido)
|
||||
|
@ -386,7 +386,7 @@ example functions that filter buffer names."
|
|||
'("\\`CVS/" "\\`#" "\\`.#" "\\`\\.\\./" "\\`\\./")
|
||||
"List of regexps or functions matching file names to ignore.
|
||||
For example, traditional behavior is not to list files whose names begin
|
||||
with a #, for which the regexp is `\\`#'. See the source file for
|
||||
with a #, for which the regexp is ‘\\`#’. See the source file for
|
||||
example functions that filter filenames."
|
||||
:type '(repeat (choice regexp function))
|
||||
:group 'ido)
|
||||
|
|
|
@ -511,7 +511,7 @@ evaluations respectively. If the working buffer is another IELM
|
|||
buffer, then the values in the working buffer are used. The variables
|
||||
`*1', `*2' and `*3', yield the process buffer values.
|
||||
|
||||
If, at the start of evaluation, `standard-output' is `t' (the
|
||||
If, at the start of evaluation, `standard-output' is t (the
|
||||
default), `standard-output' is set to a special function that
|
||||
causes output to be directed to the ielm buffer.
|
||||
`standard-output' is restored after evaluation unless explicitly
|
||||
|
|
|
@ -303,7 +303,7 @@ when you hit the end of the current node."
|
|||
"If non-nil, hide the tag and section reference in *note and * menu items.
|
||||
If value is non-nil but not `hide', also replaces the \"*note\" with \"see\".
|
||||
If value is non-nil but not t or `hide', the reference section is still shown.
|
||||
`nil' completely disables this feature. If this is non-nil, you might
|
||||
nil completely disables this feature. If this is non-nil, you might
|
||||
want to set `Info-refill-paragraphs'."
|
||||
:version "22.1"
|
||||
:type '(choice (const :tag "No hiding" nil)
|
||||
|
|
|
@ -34,7 +34,7 @@
|
|||
(combining-vowel . "ꪴꪰꪲꪳꪷꪸꪾ")
|
||||
(combining-tone . "꪿꫁")
|
||||
(misc . "-"))))
|
||||
;; Set all TaiViet characters to `t'.
|
||||
;; Set all TaiViet characters to t.
|
||||
(set-char-table-range table (cons #xaa80 #xaac2) t)
|
||||
(set-char-table-range table (cons #xaadb #xaadf) t)
|
||||
;; Overwrite it for special characters.
|
||||
|
|
|
@ -27708,7 +27708,7 @@ Convert space before point into a hard space if the context is right.
|
|||
|
||||
If
|
||||
* character before point is a space character,
|
||||
* character before that has “w” character syntax (i.e. it's a word
|
||||
* character before that has \"w\" character syntax (i.e. it's a word
|
||||
constituent),
|
||||
* `tildify-space-pattern' matches when `looking-back' (no more than 10
|
||||
characters) from before the space character, and
|
||||
|
|
|
@ -1244,8 +1244,8 @@ Unicode based."
|
|||
This phonetic layout replaces all the Latin letters with Bulgarian
|
||||
\(Cyrillic) letters based on similarities in their pronunciation or look.
|
||||
|
||||
Note that, since the letters 'щ', 'ь', 'ю' and 'я' are attached to the
|
||||
']', '\', '`' and '[' keys respectively, Caps Lock does not affect them."
|
||||
Note that, since the letters ‘щ’, ‘ь’, ‘ю’ and ‘я’ are attached to the
|
||||
‘]’, ‘\’, ‘`’ and ‘[’ keys respectively, Caps Lock does not affect them."
|
||||
nil t t t t nil nil nil nil nil t)
|
||||
|
||||
;; Ю 1! 2@ 3№ 4$ 5% 6€ 7§ 8* 9( 0) -– =+ ьѝ
|
||||
|
|
|
@ -49,8 +49,8 @@ C-F9 or `M-x ethio-toggle-space'
|
|||
Toggles space characters for keyboard input. The current mode is
|
||||
indicated in mode-line, whether by `_' (ASCII space) or `፡'
|
||||
(Ethiopic colon-like word separator). Even in the `፡' mode, an
|
||||
ASCII space is inserted if the point is preceded by `an Ethiopic
|
||||
punctuation followed by zero or more ASCII spaces'.
|
||||
ASCII space is inserted if the point is preceded by an Ethiopic
|
||||
punctuation char that is followed by zero or more ASCII spaces.
|
||||
|
||||
S-F5 or `M-x ethio-toggle-punctuation'
|
||||
Toggles ASCII punctuation and Ethiopic punctuation for keyboard input.
|
||||
|
|
|
@ -113,8 +113,8 @@ Only Hebrew-related characters are considered.
|
|||
|
||||
Based on latest draft of SI-1452 keyboard layout.
|
||||
Only Hebrew-related characters are considered.
|
||||
'`' is used to switch levels instead of Alt-Gr.
|
||||
Geresh is mapped to '`k'.
|
||||
‘`’ is used to switch levels instead of Alt-Gr.
|
||||
Geresh is mapped to ‘`k’.
|
||||
" nil t t t t nil nil nil nil nil t)
|
||||
|
||||
(quail-define-rules
|
||||
|
@ -603,8 +603,8 @@ Not suitable for modern Hebrew input.
|
|||
|
||||
Based on Society of Biblical Literature's SIL keyboard layout.
|
||||
Phonetic and not suitable for modern Hebrew input.
|
||||
'`' is used to switch levels instead of Alt-Gr.
|
||||
Euro Sign (€) is mapped to 'Z'.
|
||||
‘`’ is used to switch levels instead of Alt-Gr.
|
||||
Euro Sign (€) is mapped to ‘Z’.
|
||||
" nil t t t t nil nil nil nil nil t)
|
||||
|
||||
(quail-define-rules
|
||||
|
|
|
@ -46,9 +46,9 @@
|
|||
"Thai Kesmanee input method with TIS620 keyboard layout
|
||||
|
||||
The difference from the ordinal Thai keyboard:
|
||||
'฿' and '๏' are assigned to '\\' and '|' respectively,
|
||||
'ฃ' and 'ฅ' are assigned to '`' and '~' respectively,
|
||||
Don't know where to assign characters '๚' and '๛'."
|
||||
‘฿’ and ‘๏’ are assigned to ‘\\’ and ‘|’ respectively,
|
||||
‘ฃ’ and ‘ฅ’ are assigned to ‘`’ and ‘~’ respectively,
|
||||
Don't know where to assign characters ‘๚’ and ‘๛’."
|
||||
nil t t t t nil nil nil nil nil t)
|
||||
|
||||
(thai-generate-quail-map
|
||||
|
|
|
@ -62,7 +62,7 @@ See also `linum-before-numbering-hook'."
|
|||
|
||||
(defcustom linum-eager t
|
||||
"Whether line numbers should be updated after each command.
|
||||
The conservative setting `nil' might miss some buffer changes,
|
||||
The conservative setting nil might miss some buffer changes,
|
||||
and you have to scroll or press \\[recenter-top-bottom] to update the numbers."
|
||||
:group 'linum
|
||||
:type 'boolean)
|
||||
|
|
Some files were not shown because too many files have changed in this diff Show more
Loading…
Add table
Reference in a new issue