aboutsummaryrefslogtreecommitdiffstats
path: root/src/buffer.c (follow)
Commit message (Collapse)AuthorAgeFilesLines
...
* | | Make truncate-lines permanently local (bug#15396)Glenn Morris2017-11-301-1/+3
|/ / | | | | | | | | | | | | Width of lines relative to display is rarely a function of major mode. * src/buffer.c (init_buffer_once) <truncate-lines>: Flag as permanently local. * lisp/bindings.el (truncate-lines): Add permanent-local property.
* | Improve documentation of "constant" symbolsEli Zaretskii2017-11-261-0/+2
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | * src/font.c (syms_of_font) <font-weight-table, font-slant-table> <font-width-table>: * src/data.c (syms_of_data) <most-positive-fixnum> <most-negative-fixnum>: * src/buffer.c (syms_of_buffer) <enable-multibyte-characters>: Mention in the doc strings that these variables are read-only. * doc/lispref/variables.texi (Creating Buffer-Local): Document that making a constant variable buffer-local signals an error. * doc/lispref/variables.texi (Constant Variables): * doc/lispref/errors.texi (Standard Errors): More accurate and up-to-date documentation of which symbols cannot be assigned values.
* | Work around GCC bug 80776 on Fedora 27 x86Paul Eggert2017-11-251-1/+5
| | | | | | | | | | | | | | * src/buffer.c (Fgenerate_new_buffer_name): Pacify GCC 7.2.1 20170915 (Red Hat 7.2.1-2) on i686 with -Wformat-overflow -O2 by using XINT rather than XFASTINT and by adding an eassume. This works around GCC bug 80776.
* | * lisp/bindings.el (buffer-file-coding-system):Glenn Morris2017-11-221-0/+2
| | | | | | | | | | | | Add explicit permanent-local mark. ; * src/buffer.c (init_buffer_once): Comment.
* | Use alignas to fix GCALIGN-related bugsPaul Eggert2017-11-131-9/+10
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Use alignas and unions to specify alignments of objects needing addresses that are at least a multiple of GCALIGNMENT. Using these standard C facilities should be safer than relying on ad hoc and poorly-understood features like GCC’s __attribute__ ((aligned (N))), the root cause for recent porting bugs like Bug#29040. The alignas macro was standardized by C11 and Gnulib supports alignas for pre-C11 platforms. I have tested this on Sun Studio 12 sparc (2007) and GCC 4.4.7 x86-64 (2012) as well as on more recent platforms like GCC 7.2.1 (2017) on Fedora 26 (both x86-64 and x86). * lib-src/make-docfile.c (close_emacs_globals): lispsym is now just an array of struct Lisp_Symbol, since struct Lisp_Symbol is now properly aligned. All uses changed. * src/alloc.c (NEXT_FREE_LISP_STRING): Just use the new u.next member; this is simpler and safer than casting a pointer that might not be aligned properly. (aligned_Lisp_Symbol): Remove. No longer needed, now that struct Lisp_Symbol is aligned properly. All uses replaced with struct Lisp_Symbol. * src/lisp.h (GCALIGNED): Remove, as it does not work as expected: it can cause the natural alignment to be ignored. All uses replaced by unions with a ‘char alignas (GCALIGNMENT)’ member as described below. (struct Lisp_Symbol, struct Lisp_Cons, struct Lisp_String): Change definition from ‘struct TAG { MEMBERS };’ to ‘struct TAG { union { struct { MEMBERS } s; char alignas (GCALIGNMENT) gcaligned; } u; };’. This guarantees ‘struct TAG’ to have an alignment that at least max (GCALIGNMENT, N) where N is its old alignment. All uses like ‘PTR->MEMBER’ changed to ‘PTR->u.s.MEMBER’; these uses were supposed to be mostly private anyway. Verify that the resulting ‘struct TAG’ is properly aligned for Emacs. (union vectorlike_header): New member ‘gcaligned’ to guarantee that this type, and its containing types like ‘struct Lisp_Subr’, ‘struct buffer’ and ‘struct thread_state’, are all properly aligned for Emacs. (struct Lisp_String): New union member ‘next’, for the benefit of NEXT_FREE_LISP_STRING. (union Aligned_Cons, union Aligned_String): Remove. All uses replaced by struct Lisp_Cons and struct Lisp_String, since they are now properly aligned. (USE_STACK_CONS, USE_STACK_STRING): Simplify now that we can assume struct Lisp_Cons and struct Lisp_String are properly aligned.
* | Use GCALIGNED properly for GCCPaul Eggert2017-11-081-2/+2
| | | | | | | | | | | | | | | | | | | | | | | | | | Apparently GCC requires that ‘__attribute__ ((aligned (8)))’ must immediately follow the ‘struct’ keyword when aligning a structure. The attribute silently does not work if it follows a tag after the ‘struct’ keyword. Who knew? Anyway, this patch is designed to fix a SIGSEGV problem reported by John Mastro (Bug#29183). * lib-src/make-docfile.c (close_emacs_globals): * src/buffer.c (buffer_defaults, buffer_local_symbols): * src/lisp.h (DEFUN): * src/thread.c (main_thread): Put 'GCALIGNED' immediately after 'struct'.
* | Fix alignment portability problemsPaul Eggert2017-11-021-2/+2
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Do not assume that the natural alignment of Lisp objects is a multiple of GCALIGNMENT. This improves on the portability of the recent fix for Bug#29040. * lib-src/make-docfile.c (close_emacs_globals): * src/buffer.c (buffer_defaults, buffer_local_symbols): * src/lisp.h (DEFUN): * src/thread.c (main_thread): Use GCALIGNED, not alignas (GCALIGNMENT). * src/alloc.c (COMMON_MULTIPLE): Move back here from lisp.h, since it is no longer used elsewhere. * src/lisp.h (GCALIGNMENT): No longer a macro, since we need not worry about MSVC. Omit no-longer-needed consistency check. * src/thread.c (THREAD_ALIGNMENT): Remove.
* | ; Doc fixesCharles A. Roelli2017-10-311-1/+1
| | | | | | | | | | | | | | | | | | * lisp/progmodes/xref.el (xref-file-location) (xref-backend-apropos): * etc/NEWS (Lisp Changes in Emacs 26.1): * doc/emacs/msdos.texi (Windows Keyboard): * lisp/vc/vc.el (vc-print-branch-log): * src/buffer.c (word-wrap): Doc additions and fixes.
* | Avoid compilation warnings in optimized buildsEli Zaretskii2017-10-151-2/+2
| | | | | | | | | | | | | | | | | | | | * src/process.c (Fmake_network_process): * src/image.c (xbm_scan, gif_load): * src/fileio.c (Frename_file): * src/data.c (Fmake_local_variable): * src/buffer.c (fix_start_end_in_overlays): * lib-src/etags.c (process_file_name): Mark variables with UNINIT to avoid compiler warnings in optimized builds.
* | ; Typo fixes, mostly repeated wordsPaul Eggert2017-10-091-1/+1
|/
* Fix order of sorted overlays returned by 'overlays-at'Eli Zaretskii2017-09-161-0/+6
| | | | | | | | * src/buffer.c (Foverlays_at): If SORTED is non-nil, reverse the list of results, to have their order as per the documentation. (Bug#28390) * etc/NEWS: Mention the change in the behavior of overlays-at.
* Prefer HTTPS to FTP and HTTP in documentationPaul Eggert2017-09-131-1/+1
| | | | | | | | | | | | | Most of this change is to boilerplate commentary such as license URLs. This change was prompted by ftp://ftp.gnu.org's going-away party, planned for November. Change these FTP URLs to https://ftp.gnu.org instead. Make similar changes for URLs to other organizations moving away from FTP. Also, change HTTP to HTTPS for URLs to gnu.org and fsf.org when this works, as this will further help defend against man-in-the-middle attacks (for this part I omitted the MS-DOS and MS-Windows sources and the test tarballs to keep the workload down). HTTPS is not fully working to lists.gnu.org so I left those URLs alone for now.
* Improve --enable-gcc-warnings for MinGW64Paul Eggert2017-09-091-1/+1
| | | | | | | | | | | | | | | | This partially reverts my 2016-05-30 patch. Apparently MinGW64 still requires pacifications that GCC 7.1.1 x86-64 (Fedora 26) does not. Also, pacify tparam.c, which isn’t used on Fedora. * lib-src/etags.c (process_file_name, TeX_commands): * src/buffer.c (fix_overlays_before): * src/data.c (Fmake_variable_buffer_local, cons_to_unsigned) (cons_to_signed): * src/editfns.c (Ftranslate_region_internal): Prefer UNINIT to some stray value, as this simplifies code-reading later. * src/eval.c (CACHEABLE): New macro. (internal_lisp_condition_case): Use it. * src/tparam.c (tparam1): Use FALLTHROUGH to pacify GCC.
* Fix compilation warnings in MinGW64 build using GCC 7Eli Zaretskii2017-09-091-1/+1
| | | | | | | | | | | | | | | | | | | | | | | Reported by Richard Copley <rcopley@gmail.com>. * src/w32heap.c (init_heap): Declare enable_lfh only for mingw.org's MinGW build. * src/w32console.c (w32con_write_glyphs): * src/unexw32.c (get_section_info, COPY_CHUNK, unexec): Fix some mismatches of data type vs format spec. * src/w32fns.c (compute_tip_xy): * src/w32proc.c (stop_timer_thread): * src/w32notify.c (remove_watch): * src/eval.c (internal_lisp_condition_case): * src/editfns.c (Ftranslate_region_internal): * src/data.c (Fmake_variable_buffer_local, cons_to_unsigned) (cons_to_signed): * src/buffer.c (fix_overlays_before): Initialize variables to avoid compiler warnings. * lib-src/etags.c (TeX_commands, process_file_name): Initialize variables to avoid compilation warnings.
* Improve make-temp-file performance on local filesPaul Eggert2017-08-121-1/+0
| | | | | | | | | | | | | | | | | | | | | | | | | | For the motivation behind this patch, please see Bug#28023 and: http://emacshorrors.com/posts/make-temp-name.html Although, given the recent changes to Tramp, the related security problem in make-temp-file is already fixed, make-temp-file still has several unnecessary system calls. In the typical case on GNU/Linux, this patch replaces 8 syscalls (symlink, open, close, readlinkat, uname, getpid, unlink, umask) by 2 (open, close). * admin/merge-gnulib (GNULIB_MODULES): Add tempname, now that Emacs is using it directly. * configure.ac (AUTO_DEPEND): Remove AC_SYS_LONG_FILE_NAMES; no longer needed. * lib/gnulib.mk.in, m4/gnulib-comp.m4: Regenerate. * lisp/files.el (files--make-magic-temp-file): Rename from make-temp-file. (make-temp-file): Use make-temp-file-internal for non-magic file names. * src/fileio.c: Include tempname.h. (make_temp_name_tbl, make_temp_name_count) (make_temp_name_count_initialized_p, make_temp_name): Remove. (Fmake_temp_file_internal): New function. (Fmake_temp_name): Use it. * src/filelock.c (get_boot_time): Use Fmake_temp_file_internal instead of make_temp_name.
* Fix a bug in 'generate-new-buffer-name'Eli Zaretskii2017-08-051-1/+2
| | | | | | | | | * src/buffer.c (Fgenerate_new_buffer_name): Test IGNORE for being nil before calling string-equal, since the latter will compare "nil and 'nil' as equal. (Bug#27966) * test/src/buffer-tests.el (test-generate-new-buffer-name-bug27966): New test.
* Allow user control on what starts and ends a paragraph for bidiEli Zaretskii2017-07-171-0/+59
| | | | | | | | | | | | | | | | | | | | | | | | * src/buffer.h (struct buffer): New members bidi_paragraph_separate_re_ and bidi_paragraph_start_re_. * src/buffer.c (bset_bidi_paragraph_start_re) (bset_bidi_paragraph_separate_re): New setters/ (Fbuffer_swap_text): Swap the values of bidi-paragraph-start-re and bidi-paragraph-separate-re. (init_buffer_once): Init the values of bidi-paragraph-start-re and bidi-paragraph-separate-re. (syms_of_buffer) <bidi-paragraph-start-re, bidi-paragraph-separate-re>: New per-buffer variables. * src/bidi.c (bidi_at_paragraph_end, bidi_find_paragraph_start): Support bidi-paragraph-start-re and bidi-paragraph-separate-re. (bidi_move_to_visually_next): Handle correctly the case when the separator matches an empty string. (Bug#27526) * doc/emacs/mule.texi (Bidirectional Editing): * doc/lispref/display.texi (Bidirectional Display): Document bidi-paragraph-start-re and bidi-paragraph-separate-re. * etc/NEWS: Mention bidi-paragraph-start-re and bidi-paragraph-separate-re.
* Add an optional testfn parameter to assocNicolas Petton2017-07-111-1/+1
| | | | | | | | | | | | | | | | | | | | | | | | * src/fns.c (assoc): New optional testfn parameter used for comparison when provided. * test/src/fns-tests.el (test-assoc-testfn): Add tests for the new 'testfn' parameter. * src/buffer.c: * src/coding.c: * src/dbusbind.c: * src/font.c: * src/fontset.c: * src/gfilenotify.c: * src/image.c: * src/keymap.c: * src/process.c: * src/w32fns.c: * src/w32font.c: * src/w32notify.c: * src/w32term.c: * src/xdisp.c: * src/xfont.c: Add a third argument to Fassoc calls. * etc/NEWS: * doc/lispref/lists.texi: Document the new 'testfn' parameter.
* Allow to disable display of line numbers beyond EOBEli Zaretskii2017-06-251-0/+27
| | | | | | | | | * src/buffer.c (disable_line_numbers_overlay_at_eob): New function. * src/lisp.h (disable_line_numbers_overlay_at_eob): Add prototype. * src/xdisp.c (should_produce_line_number): When at ZV, call disable_line_numbers_overlay_at_eob to determine whether line numbers should be displayed beyond ZV.
* Implement 1-based column numbering in mode linePerry E. Metzger2017-05-101-0/+3
| | | | | | | | | | | | | | | | | | | | | * src/xdisp.c (decode_mode_spec): Implement the %C construct. * lisp/bindings.el (column-number-indicator-zero-based): New defcustom. (mode-line-position): Use %C when column-number-indicator-zero-based is nil. * src/xdisp.c (syms_of_xdisp) <frame-title-format>: * src/buffer.c (syms_of_buffer) <mode-line-format>: * doc/lispref/modes.texi (%-Constructs): * doc/lispref/frames.texi (Frame Titles): Document the %C construct. * doc/emacs/display.texi (Optional Mode Line): Document 'column-number-indicator-zero-based'. * etc/NEWS: Mention 'column-number-indicator-zero-based' and the %C construct.
* Merge from origin/emacs-25Glenn Morris2017-04-271-1/+3
|\ | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | 784602b1050 (origin/emacs-25) ; Add release notice 3a34412caae (tag: emacs-25.2) Set Emacs version to 25.2 and update AU... 56a4461a48d ; Move stray item from admin/notes/repo to CONTRIBUTE 2b0d1118199 ; CONTRIBUTE: Remove stray header. f2ab09ec60d Fix a typo in indexing the user manual bc55a574235 * lisp/menu-bar.el (kill-this-buffer): Doc fix. (Bug#26466) a6d50401b4b Document 'line-pixel-height' 0c55cf43e61 * search.c (Fre_search_forward, Fre_search_backward): Imp... c7ed57eaef4 Mention that processes start in default-directory (Bug#18... 856ec9ffa1f * src/xdisp.c (vmessage, message): Clarify commentary. 849a0aaa1c9 Belated fixes for admin.el's M-x make-manuals-dist 84938d79698 default-directory: Remark that it must be a directory name 3f0d047d2eb Delete confuse statement in manual ee1bd94dd0c Improve packaging documentation fb18bff91f0 Expand manual section on quitting windows 9a737079645 Fix docstring of dabbrev-abbrev-char-regexp afe8849bac1 * doc/misc/cl.texi (Iteration Clauses): Clarify example (... ada79442c07 ;* doc/misc/info.texi (Choose menu subtopic): Improve ind... d38fd9229c0 Narrow scope of modification hook renabling in org-src fo... e0e9db4c84a ; Spelling fix # Conflicts: # README # etc/AUTHORS # etc/HISTORY # lisp/ldefs-boot.el
| * default-directory: Remark that it must be a directory nameTino Calancha2017-03-311-1/+3
| | | | | | | | * src/buffer.c (default-directory): Update docstring (Bug#26272).
* | Merge from origin/emacs-25Paul Eggert2017-03-191-2/+2
|\ \ | |/ | | | | | | | | | | | | | | | | | | | | | | 5569e64 ; Spelling fixes 24a5f57 * lisp/net/eww.el (eww-tag-meta): Handle single quoted URLs (... 9b89896 * lisp/progmodes/sql.el (sql-product-alist): Doc tweak 69b50f5 * lisp/progmodes/sql.el (sql-product-alist): Doc fix. (Bug#2... 42eae54 Improve documentation of dabbrevs b0ade0d Clarify that easy-menu-add is a nop (Bug#25382) 3c69f2c * lisp/textmodes/rst.el (rst-package-emacs-version-alist): Fi... # Conflicts: # lisp/textmodes/rst.el
| * ; Spelling fixesEli Zaretskii2017-01-161-2/+2
| | | | | | | | | | * src/buffer.c (delete_all_overlays, Fkill_buffer): Fix typos in comments.
* | Replace QUIT with maybe_quitPaul Eggert2017-01-251-8/+5
| | | | | | | | | | | | | | | | There’s no longer need to have QUIT stand for a slug of C statements. Use the more-obvious function-call syntax instead. Also, use true and false when setting immediate_quit. These changes should not affect the generated machine code. * src/lisp.h (QUIT): Remove. All uses replaced by maybe_quit.
* | Merge from origin/emacs-25Paul Eggert2017-01-011-1/+1
|\ \ | |/ | | | | | | 2e2a806 Fix copyright years by hand 5badc81 Update copyright year to 2017
| * Update copyright year to 2017Paul Eggert2016-12-311-1/+1
| | | | | | | | Run admin/update-copyright.
* | Reorder lisp.h to declare types before using themPaul Eggert2016-12-251-0/+1
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | This puts basic functions for types to be after the corresponding type definitions. This is a more-common programming style in C, and will make it easier to port Emacs to gcc -fcheck-pointer-bounds, since the functions now have access to the corresponding types' sizes. This patch does not change the code; it just moves declarations and definitions and removes no-longer-needed forward declarations (Bug#25128). * src/buffer.c, src/data.c, src/image.c: Include process.h, for PROCESSP. * src/buffer.h (BUFFERP, CHECK_BUFFER, XBUFFER): * src/process.h (PROCESSP, CHECK_PROCESS, XPROCESS): * src/termhooks.h (TERMINALP, XTERMINAL): * src/window.h (WINDOWP, CHECK_WINDOW, XWINDOW): * src/thread.h (THREADP, CHECK_THREAD, XTHREAD, MUTEXP, CHECK_MUTEX) (XMUTEX, CONDVARP, CHECK_CONDVAR, XCONDVAR): Move here from lisp.h. * src/intervals.h: Include buffer.h, for BUFFERP. Include lisp.h, for Lisp_Object. * src/lisp.h: Reorder declarations and definitions as described above. Move thread includes to be later, so that they can use the reordered definitions. Move some symbols to other headers (noted elsewhere). Remove forward decls that are no longer needed. * src/thread.h: Include systhread.h here, not in lisp.h, since lisp.h itself does not need systhread.h.
* | Fix point motion in cloned buffersEli Zaretskii2016-12-121-3/+11
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | * src/thread.c (post_acquire_global_lock): Call set_buffer_internal_2 instead of tricking set_buffer_internal_1 into resetting the current buffer even if it didn't change. This avoids bug#25165, caused by failing to record the modified values of point and mark, because current_buffer was set to NULL. Also, don't bother re-setting the buffer if there was no thread switch, as that just wastes cycles. * src/buffer.c (set_buffer_internal_2): New function, with most of the body of set_buffer_internal_1, but without the test for B being identical to the current buffer. (set_buffer_internal_1): Call set_buffer_internal_2 if B is not identical to the current buffer. * src/buffer.h (set_buffer_internal_2): Add prototype. * test/src/thread-tests.el (thread-sticky-point): New test.
* | Merge branch 'concurrency'Eli Zaretskii2016-12-041-2/+3
|\ \ | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Conflicts (resolved): configure.ac src/Makefile.in src/alloc.c src/bytecode.c src/emacs.c src/eval.c src/lisp.h src/process.c src/regex.c src/regex.h
| * \ merge from trunkKen Raeburn2015-11-011-600/+578
| |\ \
| * \ \ merge from trunkTom Tromey2013-08-191-48/+46
| |\ \ \
| * \ \ \ merge from trunkTom Tromey2013-07-261-4/+9
| |\ \ \ \
| * \ \ \ \ Merge from trunkTom Tromey2013-07-121-0/+5
| |\ \ \ \ \
| * \ \ \ \ \ merge from trunkTom Tromey2013-07-061-17/+24
| |\ \ \ \ \ \ | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | this merges frmo trunk and fixes various build issues. this needed a few ugly tweaks. this hangs in "make check" now
| * \ \ \ \ \ \ merge from trunk; clean up some issuesTom Tromey2013-06-031-14/+41
| |\ \ \ \ \ \ \
| * | | | | | | | don't let kill-buffer kill a buffer if it is current in any threadTom Tromey2013-03-181-0/+3
| | | | | | | | |
| * | | | | | | | merge from trunkTom Tromey2013-03-081-8/+6
| |\ \ \ \ \ \ \ \
| * \ \ \ \ \ \ \ \ merge from trunkTom Tromey2013-01-161-65/+39
| |\ \ \ \ \ \ \ \ \
| * \ \ \ \ \ \ \ \ \ merge from trunkTom Tromey2013-01-051-8/+8
| |\ \ \ \ \ \ \ \ \ \
| * \ \ \ \ \ \ \ \ \ \ merge from trunkTom Tromey2012-12-171-180/+175
| |\ \ \ \ \ \ \ \ \ \ \
| * \ \ \ \ \ \ \ \ \ \ \ merge from trunkTom Tromey2012-09-041-87/+80
| |\ \ \ \ \ \ \ \ \ \ \ \
| * \ \ \ \ \ \ \ \ \ \ \ \ Merge from trunkTom Tromey2012-08-201-177/+416
| |\ \ \ \ \ \ \ \ \ \ \ \ \
| * | | | | | | | | | | | | | This introduces a thread-state object and moves various C globalsTom Tromey2012-08-151-2/+0
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | there. It also introduces #defines for these globals to avoid a monster patch. The #defines mean that this patch also has to rename a few fields whose names clash with the defines. There is currently just a single "thread"; so this patch does not impact Emacs behavior in any significant way.
* | | | | | | | | | | | | | | Add lisp watchpointsNoam Postavsky2016-12-021-34/+48
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | This allows calling a function whenever a symbol-value is changed. * src/lisp.h (lisp_h_SYMBOL_TRAPPED_WRITE_P): (SYMBOL_TRAPPED_WRITE_P): New function/macro. (lisp_h_SYMBOL_CONSTANT_P): Check for SYMBOL_NOWRITE specifically. (enum symbol_trapped_write): New enumeration. (struct Lisp_Symbol): Rename field constant to trapped_write. (make_symbol_constant): New function. * src/data.c (Fadd_variable_watcher, Fremove_variable_watcher): (set_symbol_trapped_write, restore_symbol_trapped_write): (harmonize_variable_watchers, notify_variable_watchers): New functions. * src/data.c (Fset_default): Call `notify_variable_watchers' for trapped symbols. (set_internal): Change bool argument BIND to 3-value enum and call `notify_variable_watchers' for trapped symbols. * src/data.c (syms_of_data): * src/data.c (syms_of_data): * src/font.c (syms_of_font): * src/lread.c (intern_sym, init_obarray): * src/buffer.c (syms_of_buffer): Use make_symbol_constant. * src/alloc.c (init_symbol): * src/bytecode.c (exec_byte_code): Use SYMBOL_TRAPPED_WRITE_P. * src/data.c (Fmake_variable_buffer_local, Fmake_local_variable): (Fmake_variable_frame_local): * src/eval.c (Fdefvaralias, specbind): Refer to Lisp_Symbol's trapped_write instead of constant. (Ffuncall): Move subr calling code into separate function. (funcall_subr): New function.
* | | | | | | | | | | | | | | Remove obsolete default-FOO variablesMark Oteiza2016-11-071-141/+0
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | * etc/NEWS: Indicate the removed variables. * lisp/emacs-lisp/edebug.el (edebug-outside-mark): Fix comment. * lisp/subr.el (default-mode-line-format, default-header-line-format): (default-line-spacing, default-abbrev-mode, default-ctl-arrow): (default-truncate-lines, default-left-margin, default-tab-width): (default-case-fold-search, default-left-margin-width): (default-right-margin-width, default-left-fringe-width): (default-right-fringe-width, default-fringes-outside-margins): (default-scroll-bar-width, default-vertical-scroll-bar): (default-indicate-empty-lines, default-indicate-buffer-boundaries): (default-fringe-indicator-alist, default-fringe-cursor-alist): (default-scroll-up-aggressively, default-scroll-down-aggressively): (default-fill-column, default-cursor-type): (default-cursor-in-non-selected-windows): (default-buffer-file-coding-system, default-major-mode): (default-enable-multibyte-characters): Remove obsolete declarations. * src/buffer.c (default-mode-line-format, default-header-line-format): (default-line-spacing, default-abbrev-mode, default-ctl-arrow): (default-truncate-lines, default-left-margin, default-tab-width): (default-case-fold-search, default-left-margin-width): (default-right-margin-width, default-left-fringe-width): (default-right-fringe-width, default-fringes-outside-margins): (default-scroll-bar-width, default-vertical-scroll-bar): (default-indicate-empty-lines, default-indicate-buffer-boundaries): (default-fringe-indicator-alist, default-fringe-cursor-alist): (default-scroll-up-aggressively, default-scroll-down-aggressively): (default-fill-column, default-cursor-type): (default-cursor-in-non-selected-windows): (default-buffer-file-coding-system, default-major-mode): (default-enable-multibyte-characters): Remove. * src/fileio.c (choose_write_coding_system): Fix comment. * src/lisp.h (DEFVAR_BUFFER_DEFAULTS): Remove.
* | | | | | | | | | | | | | | Limit <config.h>’s includesPaul Eggert2016-09-301-0/+1
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | This follows up on recent problems with the fact that config.h includes stdlib.h etc.; some files need to include stdlib.h later. config.h generally should limit itself to includes that are universally safe; outside of MS-Windows, only stdbool.h makes the cut among the files currently included. So, move the other includes to just the files that need them (Bug#24506). * configure.ac (config_opsysfile): Remove, as this generic hook is no longer needed. * lib-src/etags.c, src/unexmacosx.c, src/w32.c, src/w32notify.c: * src/w32proc.c (_GNU_SOURCE): Remove, as it’s OK for config.h to do this now. * src/conf_post.h: Include <ms-w32.h>, instead of the generic config_opsysfile, for simplicity as this old way of configuring is now done only for the MS-Windows port. Do not include <ms-w32.h> if DEFER_MS_W32_H, for the benefit of the few files that want its effects later. Do not include <alloca.h>, <string.h>, or <stdlib.h>. Other files modified to include these headers as needed, or to not include headers that are no longer needed. * src/lisp.h: Include <alloca.h> and <string.h> here, since some of the inline functions need them. * src/regex.c: Include <alloca.h> if not emacs. (If emacs, we can rely on SAFE_ALLOCA.) There is no longer any need to worry about HAVE_ALLOCA_H. * src/unexmacosx.c: Rely on config.h not including stdlib.h. * src/w32.c, src/w32notify.c, src/w32proc.c (DEFER_MS_W32_H): Define before including <config.h> first, and include <ms-w32.h> after the troublesome headers.
* | | | | | | | | | | | | | | Merge from origin/emacs-25Paul Eggert2016-08-051-1/+3
|\ \ \ \ \ \ \ \ \ \ \ \ \ \ \ | | |_|_|_|_|_|_|_|_|_|_|_|_|/ | |/| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | 9ba51ed Document buffer-swap-text+save-excursion interaction 452aa94 Fix eieio vs cl-generic incompatibilities found in Rudel (bug... 248d5dd Include cl-generic in package--builtin-versions (bug#22817) 8f5a8b6 Improve timing in `tramp-test29-environment-variables' 05ba7a0 Add test for handling environment variables in Tramp e393d4f * lisp/emacs-lisp/package.el (describe-package-1) (package-st... 5e38887 ; * lisp/net/tramp.el: Fix 2010-10-04 comment typo. (Bug#23913) 90f2169 ; Spelling fixes 069fc05 Improve documentation of search functions 0a0144a Delete environment variables in Tramp when needed f624671 Add "New in Emacs 25" section to the FAQ 658daf9 Fix 'vertical-motion' in non-interactive sessions 686b520 Fix memory leak in imagemagick-types 4069b71 Update ELisp manual to match 'string-collate-equalp' doc string 1b2d6a6 Clarify docstring of find-feature-regexp aac62a6 Add details to cl-lib defining macros' docstrings d6aa4da Clarify doc string of 'save-buffer' 03bcf11 Un-confuse doc string of 'string-collate-equalp' c53135b Clarify documentation of 'mouse-on-link-p' # Conflicts: # lisp/emacs-lisp/eieio-core.el
| * | | | | | | | | | | | | | Document buffer-swap-text+save-excursion interactionNoam Postavsky2016-07-141-1/+3
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | * doc/lispref/buffers.texi (Swapping Text): * src/buffer.c (Fbuffer_swap_text): Add warning about interaction of `buffer-swap-text' and `save-excursion' (Bug #4655).
| * | | | | | | | | | | | | | cursor-type doc fixLars Ingebrigtsen2016-05-011-0/+2
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | * src/buffer.c (syms_of_buffer): Mention that cursor-type's WIDHT/HEIGHT can't exceed the frame char size (bug#19215). (cherry picked from commit 77c5f4554ebb3b7c7d49bc881e45a550f6c93987)