1
Fork 0
mirror of git://git.sv.gnu.org/emacs.git synced 2026-01-11 14:01:43 -08:00
Commit graph

117275 commits

Author SHA1 Message Date
Paul Eggert
2b95a8efed * keyboard.c (read_decoded_event_from_main_queue): Reinstitute alloca
here for destination buffer, to work around what appears to be a
bug in decode_coding_c_string when the source and destination are
both C strings.

* keyboard.c (echo_add_key, menu_bar_items, tool_bar_items)
2014-09-07 06:27:33 -07:00
Michael Albinus
d3cb31cbdf * strings.texi (Text Comparison): Describe `string-collate-equalp'
and `string-collate-lessp'.
2014-09-07 13:02:33 +02:00
Paul Eggert
6726de5263 Expand @AM_DEFAULT_VERBOSITY@ even if Automake is old.
* configure.ac: Assume verbose output for older Automake.

Fixes: debbugs:18415
2014-09-07 01:46:42 -07:00
Michael Albinus
47ae4ce33d * automated/fns-tests.el (fns-tests--collate-enabled-p): New function.
(fns-tests-collate-strings, fns-tests-collate-sort): Use it.
2014-09-07 10:24:44 +02:00
Paul Eggert
b3bf18b3b8 Use SAFE_ALLOCA etc. to avoid unbounded stack allocation.
This follows up on the recent thread in emacs-devel on alloca; see:
http://lists.gnu.org/archive/html/emacs-devel/2014-09/msg00042.html
This patch also cleans up alloca-related glitches noted while
examining the code looking for unbounded alloca.
* alloc.c (listn):
* callproc.c (init_callproc):
Rewrite to avoid need for alloca.
* buffer.c (mouse_face_overlay_overlaps)
(report_overlay_modification):
* buffer.h (GET_OVERLAYS_AT):
* coding.c (make_subsidiaries):
* doc.c (Fsnarf_documentation):
* editfns.c (Fuser_full_name):
* fileio.c (Ffile_name_directory, Fexpand_file_name)
(search_embedded_absfilename, Fsubstitute_in_file_name):
* fns.c (Fmake_hash_table):
* font.c (font_vconcat_entity_vectors, font_update_drivers):
* fontset.c (fontset_pattern_regexp, Ffontset_info):
* frame.c (Fmake_terminal_frame, x_set_frame_parameters)
(xrdb_get_resource, x_get_resource_string):
* ftfont.c (ftfont_get_charset, ftfont_check_otf, ftfont_drive_otf):
* ftxfont.c (ftxfont_draw):
* image.c (xbm_load, xpm_load, jpeg_load_body):
* keyboard.c (echo_add_key, menu_bar_items, tool_bar_items):
* keymap.c (Fdescribe_buffer_bindings, describe_map):
* lread.c (openp):
* menu.c (digest_single_submenu, find_and_call_menu_selection)
(find_and_return_menu_selection):
* print.c (PRINTFINISH):
* process.c (Fformat_network_address):
* scroll.c (do_scrolling, do_direct_scrolling, scrolling_1):
* search.c (search_buffer, Fmatch_data, Fregexp_quote):
* sound.c (wav_play, au_play):
* syntax.c (skip_chars):
* term.c (tty_menu_activate, tty_menu_show):
* textprop.c (get_char_property_and_overlay):
* window.c (Fset_window_configuration):
* xdisp.c (safe__call, next_overlay_change, vmessage)
(compute_overhangs_and_x, draw_glyphs, note_mouse_highlight):
* xfaces.c (face_at_buffer_position):
* xmenu.c (x_menu_show):
Use SAFE_ALLOCA etc. instead of plain alloca, since the
allocation size isn't bounded.
* callint.c (Fcall_interactively): Redo memory_full check
so that it can be done at compile-time on some platforms.
* coding.c (MAX_LOOKUP_MAX): New constant.
(get_translation_table): Use it.
* callproc.c (call_process): Use SAFE_NALLOCA instead of
SAFE_ALLOCA, to catch integer overflows on size calculation.
(exec_failed) [!DOS_NT]: New function.
(child_setup) [!DOS_NT]: Use it.
* editfns.c (Ftranspose_regions):
Hoist USE_SAFE_ALLOC + SAFE_FREE out of 'if'.
* editfns.c (check_translation):
Allocate larger buffers on the heap.
* eval.c (internal_lisp_condition_case):
Check for MAX_ALLOCA overflow.
* fns.c (sort_vector): Use SAFE_ALLOCA_LISP rather than Fmake_vector.
(Fbase64_encode_region, Fbase64_decode_region):
Avoid unnecessary calls to SAFE_FREE before 'error'.
* buffer.c (mouse_face_overlay_overlaps):
* editfns.c (Fget_pos_property, check_translation):
* eval.c (Ffuncall):
* font.c (font_unparse_xlfd, font_find_for_lface):
* ftfont.c (ftfont_drive_otf):
* keyboard.c (echo_add_key, read_decoded_event_from_main_queue)
(menu_bar_items, tool_bar_items):
* sound.c (Fplay_sound_internal):
* xdisp.c (load_overlay_strings, dump_glyph_row):
Use an ordinary auto buffer rather than alloca, since the
allocation size is fixed and small.
* ftfont.c: Include <c-strcase.h>.
(matching_prefix): New function.
(get_adstyle_property): Use it, to avoid need for alloca.
* keyboard.c (echo_add_key):
* keymap.c (describe_map): Use ptrdiff_t, not int.
* keyboard.c (echo_add_key): Prefer sizeof to strlen.
* keymap.c (Fdescribe_buffer_bindings): Use SBYTES, not SCHARS,
when counting bytes.
* lisp.h (xlispstrdupa): Remove, replacing with ...
(SAFE_ALLOCA_STRING): ... new macro with different API.
This fixes a portability problem, namely, alloca result
passed to another function.  All uses changed.
(SAFE_ALLOCA, SAFE_ALLOCA_LISP): Check for MAX_ALLOCA,
not MAX_ALLOCA - 1.
* regex.c (REGEX_USE_SAFE_ALLOCA, REGEX_SAFE_FREE)
(REGEX_ALLOCATE): New macros.
(REGEX_REALLOCATE, REGEX_ALLOCATE_STACK, REGEX_REALLOCATE_STACK)
(REGEX_FREE_STACK, FREE_VARIABLES, re_match_2_internal):
Use them.
* xdisp.c (message3): Use SAFE_ALLOCA_STRING rather than doing it
by hand.
(decode_mode_spec_coding): Store directly into buf rather than
into an alloca temporary and copying the temporary to the buf.

