1
Fork 0
mirror of git://git.sv.gnu.org/emacs.git synced 2025-12-31 09:20:54 -08:00
Commit graph

107492 commits

Author SHA1 Message Date
Dmitry Antipov
697e1e393c Do not mark objects from deleted buffers, windows and frames.
* alloc.c (mark_buffer): Mark just the buffer if it is dead.
(mark_object): Likewise for windows and frames.
2012-09-05 19:34:45 +04:00
Dmitry Antipov
c1ca42cae6 * alloc.c (valid_lisp_object_p): Treat killed buffers,
buffer_defaults and buffer_local_symbols as valid objects.
Return special value to denote them.
2012-09-05 16:55:03 +04:00
Glenn Morris
e4996ae924 Auto-commit of generated files. 2012-09-05 06:17:38 -04:00
Martin Rudalics
ef6544601a Provide support for fitting frames to buffers.
* help.el (temp-buffer-max-height): New default value.
(temp-buffer-resize-frames): New option.
(resize-temp-buffer-window): Optionally resize frame.

* window.el (fit-frame-to-buffer-bottom-margin): New option.
(fit-frame-to-buffer): New function.
2012-09-05 11:22:20 +02:00
Paul Eggert
f75d7a913d * fileio.c, filelock.c, floatfns.c, fns.c: Use bool for boolean.
* fileio.c (auto_saving, auto_save_error_occurred, make_temp_name)
(Fexpand_file_name, barf_or_query_if_file_exists, Fcopy_file)
(file_name_absolute_p, Fsubstitute_in_file_name):
(check_executable, check_writable, Ffile_accessible_directory_p)
(Fset_file_selinux_context, Fdefault_file_modes)
(Finsert_file_contents, choose_write_coding_system)
(Fwrite_region, build_annotations, a_write, e_write)
(Fdo_auto_save):
* filelock.c (boot_time_initialized, get_boot_time)
(get_boot_time_1, lock_file_1, within_one_second):
* floatfns.c (in_float):
* fns.c (concat, internal_equal, Frequire, base64_encode_1)
(base64_decode_1, cmpfn_eql, cmpfn_user_defined)
(sweep_weak_table, sweep_weak_hash_tables, secure_hash):
* lisp.h (struct Lisp_Hash_Table.cmpfn):
* window.c (compare_window_configurations):
Use bool for booleans.
* fileio.c (auto_saving_dir_umask, auto_saving_mode_bits)
(Fdefault_file_modes): Now mode_t, not int, for modes.
(Fdo_auto_save): Set a boolean to 1 rather than using ++.
(internal_delete_file): Now returns void, not a (boolean) int,
since nobody was looking at the return value.
* lisp.h, window.h: Adjust to above API changes.
2012-09-05 00:18:46 -07:00
Glenn Morris
7e570fbf3e Merge from emacs-24; up to 2012-05-05T02:50:20Z!monnier@iro.umontreal.ca 2012-09-05 00:05:56 -07:00
Glenn Morris
1a1ecd2b14 ChangeLog fixes 2012-09-04 23:56:55 -07:00
Paul Eggert
014d93beef * xdisp.c (set_message): Simplify and reindent last change. 2012-09-04 20:37:32 -07:00
Juanma Barranquero
776f29e171 src/makefile.w32-in ($(BLD)/sysdep.$(O)): Update dependencies. 2012-09-05 02:30:14 +02:00
Juanma Barranquero
5dbaffae0c nt/config.nt: Sync with autogen/config.in. 2012-09-05 02:17:57 +02:00
Lars Ingebrigtsen
7f7e0167cf Implement `debug-on-message'.
This allows tracking down what piece of code is outputting stuff in
the echo area.

* eval.c (call_debugger): Make the function non-static so that we
can call it from set_message.

* xdisp.c (set_message): Implement the new variable `debug-on-message'.
(syms_of_xdisp): Defvar it and `inhibit-debug-on-message'.
2012-09-04 23:21:00 +02:00
Paul Eggert
cf29dd84d2 Give more-useful info on a fatal error (Bug#12328).
* doc/emacs/trouble.texi (Crashing): New section, documenting this.
* etc/NEWS: Document the change.
* src/alloc.c [ENABLE_CHECKING]: Do not include <execinfo.h>.
(die) [ENABLE_CHECKING]: Call fatal_error_backtrace instead
of doing the work ourselves.
* src/emacs.c (fatal_error_signal): Let fatal_error_backtrace
do most of the work.
(fatal_error_backtrace): New function, taken from the guts
of the old fatal_error_signal, but with a new option to output
a backtrace.
(shut_down_emacs) [!DOS_NT]: Use strsignal to give more-useful
info about the signal than just its number.
* src/lisp.h (fatal_error_backtrace, emacs_backtrace): New decls.
* src/sysdep.c: Include <execinfo.h>
(emacs_backtrace): New function, taken partly from the previous
code of the 'die' function.
(emacs_abort): Call fatal_error_backtrace rather than abort.
2012-09-04 11:29:04 -07:00
Stefan Monnier
972debf2e7 Macro-expand interpreted code during load.
* src/lread.c (readevalloop): Call internal-macroexpand-for-load to perform
eager (load-time) macro-expansion.
* src/lisp.mk (lisp): Add macroexp.
* lisp/loadup.el: Load macroexp.  Remove hack.
* lisp/emacs-lisp/macroexp.el (macroexp--eval-if-compile): New function.
(macroexp--expand-all): Use it to get better warnings.
(macroexp--backtrace, macroexp--trim-backtrace-frame)
(internal-macroexpand-for-load): New functions.
(macroexp--pending-eager-loads): New var.
(emacs-startup-hook): New hack to replace one in loadup.el.
* lisp/emacs-lisp/cl-macs.el (cl--compiler-macro-list*)
(cl--compiler-macro-cXXr): Move to top, before they can be used.
(cl-psetf): Simplify.
(cl-defstruct): Add indent rule.
2012-09-04 13:40:25 -04:00
Paul Eggert
1088b9226e Simplify redefinition of 'abort' (Bug#12316).
Do not try to redefine the 'abort' function.  Instead, redo
the code so that it calls 'emacs_abort' rather than 'abort'.
This removes the need for the NO_ABORT configure-time macro
and makes it easier to change the abort code to do a backtrace.
* configure.ac (NO_ABRT): Remove.
* admin/CPP-DEFINES (NO_ABORT): Remove.
* nt/inc/ms-w32.h (w32_abort) [HAVE_NTGUI]: Remove.
* src/.gdbinit: Just stop at emacs_abort, not at w32_abort or abort.
* src/emacs.c (abort) [!DOS_NT && !NO_ABORT]:
Remove; sysdep.c's emacs_abort now takes its place.
* src/lisp.h (emacs_abort): New decl.  All calls from Emacs code to
'abort' changed to use 'emacs_abort'.
* src/msdos.c (dos_abort) [defined abort]: Remove; not used.
(abort) [!defined abort]: Rename to ...
(emacs_abort): ... new name.
* src/sysdep.c (emacs_abort) [!HAVE_NTGUI]: New function, taking
the place of the old 'abort' in emacs.c.
* src/w32.c, src/w32fns.c (abort): Do not #undef.
* src/w32.c (emacs_abort): Rename from w32_abort.
2012-09-04 10:34:54 -07:00
Eli Zaretskii
30934d334e Fix display of Arabic diacriticals on Windows, per bug #11860.
src/w32uniscribe.c (uniscribe_shape): Reverse the sign of
 offsets[j].dv, since the y axis of the screen coordinates points
 down, while the y axis of the font definition coordinates points
 up.  This fixes display of Arabic diacritics such as KASRA and
 KASRATAN.
2012-09-04 20:15:45 +03:00
Lars Ingebrigtsen
8ce192e317 Have smtpmail.el prefer the From: header for the MAIL FROM envelope
* mail/smtpmail.el (smtpmail-send-it): Prefer the From: header
over `user-mail-address' for the SMTP MAIL FROM envelope.
(smtpmail-via-smtp): Ditto.
2012-09-04 18:00:10 +02:00
Glenn Morris
6ec9a5a7b5 Auto-commit of generated files. 2012-09-04 06:17:39 -04:00
Paul Eggert
af26b72c11 Be more systematic about _setjmp vs setjmp.
* alloc.c (test_setjmp, mark_stack):
* image.c (PNG_LONGJMP) [PNG_LIBPNG_VER < 10500]:
(PNG_JMPBUF) [! (PNG_LIBPNG_VER < 10500)]:
(png_load, my_error_exit, jpeg_load):
* process.c (send_process_trap, send_process):
Uniformly prefer _setjmp and _longjmp to setjmp and longjmp.
The underscored versions are up to 30x faster on some hosts.
Formerly, the code used setjmp+longjmp sometimes and
_setjmp+_longjmp at other times, with no particular reason to
prefer setjmp+longjmp.
2012-09-03 23:34:19 -07:00
Paul Eggert
7b6c362efe * configure.ac (_setjmp, _longjmp): Check by compiling
instead of by guessing.  The guesses were wrong for
recent versions of Solaris, such as Solaris 11.
2012-09-03 23:25:44 -07:00
Dmitry Gutov
6578b4d842 * progmodes/ruby-mode.el: Clean up keybindings (ChangeLog entry). 2012-09-04 08:44:43 +04:00
Dmitry Gutov
4489104fe8 * ruby-mode.el: Clean up keybindings.
(ruby-mode-map): Don't bind ruby-electric-brace,
ruby-beginning-of-defun, ruby-end-of-defun, ruby-mark-defun,
backward-kill-word, reindent-then-newline-and-indent.
(ruby-mark-defun): Remove.
(ruby-electric-brace): Remove.  Obsoleted by electric-indent-chars.
(ruby-mode): Set local beginning-of-defun-function and
end-of-defun-function values.
2012-09-04 08:42:47 +04:00
Lars Ingebrigtsen
8a8507e9b7 [Gnus] Silence XEmacs compilation warnings 2012-09-03 22:12:02 +00:00
Paul Eggert
d42f4f0fb3 Revert changes prompted only by gcc -Wjump-misses-init. 2012-09-03 12:36:09 -07:00
Paul Eggert
79a7bafe62 * configure.ac (WARN_CFLAGS): Omit -Wjump-misses-init.
It generates false alarms in doc.c, regex.c, xdisp.c.  See
<http://lists.gnu.org/archive/html/emacs-devel/2012-09/msg00040.html>.
2012-09-03 12:34:49 -07:00
Glenn Morris
dcde497f27 Auto-commit of generated files. 2012-09-03 06:17:43 -04:00
Paul Eggert
7f50777729 Merge from gnulib.
This incorporates:
2012-08-29 stdbool: be more compatible with mixed C/C++ compiles
2011-11-30 manywarnings: update the list of "all" warnings
2012-09-03 02:26:56 -07:00
Paul Eggert
26d4541d4c Fix minor problems found by static checking.
* buffer.c (Fdelete_all_overlays): Return nil.
* doc.c (Fsubstitute_command_keys):
* regex.c (WEAK_ALIAS):
* xdisp.c (redisplay_internal):
Move initialization down, to pacify GCC 4.7.1 -Wjump-misses-init.
2012-09-03 02:22:43 -07:00
Martin Rudalics
c5e28e3927 New macro with-temp-buffer-window and related fixes.
* buffer.c (Fdelete_all_overlays): New function.

