summaryrefslogtreecommitdiff
path: root/lisp/emacs-lisp
Commit message (Collapse)AuthorAgeFilesLines
...
* | Prevent over-eager rx character range condensationMattias Engdegård2019-02-161-0/+7
| | | | | | | | | | | | | | | | | | | | | | | | | | `rx' incorrectly considers character ranges between ASCII and raw bytes to cover all codes in-between, which includes all non-ASCII Unicode chars. This causes (any "\000-\377" ?Å) to be simplified to (any "\000-\377"), which is not at all the same thing: [\000-\377] really means [\000-\177\200-\377] (Bug#34492). * lisp/emacs-lisp/rx.el (rx-any-condense-range): Split ranges going from ASCII to raw bytes. * test/lisp/emacs-lisp/rx-tests.el (rx-char-any-raw-byte): Add test case. * etc/NEWS: Mention the overall change (Bug#33205).
* | Add categories L, R, SPC and . to `rx' doc stringMattias Engdegård2019-02-141-1/+5
| | | | | | | | * lisp/emacs-lisp/rx.el (rx): Add new categories to doc string.
* | Use lexical-binding in rx.elMattias Engdegård2019-02-141-25/+26
| | | | | | | | | | | | * lisp/emacs-lisp/rx.el: Use lexical-binding. (rx-form): Use `let' to bind the dynamic variable `rx-parent' instead of binding it as an argument.
* | Add missing categories L, R, . and SPC to rxMattias Engdegård2019-02-111-1/+5
| | | | | | | | | | * lisp/emacs-lisp/rx.el (rx-categories): Add missing categories L, R, . and SPC. (Bug#34436)
* | Simplify use of encode-timePaul Eggert2019-02-101-1/+1
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Most uses of (apply #'encode-time foo) can now be replaced with (encode-time foo). Make similar simplifications. * lisp/calendar/time-date.el (date-to-time): * lisp/calendar/timeclock.el (timeclock-when-to-leave) (timeclock-day-base, timeclock-generate-report): * lisp/emacs-lisp/timer.el (timer-set-idle-time): * lisp/eshell/esh-util.el (eshell-parse-ange-ls): * lisp/gnus/gnus-art.el (article-make-date-line): * lisp/gnus/gnus-delay.el (gnus-delay-article) (gnus-delay-send-queue): * lisp/gnus/gnus-icalendar.el (gnus-icalendar-event--decode-datefield): * lisp/gnus/gnus-logic.el (gnus-advanced-date): * lisp/gnus/message.el (message-make-expires-date): * lisp/gnus/nndiary.el (nndiary-compute-reminders): * lisp/mail/ietf-drums.el (ietf-drums-parse-date): * lisp/net/tramp-adb.el (tramp-adb-ls-output-time-less-p): * lisp/org/org-agenda.el (org-agenda-get-timestamps) (org-agenda-get-progress, org-agenda-show-clocking-issues): * lisp/org/org-capture.el (org-capture-set-target-location): * lisp/org/org-clock.el (org-clock-get-sum-start, org-clock-sum) (org-clocktable-steps): * lisp/org/org-colview.el (org-colview-construct-allowed-dates) * lisp/org/org-macro.el (org-macro--vc-modified-time): * lisp/org/org-table.el (org-table-eval-formula): * lisp/org/org.el (org-current-time, org-store-link) (org-time-today, org-read-date, org-read-date-display) (org-display-custom-time, org-time-string-to-time) (org-timestamp-change, org-timestamp--to-internal-time): * lisp/url/url-dav.el (url-dav-process-date-property): * lisp/vc/vc-cvs.el (vc-cvs-annotate-current-time) (vc-cvs-parse-entry): Simplify use of encode-time. * lisp/org/org-clock.el (org-clock-get-clocked-time): (org-clock-resolve, org-resolve-clocks, org_clock_out) (org-clock-update-time-maybe): Avoid some rounding problems with encode-time and float-time. * lisp/org/org-clock.el (org-clock-in, org-clock-update-time-maybe): * lisp/org/org-colview.el (org-columns--age-to-minutes): * lisp/org/org.el (org-get-scheduled-time, org-get-deadline-time) (org-add-planning-info, org-2ft, org-time-string-to-absolute) (org-closest-date): Use org-time-string-to-time instead of doing it by hand with encode-time. * lisp/org/org.el (org-current-time): Simplify rounding. (org-read-date): Avoid extra trip through encode-time.
* | Prefer encode-time to its aliasPaul Eggert2019-02-101-1/+1
| | | | | | | | | | | | | | | | | | | | | | | | | | * lisp/calendar/icalendar.el, lisp/calendar/timeclock.el: * lisp/emacs-lisp/timer.el, lisp/gnus/gnus-delay.el: * lisp/gnus/gnus-sum.el, lisp/gnus/nndiary.el: * lisp/gnus/nnrss.el, lisp/net/newst-backend.el: * lisp/net/rcirc.el, lisp/obsolete/xesam.el: * lisp/org/org-agenda.el, lisp/org/org-clock.el: * lisp/org/org-element.el, lisp/org/org-timer.el: * lisp/org/org.el, lisp/progmodes/flymake.el: * lisp/url/url-cache.el, lisp/url/url-cookie.el: Use encode-time instead of its alias seconds-to-time.
* | Document that [:cntrl:] does not match DEL (Bug#34391)Mattias Engdegård2019-02-101-1/+1
| | | | | | | | | | | | | | | | * doc/lispref/searching.texi (Character Classes): * lisp/emacs-lisp/rx.el (rx): Document that [:cntrl:] excludes DEL. * test/src/regex-emacs-tests.el (regex-tests-PTESTS-whitelist): Swap misplaced comments and fix wrong code for DEL.
* | Fix byte compile warnings in checkdoc.elAlex Branham2019-02-081-12/+2
| | | | | | | | | | | | | | | | * lisp/emacs-lisp/checkdoc.el (checkdoc-file-comments-engine): Fix byte compile warnings by requiring lisp-mnt top-level, remove XEmacs compatibility code. Bug#34290
* | * lisp/emacs-lisp/package.el: Improve generated foo-pkg.elStefan Monnier2019-02-081-1/+6
| | | | | | | | | | | | (package-generate-description-file): Make first line more informative. (package-buffer-info): Include keywords, to more closely match elpa.git's archive--metadata.
* | Make the rx operators \? and \?? behave correctlyMattias Engdegård2019-02-011-2/+2
| | | | | | | | | | | | * lisp/emacs-lisp/rx.el (rx-kleene): Treat \? and \?? like ? and ?? (Bug#34100). * test/lisp/emacs-lisp/rx-tests.el: Add tests for all repetition operators.
* | Make tabulated-list-mode-map inherit from special-mode-mapAlex Branham2019-01-251-2/+4
| | | | | | | | | | | | | | * lisp/emacs-lisp/tabulated-list.el (tabulated-list-mode-map): Use 'make-composed-keymap'. Bug #30452
* | * lisp/emacs-lisp/package.el (package--alist): NewStefan Monnier2019-01-221-19/+18
| | | | | | | | | | | | | | | | | | (package-activate-all): Use it so we only initialize the local part of package.el (this reduces the impact of bug#24467 and speeds up startup). (package-installed-p): Use it so it works even if package is not fully initialized. (package-delete): Use it so we only initialize the local part of package.el.
* | Add portable dumperDaniel Colascione2019-01-151-0/+1
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Add a new portable dumper as an alternative to unexec. Use it by default. * src/dmpstruct.awk: New file. * src/doc.c (get_doc_string): use will_dump_p(). * src/editfns.c (styled_format): silence compiler warning with UNINIT. * src/emacs-module.c (syms_of_module): staticpro ltv_mark. * src/emacs.c (gflags): new variable. (init_cmdargs): unwrap (string_starts_with_p, find_argument, dump_error_to_string) (load_pdump): new functions. (main): detect pdumper and --temacs invocation; actually load portable dump when detected; set gflags as appropriate; changes to init functions throughout to avoid passing explicit 'initialized' argument. * src/eval.c (inhibit_lisp_code): remove unused variable. (init_eval_once_for_pdumper): new function. (init_eval_once): call it. * src/filelock.c: CANNOT_DUMP -> will_dump_p() * src/fingerprint-dummy.c: new file * src/fingerprint.h: new file * src/fns.c: CANNOT_DUMP -> will_dump_p(), etc. (weak_hash_tables): remove (hashfn_equal, hashfn_eql): un-staticify (make_hash_table): set new 'next_weak' hash table field; drop global weak_hash_tables logic. (copy_hash_table): drop global weak_hash_tables logic. (hash_table_rehash): new function. (hash_lookup, hash_put, hash_remove_from_table, hash_clear): rehash if needed. (sweep_weak_table): un-staticify; explain logic; bool-ify. (sweep_weak_hash_tables): remove function. * src/font.c (syms_of_font): remember pdumper stuff. * src/fontset.c (syms_of_fontset): remember pdumper stuff. * src/frame.c (make_initial_frame): don't reset Vframe_list. (init_frame_once_for_pdumper, init_frame_once): new functions. (syms_of_frame): remove redundant staticpro. * src/fringe.c (init_fringe_once_for_pdumper): new functin. (init_fringe_once): call it. * src/ftcrfont.c (syms_of_ftcrfont_for_pdumper): new function. (syms_of_ftcrfont): call it. * src/ftfont.c (syms_of_ftfont_for_pdumper): new function. (syms_of_ftfont): call it. * src/ftxont.c (syms_of_ftxfont_for_pdumper): new function. (syms_of_ftxfont): call it. * src/gmalloc.c: adjust for pdumper througout (DUMPED): remove weird custom dumped indicator. * src/gnutls.c (syms_of_gnutls): pdumper note for gnutls_global_initialized. * src/image.c (syms_of_image): add pdumper comment, initializer note. * src/insdel.c (prepare_to_modify_buffer_1): account for buffer contents possibly being in dump image. * src/keyboard.c (syms_of_keyboard_for_pdumper): new function. (syms_of_keyboard): staticpro more; call pdumper syms function. * src/lisp.h: add comments throughout (gflags): declare. (will_dump_p, will_bootstrap_p, will_dump_with_pdumper_p) (dumped_with_pdumper_p, will_dump_with_unexec_p) (dumped_with_unexec_p, definitely_will_not_unexec_p): new functions. (POWER_OF_2, ROUNDUP): move macros. (PSEUDOVECTOR_TYPE, PSEUDOVECTOR_TYPEP): take vectorlike header pointer instead of vector; constify. (Lisp_Hash_Table): add comment about need to rehash on access; add comment for next_weak. (HASH_KEY, HASH_VALUE, HASH_HASH, HASH_TABLE_SIZE): const-ify. (hash_table_rehash): declare. (hash_rehash_needed_p, hash_rehash_if_needed): new functions. (finalizers, doomed_finalizers): declare extern. (SUBR_SECTION_ATTRIBUTE): new macro. (staticvec, staticidx): un-static-ify. (sweep_weak_hash_tables): remove declaration. (sweep_weak_table): declare. (hashfn_eql, hashfn_equal): declare. (number_finalizers_run): new variable. (Vdead): externify when ENABLE_CHECKING. (gc_root_type): new enumeration. (gc_root_visitor): new struct. (visit_static_gc_roots): declare. (vectorlike_nbytes): declare. (vector_nbytes): define as trivial inline function wrapper for vectorlike_nbytes. (init_obarray_once): change signature. (primary_thread): extern-ify. (init_buffer): change signature. (init_frame_once): declare. * src/lread.c (readevalloop): adjust for new dumped predicates. (init_obarray_once): new function. (ndefsubr): new variable. (defsubr): increment it. (load_path_check): adjust for pdumper. (load_path_default): use pdumper functions; adjust for dump search. * src/macfont.m (macfont_init_font_change_handler): avoid shadowing global. (syms_of_macfont_for_pdumper): new function. (syms_of_macfont): call it. * src/menu.c (syms_of_menu): staticpro more stuff. * src/minibuf.c (Ftry_completion): rehash if needed. (init_minibuf_once_for_pdumper): new function. (init_minibuf_once): call it. * src/nsfont.m (syms_of_nsfns): staticpro more. * src/nsfont.m (syms_of_nsfont_for_pdumper): new function. (syms_of_nsfont): call it. * src/nsterm.m (syms_of_nsfont): remember pdumper stuff. * src/pdumper.c: new file. * src/pdumper.h: new file. * src/process.c (init_process_emacs): use new pdumper functions instead of CANNOT_DUMP. * src/profiler.c (syms_of_profiler_for_pdumper): new function. (syms_of_profiler_for_pdumper): call it. * src/search.c (syms_of_search_for_pdumper): new function. (syms_of_search_for_pdumper): call it. * src/sheap.c (bss_sbrk_did_unexec): remove. * src/sheap.h (bss_sbrk_did_unexec): remove. * src/syntax.c (syms_of_syntax): don't redundantly staticpro re_match_object. * src/sysdep.c: use will_dump_with_unexec_p() instead of bss hack thing. * src/syssignals.h (init_sigsegv): declare. * src/systime.h (init_timefns): remove bool from signature. * src/textprop.c (syms_of_textprop): move staticpro. * src/thread.c (main_thread_p): constify. * src/thread.h (main_thread_p): constify. * src/timefns.c (init_timefns): remove bool from signature. (syms_of_timefns_for_pdumper): new function. (syms_of_timefns): call it. * src/w32.c: rearrange code. * src/w32.h (w32_relocate): declare. * src/w32fns.c (syms_of_w32fns): add pdumper note. * src/w32font.c (syms_of_w32font_for_pdumper): new function. (syms_of_w32font): call it. * src/w32heap.c (using_dynamic_heap): new variable. (init_heap): use it. * src/w32menu.c (syms_of_w32menu): add pdumper note. * src/w32proc.c (ctrl_c_handler, mainCRTStartup, _start, open_input_file) (rva_to_section, close_file_data): move here. * src/w32uniscribe.c (syms_of_w32uniscribe_for_pdumper): new function. (syms_of_w32uniscribe): call it. * src/window.c (init_window_once_for_pdumper): new function. (init_window_once): call it; staticpro more stuff. * src/xfont.c (syms_of_xfont_for_pdumper): new function. (syms_of_xfont): call it. * src/xftfont.c (syms_of_xftfont_for_pdumper): new function. (syms_of_xftfont): call it. * src/xmenu.c (syms_of_xmenu_for_pdumper): new function. (syms_of_xmenu): call it. * src/xselect.c (syms_of_xselect_for_pdumper): new function. (syms_of_xselect): call it. * src/xsettings.c (syms_of_xsettings): add more pdumper notes. * src/term.c (syms_of_xterm): add pdumper note. * src/dispnew.c (init_faces_initial): new function. (init_display_interactive): rename from init_display; use will_dump_p instead of !initialized. Initialize faces early for pdumper if needed. (init_display): new function. (syms_of_display_for_pdumper): new function. (syms_of_display): call it. * src/dbusbind.c (syms_of_dbusbind): Add TODO for bus reset on pdumper load. * src/data.c (Fdefalias): Use will_dump_p instead of Vpurify_flag. (Fmake_variable_buffer_local): silence compiler warning with -Og by making valcontents UNINIT. (arith_driver): silence compiler warning with UNINIT. * src/conf_post.h (ATTRIBUTE_SECTION): new macro. * src/composite.c (composition_gstring_put_cache): rehash hash table if needed. * src/coding.c (init_coding_once, syms_of_coding): remember pdumper stuff. * src/charset.h (charset_table_size, charset_table_user): declare. * src/charset.c (charset_table_used, charset_table_size): un-static. (init_charset_oncem, syms_of_charset): remember pdumper stuff. * src/category.c (category_table_version): remove obsolete variable. * src/callint.c (syms_of_callint): staticpro 'preserved_fns' (init_callproc): use will_dump_p instead of !CANNOT_DUMP. * src/bytecode.c (exec_byte_code): rehash table tables if needed * src/buffer.c (alloc_buffer_text, free_buffer_text): account for pdumper (init_buffer_once): add TODO; remember stuff for pdumper. (init_buffer): don't take initialized argument; adjust for pdumper. * src/atimer.c (init_atimer): initialize subr only if !initialized. * src/alloc.c: (vector_marked_p, set_vector_marked) (vectorlike_marked_p, set_vectorlike_marked, cons_marked_p) (set_cons_marked, string_marked_p, set_string_marked) (symbol_marked_p, set_symbol_marked, interval_marked_p) (set_interval_marked): new accessor routines. Use them instead of raw GC access throughout. (Vdead): make non-static when ENABLE_CHECKING. (vectorlike_nbytes): rename of 'vector_nbytes'; take a vectorlike header as input instead of a vector. (number_finalizers_run): new internal C variable. (mark_maybe_object): check for pdumper objects. (valid_pointer_p): don't be gratuitously inefficient under rr(1). (make_pure_c_string): add support for size_byte = -2 mode indicating that string data points into Emacs image rodata. (visit_vectorlike_root): visits GC roots embedded in vectorlike objects. (visit_buffer_root): visits GC roots embedded in our totally-not-a-buffer buffer global objects. (visit_static_gc_roots): visit GC roots in the Emacs data section. (mark_object_root_visitor): root callback used for conventional GC marking (weak_hash_tables): new internal variable for tracking found weak hash tables during GC. (mark_and_sweep_weak_table_contents): new weak hash table marking. (garbage_collect_1): use new GC root visitor machinery. (mark_vectorlike): accept a vectorlike_header instead of a Lisp_Vector. (mark_frame, mark_window, mark_hash_table): new functions. (mark_object): initialize 'm'; check for pdumper objects and use new mark-bit accessors throughout. Remove some object-specific marking code and move to helper functions above. (survives_gc_p): check for pdumper objects. (gc-sweep): clear pdumper mark bits. (init_alloc_once_for_pdumper): new helper function for early init called both during normal init and pdumper load. (init_alloc_once): pdumper integration. * src/Makefile.in: Rewrite dumping for pdumper; add pdumper.o; invoke temacs with --temacs command line option; build dmpstruct.h from dmpstruct.awk; stop relying on CANNOT_DUMP; clean up pdumper intermediate files during build. * nextstep/Makefile.in: build emacs.pdmp into NS packages * lisp/startup.el: account for new '--temacs' and '--dump-file' command line option. * lisp/loadup.el: rewrite early init to account for pdumper; use injected 'dump-mode' variable (set via the new '--temacs' option) instead of parsing command line. * lisp/cus-start.el: Check 'dump-mode' instead of 'purify-flag', since the new 'dump-mode' * lib-src/make-fingerprint.c: new program * lib-src/Makefile.in: built make-fingerprint utility program * configure.ac: Add --with-pdumper toggle to control pdumper support; add --with-unexec toggle to control unexec support. Add --with-dumping option to control which dumping strategy we use by default. Adjust for pdumper throughout. Check for posix_madvise. * Makefile.in: Add @DUMPING@ substitution; add pdumper mode. * .gitignore: Add make-fingerprint, temacs.in, fingerprint.c, dmpstruct.h, and pdumper dump files.
* | * lisp/emacs-lisp/package.el (package-activate-all): Fix last changeStefan Monnier2019-01-141-1/+3
| |
* | * lisp/emacs-lisp/package.el (package-activate-all): Silence load msgStefan Monnier2019-01-141-4/+2
| |
* | * lisp/emacs-lisp/map.el: Prepare for addition to GNU ELPAStefan Monnier2019-01-081-0/+1
| |
* | Use integers for syntax-pps-statsPaul Eggert2019-01-061-16/+16
| | | | | | | | | | | | | | | | | | | | * lisp/emacs-lisp/syntax.el (syntax-ppss-stats): Use integers, not floating-point, for stats, now that integers are unbounded. Almost always these should be fixnums. Add 1 to last slot’s car so that this addition need not be done at runtime. (syntax-pps-stats, syntax-ppss): Use integers for calculations. (syntax-ppss--update-stats): New convenience function. (syntax-ppss): Use it.
* | Update more copyright yearsPaul Eggert2018-12-313-3/+3
| | | | | | | | | | | | | | | | Update some other copyright years automatically, by running: Run 'UPDATE_COPYRIGHT_YEAR=2019 \ UPDATE_COPYRIGHT_USE_INTERVALS=1 \ UPDATE_COPYRIGHT_MAX_LINE_LENGTH=79 admin/update-copyright' followed by 'admin/merge-gnulib'.
* | Merge from origin/emacs-26Paul Eggert2018-12-3187-87/+87
|\| | | | | | | | | | | 2fcf2df Fix copyright years by hand 26bed8b Update copyright year to 2019 2814292 Fix value of default frame height. (Bug#33921)
| * Fix copyright years by handPaul Eggert2019-01-011-1/+1
| | | | | | | | | | These are dates that admin/update-copyright did not update, or updated incorrectly.
| * Update copyright year to 2019Paul Eggert2019-01-0186-86/+86
| | | | | | | | Run 'TZ=UTC0 admin/update-copyright $(git ls-files)'.
* | Handle raw bytes, and LF in ranges, in rx `any' argument stringsMattias Engdegård2018-12-291-22/+29
| | | | | | | | | | | | * lisp/emacs-lisp/rx.el (rx-check-any-string): Rewrite to handle raw bytes in unibyte strings and accept LF as range endpoints (Bug#33205). * test/lisp/emacs-lisp/rx-tests.el: Add tests for the above.
* | Accept 1-arg 'substring' calls in byte compilerPaul Pogonyshev2018-12-271-1/+1
| | | | | | | | | | | | Those have been supported by the function implementation since commit 2014-03-31T12:06:34Z!dmantipov@yandex.ru (Bug#33807). * lisp/emacs-lisp/bytecomp.el: substring has 1-3 args, not 2-3.
* | Fix last change of debug.elMartin Rudalics2018-12-271-19/+19
| | | | | | | | | | * lisp/emacs-lisp/debug.el (debug): In noninteractive calls do the buffer text truncation in the debugger buffer.
* | Set up debugger buffer earlier and fit window to it (Bug#32825)Martin Rudalics2018-12-261-19/+21
| | | | | | | | | | | | * lisp/emacs-lisp/debug.el (debug): Set up debugger buffer before displaying it and advise 'display-buffer' to fit the window to it (Bug#32825).
* | * lisp/emacs-lisp/debug.el (debug): Add display-buffer-below-selectedJuri Linkov2018-12-211-3/+5
| | | | | | | | | | to display actions of pop-to-buffer, and `(window-min-height . 10)' to display alist. (Bug#32825)
* | Merge from origin/emacs-26Glenn Morris2018-12-201-1/+1
|\| | | | | | | | | 081fb69 (origin/emacs-26) Check result from c-backward-token-2 to avo... f4ea746 cl-make-random-state was not copying its arg
| * cl-make-random-state was not copying its argPaul Eggert2018-12-191-1/+1
| | | | | | | | | | | | | | | | Problem reported by Xu Chunyang (Bug#33731). * lisp/emacs-lisp/cl-extra.el (cl-make-random-state): Use copy-sequence, not copy-tree, so that the record is copied. * test/lisp/emacs-lisp/cl-extra-tests.el: (cl-extra-test-cl-make-random-state): New test.
* | * lisp/emacs-lisp/map.el: Add support for plistsStefan Monnier2018-12-201-30/+78
| | | | | | | | | | | | | | | | | | | | (map--plist-p, map--plist-delete): New functions. (map-elt, map-delete, map-length, map-into, map-put!, map-insert) (map-apply, map-do): Handle the plist case. * test/lisp/emacs-lisp/map-tests.el (with-maps-do): Add sample plist. (test-map-put!): The behavior of map-put! is not the same for plists as for alists.
* | Minor fixes/simplifications to time functionsPaul Eggert2018-12-191-3/+1
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | * doc/lispintro/emacs-lisp-intro.texi (Files List): Simplify. * doc/lispref/os.texi (Time of Day): Mention format-time-string as an alternative to current-time-string. * lisp/arc-mode.el (archive-unixdate, archive-unixtime): Port better to future versions of Emacs where (COUNT . HZ) will take precedence to (HI . LO). * lisp/arc-mode.el (archive-unixtime): * lisp/calendar/todo-mode.el (todo-insert-item--basic) (todo-item-done, todo-read-time): Prefer format-time-string to substringing current-time-string. * lisp/calc/calc-forms.el (calc-time, calcFunc-now): Prefer decode-time to parsing the output of current-time-string. * lisp/emacs-lisp/cl-extra.el (cl--random-time): Prefer encode-time to hashing the output of current-time-string. * lisp/gnus/gnus-score.el (gnus-score-headers) (gnus-score-adaptive): Avoid stringifying and then reparsing timestamp. * src/timefns.c (Fencode_time): Omit redundant assignment.
* | New convenience functions in seq.elNicolas Petton2018-12-181-1/+9
| | | | | | | | | | | | | | | | | | | | Functions to access the first or all but the first elements of sequences have been repeatedly asked for (the last occurrence being https://github.com/NicolasPetton/seq.el/issues/9). * lisp/emacs-lisp/seq.el (seq-first, seq-rest): New functions. * test/lisp/emacs-lisp/seq-tests.el (test-seq-first, test-seq-rest): New tests for seq-first and seq-rest.
* | Tiny ert-summarize-tests-batch-and-exit improvementGlenn Morris2018-12-171-1/+2
| | | | | | | | | | * lisp/emacs-lisp/ert.el (ert-summarize-tests-batch-and-exit): Report the details of unexpected passes as well as failures.
* | * lisp/emacs-lisp/map.el: Avoid special casing lists.Stefan Monnier2018-12-171-15/+36
| | | | | | | | | | | | | | | | | | | | | | (map-not-inplace, map-inplace): New errors. (map-insert): New generic function. (map-put!): Signal map-not-inplace rather than a generic 'error'. (map-elt): Use map-not-inplace and map-insert to avoid hardcoding a special case for lists. * test/lisp/emacs-lisp/map-tests.el (test-map-put!): Rename from test-map-put. Also test the errors signaled.
* | * lisp/emacs-lisp/macroexp.el: Don't hide backtraceStefan Monnier2018-12-161-1/+1
| | | | | | | | (macroexp--compiler-macro): Use condition-case-unless-debug.
* | * lisp/emacs-lisp/map.el: Fix recent changesBasil L. Contovounesios2018-12-141-5/+9
| | | | | | | | | | | | | | | | (map-empty-p): Add method for lists which avoids computing their entire length. (map-contains-key): Check for alist membership by comparing against DEFAULT argument returned by alist-get. (map-put!): Reconcile argument name with that used in docstring.
* | Get long package description for installed packages from installed filesStephen Leake2018-12-131-22/+63
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | * doc/lispref/package.texi (Archive Web Server): New; document web server interface. * lisp/emacs-lisp/package.el (package--get-description): New; get long description from installed files. (describe-package-1): Use it, improve comments. No longer writing NAME-readme.txt. * test/lisp/emacs-lisp/package-tests.el: (package-test-describe-package): There is now a description for an installed package. (package-test-describe-installed-multi-file-package): New test.
* | * lisp/emacs-lisp/map.el: Make the functions genericStefan Monnier2018-12-111-102/+106
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Make them document their delegation relationship, to clarify when a method is needed. (map--dispatch): Give more info in the error message. (map-elt): Make it generic and deprecate the 'testfn' arg. (map-put): Make it obsolete. (map-length): Make it work on hash-tables. (map-apply): Define it in terms of map-do. (map-do, map-into): Use cl-generic dispatch instead of map--dispatch. (map-empty-p): Define it in terms of map-length. (map-contains-key): Deprecate 'testfn'. Make it return a boolean, so it can return non-nil even if 'key' is nil. Improve implementation to avoid constructing an intermediate list of all keys. (map-merge-with): Use 'eql' rather than `eq'. (map-put!): Rename from map--put and make it generic, to replace map-put. (map--apply-alist, map--apply-hash-table, map--apply-array): Turn them into methods of map-apply. (map--do-alist, map--do-array): Turn them into methods of map-do. (map--into-hash-table): Turn it into a method of map-into.
* | Merge from origin/emacs-26Glenn Morris2018-12-101-0/+21
|\| | | | | | | | | 5a7451c CC Mode: stop wrongly recognizing "func(a * 9)" as "pointer t... b0ed9d1 * lisp/emacs-lisp/cursor-sensor.el: Add motivation
| * * lisp/emacs-lisp/cursor-sensor.el: Add motivationStefan Monnier2018-12-091-0/+21
| |
* | Merge from origin/emacs-26Glenn Morris2018-12-101-7/+19
|\| | | | | | | | | | | | | | | | | | | | | | | | | | | | | 908af9d Indexing followup to recent changes 505ac9a Improve documentation of cursor-sensor.el (bug#33664) d817d2c * doc/lispref/commands.texi (Adjusting Point): Bug#33662 18442da Tramp multi-hop methods must be inline 1e3e24d ; * src/xterm.c (x_update_begin): Fix whitespace. 1d743d2 Fix scaling problem in Cairo builds 2b9e993 ; * doc/lispref/text.texi (Special Properties): Fix wording. ... e568202 * lisp/simple.el (next-line-or-history-element): Use current-... c7897c2 A few further fixes of window internals description # Conflicts: # doc/misc/tramp.texi
| * Improve documentation of cursor-sensor.el (bug#33664)Stefan Monnier2018-12-091-7/+19
| | | | | | | | | | | | * doc/lispref/text.texi (Special Properties): Mention cursor-sensor-inhibit. * lisp/emacs-lisp/cursor-sensor.el (Commentary): Add cursor-sensor-mode. (cursor-sensor-inhibit): Add docstring.
* | Don't create *Compile-Log* due to byte-compile. Amend message to it.Alan Mackenzie2018-12-091-4/+2
| | | | | | | | | | | | | | | | | | This fixes bug #33602 and is a partial reversion of a commit from 2018-11-28T13:15:50. * lisp/emacs-lisp/bytecomp.el (byte-compile-log-file): Don't create buffer *Compile-Log* because it doesn't already exist. Amend message "Compiling no file" to be clearer (?and less irritating).
* | Fix quote in the copyright skeletonMichael Heerdegen2018-12-081-1/+1
| | | | | | | | | | | | | | | | Revert replacing a backquote in the "copyright" skeleton with a quote done in "Replace insignificant backquotes" which broke the skeleton. * lisp/emacs-lisp/copyright.el (copyright): Restore the correct version of the skeleton that used a backquote.
* | * lisp/emacs-lisp/eldoc.el: Let the user interrupt the searchStefan Monnier2018-12-041-6/+9
| | | | | | | | (eldoc-print-current-symbol-info): Use while-no-input and non-essential.
* | Merge from origin/emacs-26Glenn Morris2018-12-021-16/+13
|\| | | | | | | | | | | 745c9c0 (origin/emacs-26) Revert "Revert "Fix infloop in GC mark_kboa... c418c85 Revert "Fix infloop in GC mark_kboards" 8fa0d96 * lisp/emacs-lisp/subr-x.el (if-let, when-let): Doc fix: acti...
| * * lisp/emacs-lisp/subr-x.el (if-let, when-let): Doc fix: active voice.Glenn Morris2018-12-011-16/+13
| |
* | * lisp/emacs-lisp/bytecomp.el: Don't load compile at runtime.Glenn Morris2018-11-281-1/+1
| | | | | | | | It isn't needed and slows down compiling other files.
* | Merge from origin/emacs-26Glenn Morris2018-11-281-3/+7
|\| | | | | | | | | | | | | | | | | | | | | | | 74a3a79 (origin/emacs-26) Fix a typo in a doc string 911766d Minor markup fix in frames.texi 19ed1e9 * lisp/net/trampver.el (customize-package-emacs-version-alist... d7132ad * lisp/mh-e/mh-e.el (customize-package-emacs-version-alist): ... 5f39260 * lisp/emacs-lisp/map-ynp.el (map-y-or-n-p): Pass format to m... a291f62 Don't call xwidget functions until GTK has been initialized f0531b8 Improve documentation of Ediff wordwise commands 2925ce5 Support Hunspell 1.7.0 in ispell.el 03bb7a8 Avoid clearing echo-area message by auto-save-visited-file-name
| * Fix a typo in a doc stringEli Zaretskii2018-11-281-1/+1
| | | | | | | | | | * lisp/emacs-lisp/map-ynp.el (read-answer-short): Fix typo. (Bug#33528)
| * * lisp/emacs-lisp/map-ynp.el (map-y-or-n-p): Pass format to message.Glenn Morris2018-11-271-1/+3
| |