Fixes: debbugs:18410
2014-09-07 00:04:01 -07:00
Eli Zaretskii
930fb80f9e Remove unused variable EMACS_HEAPSIZE from src/Makefile.in.
src/Makefile.in (EMACS_HEAPSIZE): Remove, no longer used.  (Bug#18416)
 ChangeLog: Mention explicitly the removal of EMACS_HEAPSIZE.
2014-09-06 10:40:43 +03:00
Leo Liu
e872d52c93 Add vector qpattern to pcase
* doc/lispref/control.texi (Pattern matching case statement): Document vector
qpattern. 

* etc/NEWS: Mention vector qpattern for pcase.  (Bug#18327).

* lisp/emacs-lisp/pcase.el (pcase): Doc fix.
(pcase--split-vector): New function.
(pcase--q1): Support vector qpattern.  (Bug#18327)
2014-09-06 08:59:00 +08:00
Sam Steingold
2beb60dc10 New custom variable `tex-print-file-extension' to help users who use PDF instead of DVI.
* lisp/textmodes/tex-mode.el (tex-print-file-extension): New user
option.
(tex-print): Use it instead of the hard-coded string.
2014-09-05 15:07:52 -04:00
Michael Albinus
833cea36b9 * net/tramp-sh.el (tramp-sh-handle-start-file-process): Expand `default-directory'. 2014-09-05 16:12:48 +02:00
Michael Albinus
40ae83c7c6 New string collation tests.
* automated/fns-tests.el (fns-tests-compare-strings): In case
`compare-strings' shall return t, check for this.
(fns-tests-collate-strings, fns-tests-collate-sort): New tests.
2014-09-05 15:32:55 +02:00
Martin Rudalics
510a4a4e93 Add and use function horizontal-scroll-bars-available-p.
* scroll-bar.el (horizontal-scroll-bars-available-p): New
function.
(horizontal-scroll-bar-mode): Rewrite using
horizontal-scroll-bars-available-p.
* menu-bar.el (menu-bar-showhide-scroll-bar-menu): Rewrite using
horizontal-scroll-bars-available-p.
2014-09-05 12:29:34 +02:00
Stefan Monnier
04b134e174 * lisp/subr.el (call-process-shell-command, process-file-shell-command):
Make the `args' obsolete.
(start-process-shell-command, start-file-process-shell-command):
Use `declare'.

Fixes: debbugs:18409
2014-09-04 21:20:51 -04:00
Jay Belanger
86e714105d calc/calc-forms.el (math-normalize-hms): Do a better check for
"negative" hms forms.
2014-09-04 20:04:47 -05:00
Rasmus Pank Roulund
baee695a8b * lisp/vc/vc-git.el (vc-git-conflicted-files): Fix bug when git status
returns nil.

Fixes: debbugs:18391
2014-09-04 12:34:45 -04:00
Paul Eggert
9bc6bb24e5 Remove stray semicolons. 2014-09-04 09:14:05 -07:00
Stefan Monnier
1f69089d35 * lisp/emacs-lisp/eldoc.el (eldoc-function-argstring): Don't strip
terminating paren.
(eldoc-last-data-store): Return cached data.
(eldoc-get-var-docstring): Avoid setq.
(eldoc-get-fnsym-args-string): Clarify data flow.

Fixes: debbugs:18352
2014-09-04 11:23:37 -04:00
Thierry Volpiatto
e77bcfa34d * lisp/emacs-lisp/eldoc.el (eldoc-highlight-function-argument): Handle the
case where we're currently providing part of the &rest arg after some
&key args, as in define-ibuffer-op.

Fixes: debbugs:18048
2014-09-04 10:49:56 -04:00
Jan Djärv
baff67fcd5 * xsmfns.c: Initialize ice_fd.
* xterm.c (x_term_init): Don't call x_session_initialize if running
as a daemon.

Fixes: debbugs:18375
2014-09-04 07:38:37 +02:00
Paul Eggert
d1db070572 Less chatter in 'make' output.
* doc/Makefile.in (clean):
* oldXMenu/Makefile.in (clean mostlyclean):
Simplify, for shorter command line.
* src/Makefile.in (AM_V_GEN, am__v_GEN_, am__v_GEN_0, am__v_GEN_1, AM_V_at)
(am__v_at_, am__v_at_0, am__v_at_1):  New macros, taken from Automake.
($(etc)/DOC, buildobj.h, gl-stamp): Use them.
2014-09-03 19:15:56 -07:00
Paul Eggert
315d21d20f * configure.ac (MAKEINFO): Clean up some configuration bitrot.
MAKEINFO is already set before we get here, so no need to call AC_PATH_PROG.
Bypass $am_missing_run.  Simplify version-number checking.
2014-09-03 19:02:46 -07:00
Glenn Morris
5788005d5f * admin/notes/bzr: Some bisect tips. 2014-09-03 20:40:03 -04:00
Stefan Monnier
23aec67714 * lisp/progmodes/which-func.el (which-func-ff-hook): Obey pre-existing
buffer-local setting of which-func-mode.
(which-func-mode): Use defvar-local.
(which-function-mode): Don't reset which-func-mode in each buffer since
it might have been set by someone else.
(which-func-update-ediff-windows): Check which-function-mode.
2014-09-03 15:10:15 -04:00
Martin Rudalics
eda0450a3a NEWS and TODO changes. 2014-09-03 18:13:17 +02:00
Martin Rudalics
568df136f1 Clean up initialization and customization of horizontal scroll bars.
* frame.el (frame-initialize): Remove horizontal-scroll-bars
from frame-initial-frame-alist.
* scroll-bar.el (previous-horizontal-scroll-bar-mode)
(horizontal-scroll-bar-mode-explicit)
(set-horizontal-scroll-bar-mode, get-horizontal-scroll-bar-mode)
(toggle-horizontal-scroll-bar): Remove.
(horizontal-scroll-bar-mode): Remove defcustom.
(horizontal-scroll-bar-mode): Fix doc-string.
(scroll-bar-toolkit-scroll)
(scroll-bar-toolkit-horizontal-scroll): Add doc-strings stubs.
* buffer.c (scroll-bar-height): Fix typo in doc-string.
* frame.c (Vdefault_frame_horizontal_scroll_bars): Remove
variable.
* nsfns.m (Fx_create_frame):
* w32fns.c (Fx_create_frame):
* xfns.c (Fx_create_frame): Default horizontal scroll bars to
nil.
2014-09-03 17:10:29 +02:00
Glenn Morris
62fca47221 Merge from emacs-24; up to 2014-07-04T02:28:54Z!dmantipov@yandex.ru 2014-09-02 21:21:40 -07:00
Stefan Monnier
e6769f1890 * lisp/progmodes/sh-script.el (sh-font-lock-quoted-subshell): Try to better
handle multiline elements.

Fixes: debbugs:18380
2014-09-02 20:38:49 -04:00
Stefan Monnier
af86b05fd4 test/indent/scheme.scm: New file. 2014-09-02 16:47:44 -04:00
Stefan Monnier
559b827d8a * lisp/emacs-lisp/package.el (package-generate-description-file):
Properly quote the arguments.  Change second arg.
(package--alist-to-plist-args): Rename from package--alist-to-plist and
quote the elements.
(package--make-autoloads-and-stuff): Fix the test for pre-existence of
the *-pkg.el file.  Adjust to new calling convention of
package-generate-description-file.

Fixes: debbugs:18332
2014-09-02 15:51:25 -04:00
Paul Eggert
da25527e97 Merge from gnulib, incorporating:
2014-09-02 gnulib-common.m4: port to GCC 4.2.1 and Sun Studio 12 C++
2014-09-01 manywarnings: add GCC 4.9 warnings
* m4/gnulib-common.m4, m4/manywarnings.m4: Update from gnulib.
2014-09-02 12:17:23 -07:00
Stefan Monnier
9de3064db6 * lisp/progmodes/gud.el (gud-gdb-completion-at-point): Add hack.
(gud-gdb-completions): Remove obsolete workaround.

Fixes: debbugs:18282
2014-09-02 14:16:32 -04:00
Paul Eggert
ff8b9b273f Minor cleanup of recent strlen-avoiding patch.
* src/fileio.c (CHECK_LENGTH): Remove.
Rewrite callers so that they don't need it.
(Fexpand_file_name) [DOS_NT]: Fix a case where directory length
variable wasn't set.
2014-09-02 11:05:00 -07:00
Eli Zaretskii
5735a30d59 Fix bug #18384 with incorrect reporting of row number by posn-col-row.
lisp/subr.el (posn-col-row): Revert the change from commit
 2010-11-13T21:07:58Z!eliz@gnu.org, which
 was inadvertently merged from emacs-23 release branch in 
2010-11-18T03:54:14Z!monnier@iro.umontreal.ca, and
 introduced an off-by-one error in the reported row when there is a
 header line.

 src/dispnew.c (buffer_posn_from_coords): Fix an off-by-one error in
 the reported row in the case of a window with a header line, by
 improving on the fix committed in 2011-10-08T10:58:50Z!eliz@gnu.org
 eliz@gnu.org-20111008105850-ht4tvsayohvr1kjc.
2014-09-02 18:16:42 +03:00
Dmitry Antipov
77ea21cdfc * buffer.h (decode_buffer): New function.
* buffer.c (Fbuffer_name, Fbuffer_file_name, Fbuffer_base_buffer)
(Fbuffer_local_variables, Fbuffer_modified_p, Fbuffer_modified_tick)
(Fbuffer_chars_modified_tick, Fdelete_all_overlays):
* data.c (Flocal_variables_p):
* fileio.c (Fverify_visited_file_modtime):
* marker.c (live_buffer): Use it.
2014-09-02 15:41:22 +04:00
Dmitry Antipov
f25cd98b27 * callproc.c (egetenv_internal): Add arg and rename from egetenv ...
* lisp.h (egetenv): ... because of a new inline function used to
avoid calls to strlen for a compile-time constants.
2014-09-02 10:49:40 +04:00
Glenn Morris
5597a7d4e2 * lisp/tutorial.el: Restore comment lost 2006-12-21. 2014-09-01 23:48:20 -07:00
Paul Eggert
7a930c3c4c * eval.c (internal_lisp_condition_case): Don't overrun the stack
when configured --with-wide-int on typical 32-bit platforms.
2014-09-01 23:29:01 -07:00
Dmitry Antipov
a4a30aa0ec * fileio.c (CHECK_LENGTH): New macro.
(Fexpand_file_name): Use it and get rid of a few more calls
to strlen and strcat.
2014-09-02 09:44:38 +04:00
Dmitry Antipov
068c8b7d6a * fileio.c (Fexpand_file_name): Fix MS-Windows build failure. 2014-09-02 07:47:54 +04:00
Fabián Ezequiel Gallina
0e4c8f1856 * lisp/progmodes/python.el (python-indent-post-self-insert-function):
Avoid electric colon at beginning-of-defun. 

* test/automated/python-tests.el:
(python-indent-electric-colon-1): New test.  (Bug#18228)
2014-09-01 19:51:46 -03:00
Glenn Morris
ad5c82a8cc * lisp/tutorial.el (tutorial--display-changes): Fix 2014-07-29 change.
Fixes: debbugs:18382
2014-09-01 09:44:06 -07:00
Dmitry Antipov
50e9e58007 Avoid extra calls to strlen in filesystem I/O routines.
* fileio.c (Fexpand_file_name): Avoid calls to strlen if
the length of 'newdir' is known or may be precalculated.
(file_accessible_directory_p): Prefer to pass Lisp_Object,
not 'char *', and so use precalculated length.
(Ffile_accessible_directory_p):
* callproc.c (encode_current_directory, init_callproc):
* charset.c (init_charset):
* lread.c (load_path_check, load_path_default): Adjust users.
* lisp.h (file_accessible_directory_p): Tweak prototype.
2014-09-01 20:05:43 +04:00
Eli Zaretskii
203fb3639a nt/gnulib.mk: Synchronize with lib/gnulib.mk. 2014-09-01 18:11:25 +03:00
Eli Zaretskii
4ef0411746 src/w32proc.c (w32_compare_strings): Support "C" and "POSIX" locales. 2014-09-01 18:07:17 +03:00
Eli Zaretskii
cd6f709c4b Implement the GNU ls -v switch in ls-lisp.el.
lisp/ls-lisp.el (ls-lisp-version-lessp): New function.
 (ls-lisp-handle-switches): Use it to implement the -v switch of GNU ls.
 (ls-lisp--insert-directory): Mention the -v switch in the doc string.

Fixes: debbugs:18051
2014-09-01 18:03:45 +03:00
Eli Zaretskii
0360ec583a Use the new string-collate-lessp function in ls-lisp.el.
lisp/ls-lisp.el (ls-lisp-use-string-collate)
 (ls-lisp-UCA-like-collation): New defcustoms.
 (ls-lisp-string-lessp): Use them to control sorting by file
 names.

 etc/NEWS: Mention that ls-lisp uses string-collate-lessp.

Fixes: debbugs:18051
2014-09-01 17:57:21 +03:00
Eli Zaretskii
8d033ecb9d src/lastfile.c: Fix last change. 2014-09-01 17:44:33 +03:00
Glenn Morris
acb6f20c3a Auto-commit of loaddefs files. 2014-09-01 06:21:26 -04:00
Paul Eggert
177030baaa Fix typo in previous change's ChangeLog. 2014-09-01 02:54:12 -07:00
Paul Eggert
bc12381e60 --enable-silent-warnings now suppresses more chatter.
* INSTALL, etc/NEWS: Document this.
* lib-src/Makefile.in (AM_DEFAULT_VERBOSITY, AM_V_CC, am__v_CC_)
(am__v_CC_0, am__v_CC_1, AM_V_CCLD, am__v_CCLD_, am__v_CCLD_0)
(am__v_CCLD_1): New macros, taken from Automake.
(regex.o, etags${EXEEXT}, ctags${EXEEXT}, ebrowse${EXEEXT})
(profile${EXEEXT}, make-docfile${EXEEXT}, movemail${EXEEXT})
(pop.o, emacsclient${EXEEXT}, emacsclientw${EXEEXT})
(emacsclientw${EXEEXT}, ntlib.o, hexl${EXEEXT})
(update-game-score${EXEEXT}): Use them.
* lwlib/Makefile.in (AM_DEFAULT_VERBOSITY, AM_V_CC, am__v_CC_)
(am__v_CC_0, am__v_CC_1): New macros, taken from Automake.
(.c.o): Use them.
* oldXMenu/Makefile.in (AM_DEFAULT_VERBOSITY, AM_V_CC, am__v_CC_)
(am__v_CC_0, am__v_CC_1): New macros, taken from Automake.
(.c.o): Use them.
* src/Makefile.in (AM_DEFAULT_VERBOSITY, AM_V_CC, am__v_CC_)
(am__v_CC_0, am__v_CC_1, AM_V_CCLD, am__v_CCLD_, am__v_CCLD_0)
(am__v_CCLD_1): New macros, taken from Automake.
(.c.o, .m.o, temacs$(EXEEXT)): Use them.
2014-09-01 02:49:51 -07:00
Paul Eggert
1564080f0b Clean up extern decls a bit.
* configure.ac (WERROR_CFLAGS): Don't disable -Wnested-externs.
While we're at it, don't disable -Wlogical-op either.
* src/bytecode.c: Include blockinput.h and keyboard.h rather
than rolling their APIs by hand.
* src/emacs.c: Include regex.h and rely on its and lisp.h's API
rather than rolling them by hand.
* src/lastfile.c: Include lisp.h, to check this file's API.
* src/lisp.h (lisp_eval_depth, my_edata, my_endbss, my_endbss_static):
New decls.
* src/regex.h (re_max_failures): New decl.
* src/unexcw.c, src/unexmacosx.c, src/unexw32.c:
Rely on lisp.h's API rather than rolling it by hand.
* src/vm-limit.c (__after_morecore_hook, __morecore, real_morecore):
Declare at top level, to pacify GCC -Wnested-externs.
2014-08-31 19:37:22 -07:00