* window.el (temp-buffer-window-setup-hook)
(temp-buffer-window-show-hook): New hooks.
(temp-buffer-window-setup, temp-buffer-window-show)
(with-temp-buffer-window): New functions.
(fit-window-to-buffer): Remove unused optional argument
OVERRIDE.
(special-display-popup-frame): Make sure the window used shows
BUFFER.

* help.el (temp-buffer-resize-mode): Fix doc-string.
(resize-temp-buffer-window): New optional argument WINDOW.

* files.el (recover-file, save-buffers-kill-emacs):
* dired.el (dired-mark-pop-up): Use with-temp-buffer-window.
2012-09-03 10:54:25 +02:00
Chong Yidong
3eab3ca987 * gtkutil.c: Add extern decl for Qxft. 2012-09-03 16:13:33 +08:00
Paul Eggert
1882aa3878 * emacs.c, eval.c: Use bool for boolean.
* emacs.c (initialized, inhibit_window_system, running_asynch_code):
(malloc_using_checking) [DOUG_LEA_MALLOC]:
(display_arg) [HAVE_X_WINDOWS || HAVE_NS]:
(noninteractive, no_site_lisp, fatal_error_in_progress, argmatch)
(main, decode_env_path, Fdaemon_initialized):
* eval.c (call_debugger, Finteractive_p, interactive_p):
(unwind_to_catch, Fsignal, wants_debugger, skip_debugger)
(maybe_call_debugger, Fbacktrace):
* process.c (read_process_output, exec_sentinel):
Use bool for booleans.
* emacs.c (shut_down_emacs): Omit unused boolean argument NO_X.
All callers changed.
* eval.c (interactive_p): Omit always-true boolean argument
EXCLUDE_SUBRS_P.  All callers changed.
* dispextern.h, lisp.h: Reflect above API changes.
* firstfile.c (dummy): Use the address of 'main', whose signature
won't change, instead of the address of 'initialize', whose
signature just changed from int to bool.
* lisp.h (fatal_error_in_progress): New decl of boolean, moved here ...
* msdos.c (fatal_error_in_progress): ... from here.
* xdisp.c (redisplaying_p): Now a boolean.  Set it to 1 instead
of incrementing it.
(redisplay_internal, unwind_redisplay): Simply clear
REDISPLAYING_P when unwinding, instead of saving its previous,
always-false value and then restoring it.
2012-09-02 10:10:35 -07:00
Paul Eggert
a411ac43d3 Clean up some extern decls.
Mostly, this hoists extern decls out of .c files and into .h files.
That way, we're more likely to catch errors if the interfaces change.
* alloc.c [USE_GTK]: Include "gtkutil.h" so that we need not
declare xg_mark_data.
* dispextern.h (x_frame_parm_handlers):
* font.h (Qxft):
* lisp.h (Qlexical_binding, Qinternal_interpreter_environment)
(Qextra_light, Qlight, Qsemi_light, Qsemi_bold, Qbold, Qextra_bold)
(Qultra_bold, Qoblique, Qitalic):
Move extern decl here from .c file.
* alloc.c (xg_mark_data) [USE_GTK]:
* doc.c (Qclosure):
* eval.c (Qlexical_binding):
* fns.c (time) [!HAVE_UNISTD_H]:
* gtkutil.c (Qxft, Qnormal, Qextra_light, Qlight, Qsemi_light)
(Qsemi_bold, Qbold, Qextra_bold, Qultra_bold, Qoblique, Qitalic):
* image.c (Vlibrary_cache, QCloaded_from) [HAVE_NTGUI]:
* lread.c (Qinternal_interpreter_environment):
* minibuf.c (Qbuffer):
* process.c (QCfamily, QCfilter):
* widget.c (free_frame_faces):
* xfaces.c (free_frame_menubar) [USE_X_TOOLKIT]:
* xfont.c (x_clear_errors):
* xterm.c (x_frame_parm_handlers):
Remove now-redundant extern decls.
* keyboard.c, keyboard.h (ignore_mouse_drag_p) [USE_GTK || HAVE_NS]:
* xfaces.c (Qultra_light, Qreverse_oblique, Qreverse_italic):
Now static.
* xfaces.c: Remove unnecessary static decls.
* xterm.c (updating_frame): Remove decl of nonexistent object.
2012-09-02 09:56:31 -07:00
Paul Eggert
c04889f8e3 * Makefile.in (gl-stamp): Don't scan $(SOME_MACHINE_OBJECTS)
when building globals.h, as the objects that are not built on
this host are not needed to compile C files on this host.
2012-09-02 07:26:47 -07:00
Jan Djärv
f278d339c9 * configure.ac (HAVE_GOBJECT): Check for gobject-2.0.
Fixes: debbugs:12332
2012-09-02 13:13:24 +02:00
Jan Djärv
8b33967313 Prototype for x_wm_set_size_hint restored.
* frame.h: Add missing prototype for x_wm_set_size_hint.

