1. 09 Sep, 2014 5 commits
    • Stefan Monnier's avatar
      * lisp/progmodes/cc-awk.el: Remove unneeded cc-bytecomp use. · 8fe73251
      Stefan Monnier authored
      Change doc comments into docstrings.
      * lisp/Makefile.in: Remove cc-awk dependency.
      8fe73251
    • Eli Zaretskii's avatar
      Fix the string-collation tests on MS-Windows. · 607dab46
      Eli Zaretskii authored
       tests/automated/fns-tests.el (fns-tests-collate-sort): Bind
       w32-collate-ignore-punctuation to t when sorting according to
       UTS#10 rules.  Reported by Fabrice Popineau <fabrice.popineau@gmail.com>.
      607dab46
    • Dmitry Antipov's avatar
      Cleanup last change and make all new stuff conditional. · e2588fa5
      Dmitry Antipov authored
      * lisp.h (build_local_string): Rename to ...
      (make_local_string): ... this macro.
      (build_local_string, scoped_list1, scoped_list3): New macros.
      (toplevel) [USE_STACK_LISP_OBJECTS]: Define all new macros
      and functions as such, use regular fallbacks otherwise.
      * alloc.c (verify_alloca) [USE_STACK_LISP_OBJECTS]: Define
      conditionally.
      e2588fa5
    • Dmitry Antipov's avatar
      Add macros to allocate temporary Lisp objects with alloca. · c7dfea94
      Dmitry Antipov authored
      Respect MAX_ALLOCA and fall back to regular GC for large objects.
      * character.h (parse_str_as_multibyte): Move prototype to ...
      * lisp.h (parse_str_as_multibyte): ... here.
      (struct Lisp_Cons): Add GCALIGNED attribute if supported.
      (scoped_cons, scoped_list2, build_local_vector, build_local_string):
      New macros.
      (scoped_cons_init, pointer_valid_for_lisp_object, local_vector_init)
      (local_string_init): New functions.
      * alloc.c (verify_alloca) [ENABLE_CHECKING]: New function.
      (init_alloc_once): Call it.
      c7dfea94
    • Dmitry Antipov's avatar
      * xterm.c (x_term_init): Consolidate duplicated code. · 80465f41
      Dmitry Antipov authored
      [USE_LUCID]: Revert 2014-04-02 change (Bug#18403).  Add comment.
      (x_delete_terminal): Do not close X connection fd (Bug#18403).
      Add eassert and mark dpyinfo as dead only if it was alive.
      80465f41
  2. 08 Sep, 2014 7 commits
  3. 07 Sep, 2014 11 commits
    • Paul Eggert's avatar
      Fix bug uncovered by changing alloca to auto buffer. · 4612d1ea
      Paul Eggert authored
      * coding.c (growable_destination): New function.
      (produce_chars): Use it for sanity checks.  Do not fiddle with
      dst_end if the source and destination are both nil, as it's
      the caller's responsibility to avoid overlap.
      * keyboard.c (read_decoded_event_from_main_queue):
      The destination must be MAX_MULTIBYTE_LENGTH times the max source
      length, not 4 times, to prevent decode_coding_c_string from trying
      to reallocate a destination.  This removes the need for the FIXME.
      
      Fixes: debbugs:18410
      4612d1ea
    • Paul Eggert's avatar
      * callproc.c (exec_failed) [DOS_NT]: Define a dummy. · d5e25ad1
      Paul Eggert authored
      All callers simplified.  Add a comment about exec_failed, vfork,
      and alloca.
      d5e25ad1
    • Paul Eggert's avatar
      Adjust drag-and-drop fix when window is above top. · bee40718
      Paul Eggert authored
      * xselect.c (x_fill_property_data): Don't let sign bit of negative
      XCDR bleed into XCAR's encoded value.  Improve checks for
      out-of-range data while we're at it.
      
      Fixes: debbugs:18383
      bee40718
    • Jan Djärv's avatar
      * xselect.c (x_fill_property_data): Handle negative XCDR when data · eee8ec84
      Jan Djärv authored
      is CONSP.
      
      Fixes: debbugs:18303
      eee8ec84
    • Eli Zaretskii's avatar
      Fix bug #18419 with disappearing line numbers when minibuffer is resized. · 938aed6e
      Eli Zaretskii authored
       src/dispnew.c (prepare_desired_row): When MODE_LINE_P is zero,
       always make sure the marginal areas of the row are in sync with
       what the window wants.
      938aed6e
    • Eli Zaretskii's avatar
      Fix the MS-Windows build broken by SAFE_ALLOCA changes. · 970d21e8
      Eli Zaretskii authored
       src/callproc.c (child_setup) [WINDOWSNT]: Don't call exec_failed if
       'alloca' gets passed arguments larger than MAX_ALLOCA.
       src/font.c (MAX): Define if not defined elsewhere.
      970d21e8
    • Paul Eggert's avatar
      * keyboard.c (read_decoded_event_from_main_queue): Reinstitute alloca · 2b95a8ef
      Paul Eggert authored
      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)
      2b95a8ef
    • Michael Albinus's avatar
      * strings.texi (Text Comparison): Describe `string-collate-equalp' · d3cb31cb
      Michael Albinus authored
      and `string-collate-lessp'.
      d3cb31cb
    • Paul Eggert's avatar
      Expand @AM_DEFAULT_VERBOSITY@ even if Automake is old. · 6726de52
      Paul Eggert authored
      * configure.ac: Assume verbose output for older Automake.
      
      Fixes: debbugs:18415
      6726de52
    • Michael Albinus's avatar
      * automated/fns-tests.el (fns-tests--collate-enabled-p): New function. · 47ae4ce3
      Michael Albinus authored
      (fns-tests-collate-strings, fns-tests-collate-sort): Use it.
      47ae4ce3
    • Paul Eggert's avatar
      Use SAFE_ALLOCA etc. to avoid unbounded stack allocation. · b3bf18b3
      Paul Eggert authored
      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
      b3bf18b3
  4. 06 Sep, 2014 2 commits
    • Eli Zaretskii's avatar
      Remove unused variable EMACS_HEAPSIZE from src/Makefile.in. · 930fb80f
      Eli Zaretskii authored
       src/Makefile.in (EMACS_HEAPSIZE): Remove, no longer used.  (Bug#18416)
       ChangeLog: Mention explicitly the removal of EMACS_HEAPSIZE.
      930fb80f
    • Leo Liu's avatar
      Add vector qpattern to pcase · e872d52c
      Leo Liu authored
      * 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)
      e872d52c
  5. 05 Sep, 2014 7 commits
  6. 04 Sep, 2014 8 commits