* gtkutil.h: Remove prototype for x_wm_set_size_hint.
2012-09-02 12:53:46 +02:00
Glenn Morris
403e17698e Auto-commit of generated files. 2012-09-02 06:19:02 -04:00
Michael Albinus
7340619402 * eshell/em-unix.el (eshell/sudo): When we have an ad-hoc
remote definition of `default-directory', ensure we can connect.
2012-09-02 11:57:19 +02:00
Juri Linkov
63dd1c6fa4 Toggle whitespace matching mode with M-s SPC.
http://lists.gnu.org/archive/html/emacs-devel/2012-09/msg00008.html

* lisp/isearch.el (search-whitespace-regexp): Doc fix.
Remove cons cell customization.
(isearch-mode-map): Bind "\M-s " to isearch-toggle-lax-whitespace.
(isearch-lax-whitespace, isearch-regexp-lax-whitespace):
New variables.
(isearch-forward, isearch-forward-regexp): Doc fix.
(isearch-toggle-lax-whitespace): New command.
(search-forward-lax-whitespace, search-backward-lax-whitespace)
(re-search-forward-lax-whitespace)
(re-search-backward-lax-whitespace): New functions.
(isearch-whitespace-regexp): Remove function.
(isearch-query-replace): Let-bind replace-search-function and
replace-re-search-function.
(isearch-occur): Let-bind search-spaces-regexp according to the
value of isearch-lax-whitespace and isearch-regexp-lax-whitespace.
(isearch-quote-char): Check isearch-regexp-lax-whitespace in the
condition for C-q SPC.
(isearch-search-fun-default): Use new functions mentioned above.
(isearch-search-forward, isearch-search-backward): Remove functions.
(isearch-search): Don't let-bind search-spaces-regexp.
(isearch-lazy-highlight-space-regexp): Remove variable.
(isearch-lazy-highlight-lax-whitespace)
(isearch-lazy-highlight-regexp-lax-whitespace): New variables.
(isearch-lazy-highlight-new-loop): Use them.
(isearch-lazy-highlight-search): Don't let-bind search-spaces-regexp.
2012-09-02 12:31:45 +03:00
Paul Eggert
a08d4ba773 * doc.c, editfns.c, insdel.c, intervals.c: Use bool for boolean.
* doc.c (read_bytecode_char, get_doc_string, reread_doc_file)
(Fdocumentation, Fdocumentation_property, Fsnarf_documentation)
(Fsubstitute_command_keys):
* editfns.c (region_limit, find_field, Fconstrain_to_field)
(save_excursion_save, save_excursion_restore)
(disassemble_lisp_time, decode_time_components, emacs_nmemftime)
(format_time_string, general_insert_function)
(make_buffer_string, make_buffer_string_both)
(Fsubst_char_in_region, Ftranslate_region_internal, Fformat):
* insdel.c (check_markers, gap_left, adjust_markers_for_insert)
(copy_text, insert_1, insert_1_both, insert_from_string)
(insert_from_string_before_markers, insert_from_string_1)
(insert_from_buffer, insert_from_buffer_1, replace_range)
(replace_range_2, del_range_1, del_range_byte, del_range_both)
(del_range_2, modify_region):
* intervals.c (intervals_equal, balance_possible_root_interval)
(adjust_intervals_for_insertion, merge_properties_sticky)
(graft_intervals_into_buffer, lookup_char_property)
(adjust_for_invis_intang, set_point_both)
(get_property_and_range, compare_string_intervals)
(set_intervals_multibyte_1, set_intervals_multibyte):
* keyboard.c (decode_timer):
Use bool for boolean.
* intervals.h, lisp.h, systime.h: Reflect above API changes.
* editfns.c (struct info): Use 1-bit unsigned bitfields for booleans.
2012-09-02 00:10:10 -07:00
Chong Yidong
6a787d9a30 Recommand against save-window-excursion in Lisp manual.
* windows.texi (Window Configurations): Recommend against using
save-window-excursion.

* control.texi (Catch and Throw):
* positions.texi (Excursions): Don't mention it.

Fixes: debbugs:12075
2012-09-02 12:47:28 +08:00
Chong Yidong
48c948de78 * keymap.c (push_key_description): Print M-TAB as C-M-i.
Fixes: debbugs:11758
2012-09-02 11:50:29 +08:00
Chong Yidong
af7dda05cc * dired.el (dired-mode-map): Menu string fixes.
Fixes: debbugs:11616
2012-09-02 10:47:02 +08:00
Chong Yidong
a828f05faf Expand on NEWS entry about deletion of `z' from special-mode-map. 2012-09-02 10:30:06 +08:00
Juanma Barranquero
6c49a40bba src/makefile.w32-in: Update dependencies.
(CCL_H, W32FONT_H): New macros.
(ATIMER_H, FONT_H, $(BLD)/alloc.$(O), $(BLD)/callproc.$(O))
($(BLD)/editfns.$(O), $(BLD)/ccl.$(O), $(BLD)/chartab.$(O))
($(BLD)/coding.$(O), $(BLD)/sysdep.$(O), $(BLD)/fontset.$(O))
($(BLD)/sysdep.$(O), $(BLD)/w32fns.$(O), $(BLD)/keyboard.$(O))
($(BLD)/w32term.$(O), $(BLD)/w32menu.$(O), $(BLD)/process.$(O))
($(BLD)/w32font.$(O), $(BLD)/w32uniscribe.$(O)): Update.
2012-09-02 04:22:33 +02:00
Juanma Barranquero
137e08a46c nt/config.nt: Sync with autogen/config.in.
(HAVE_EXECINFO_H, TERM_HEADER): New macros.
2012-09-02 04:00:47 +02:00
Glenn Morris
d67d3afd3a * lisp/simple.el (undo): Tweak message in undo-only case.
Fixes: debbugs:12283
2012-09-01 17:56:03 -07:00
Glenn Morris
69678719ec Tidy up term.el menu handling
* lisp/term.el: (term-mode-map): Use easymenu for In/Out, Complete menus.
(term-pager-break-map): Initialize in the defvar.
(term-terminal-menu, term-signals-menu): Define with easymenu.
(term-terminal-menu): Also show it in line-mode. 
(term-pager-menu): New, extracted from term-process-pager.
(term-mode, term-char-mode, term-process-pager): Use easymenu-add.
(term-update-mode-line): Propertize line/char and page items.
(term-process-pager): Move keymap initialization elsewhere.

Fixes: debbugs:11957
2012-09-01 15:03:06 -07:00
Paul Eggert
2d3800d2cf * configure.ac (_FORTIFY_SOURCE): Define only when optimizing.
This ports to glibc 2.15 or later, when configured with
--enable-gcc-warnings.  See Eric Blake in
<http://lists.gnu.org/archive/html/bug-grep/2012-09/msg00000.html>.
2012-09-01 11:54:38 -07:00
Martin Rudalics
78dd6ab198 Rewrite switch-to-prev-/next-buffer and quit-window; add display-buffer-below-selected.
* window.el (switch-to-prev-buffer): Handle additional values of
BURY-OR-KILL argument.  Don't switch in minibuffer window.
(switch-to-next-buffer): Don't switch in minibuffer window.
(quit-restore-window): New function based on quit-window.
Handle additional values of former KILL argument.
(quit-window): Call quit-restore-window with appropriate
interpretation of KILL argument.
(display-buffer-below-selected): New buffer display action
function.
2012-09-01 18:47:09 +02:00
Eli Zaretskii
7e510e2844 Further fix for bug #11860 with Arabic display on Windows.
src/w32uniscribe.c (uniscribe_shape): Handle correctly the case of
 more than one grapheme cluster passed to the shaper: compute the
 offset adjustment values separately for each cluster.
2012-09-01 16:54:27 +03:00
Eli Zaretskii
f18cbb28c2 Remove conflict markers and fix entries for 2012-09-01T06:38:52Z!dancol@dancol.org. 2012-09-01 15:23:50 +03:00