aboutsummaryrefslogtreecommitdiffstats
path: root/src/ChangeLog (follow)
Commit message (Collapse)AuthorAgeFilesLines
...
* | Implement visual-order cursor motion.Eli Zaretskii2013-06-291-0/+4
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | src/xdisp.c (Fmove_point_visually): New function. lisp/bindings.el (visual-order-cursor-movement): New defcustom. (right-char, left-char): Provide visual-order cursor motion by calling move-point-visually. Update the doc strings. doc/emacs/basic.texi (Moving Point): Document visual-order-cursor-movement and its effect on right-char and left-char. doc/lispref/display.texi (Bidirectional Display): Document move-point-visually. etc/NEWS: Document the new feature.
* | merge trunkKenichi Handa2013-06-291-0/+93
|\ \
| * | * image.c (x_from_xcolors): Remove unused local.Paul Eggert2013-06-271-0/+4
| | |
| * | Fix typo in ChangeLog for last commit.YAMAMOTO Mitsuharu2013-06-281-1/+1
| | |
| * | Defer image data transfer between X client and server until actual display ↵YAMAMOTO Mitsuharu2013-06-281-0/+36
| | | | | | | | | | | | happens.
| * | Do not tickle glib SIGCHLD handling if Cygwin.Paul Eggert2013-06-271-0/+18
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | This mostly consists of undoing recent changes. * callproc.c (Fcall_process): * process.c (create_process): Do not worry about catching SIGCHLD here, undoing previous change. * nsterm.m (ns_term_init): Re-catch SIGCHLD, undoing previous change. * process.c, process.h (catch_child_signal): No longer extern if !NS_IMPL_GNUSTEP, undoing 06-22 change. * process.c (catch_child_handler): Don't worry about being called lazily and do not assume caller has blocked SIGCHLD, undoing previous change. Move first-time stuff back to init_process_emacs, undoing 06-22 change. If CYGWIN, do not tickle glib, as that causes Cygwin bootstrap to fail. Do not set lib_child_handler if it's already initialized, which may help avoid problems on GNUStep.
| * | A more-conservative workaround for Cygwin SIGCHLD issues.Paul Eggert2013-06-231-0/+17
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | * callproc.c (Fcall_process): * process.c (create_process): Make sure SIGCHLD is caught before we fork, since Emacs startup no arranges to catch SIGCHLD. * process.c (lib_child_handler): Initialize to null, not to dummy_handler. (catch_child_signal): Allow self to be called lazily. Do nothing if it's already been called. Assume caller has blocked SIGCHLD (all callers do now). * emacs.c (main): Do not catch SIGCHLD here; defer it until just before it's really needed. * nsterm.m (ns_term_init): No need to re-catch SIGCHLD here, since it hasn't been caught yet. Fixes: debbugs:14569
| * | Implement :max-width/:max-height for (ImageMagic) imagesLars Magne Ingebrigtsen2013-06-231-0/+6
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | * doc/lispref/display.texi (ImageMagick Images): Mention :max-width and :max-height. * lisp/net/shr.el (shr-rescale-image): Use the new :max-width/:max-height functionality. * src/image.c (compute_image_size): New function to implement :max-width and :max-height. (imagemagick_load_image): Use it.
| * | Try to avoid malloc SEGVs on Cygwin.Paul Eggert2013-06-231-0/+12
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | * callproc.c, process.h (block_child_signal, unblock_child_signal): Now extern. * emacs.c (main): Catch SIGCHLD just before initializing gfilenotify. * process.c (catch_child_signal): Block SIGCHLD while futzing with the SIGCHLD handler, since the code is not atomic and (due to glib) signals may be arriving now. * sysdep.c (init_signals): Do not catch child signals here; 'main' now does that later, at a safer time. Fixes: debbugs:14569
* | | coding.h (define_coding_undecided_arg_index): New enum.Kenichi Handa2013-06-281-0/+19
|/ / | | | | | | | | | | | | | | | | | | (coding_attr_index): New members coding_attr_undecided_inhibit_null_byte_detection, coding_attr_undecided_inhibit_iso_escape_detection, coding_attr_undecided_prefer_utf_8. (undecided_spec): New struct. (struct coding_system): New member `undecied' of the member `spec'.
* | Clean up SIGCHLD handling a bit.Paul Eggert2013-06-221-0/+11
| | | | | | | | | | | | | | | | | | | | | | | | | | | | * process.c, process.h (catch_child_signal): Now always extern, even if !NS_IMPL_GNUSTEP. * process.c (catch_child_signal): Move glib tickler here from init_process_emacs, so that it's done earlier in Emacs initialization. Also move the noninteractive && !initialized check here from init_process_emacs. This is all a bit cleaner for GNUish platforms, and I hope it works around the Cygwin bug. * sysdep.c (init_signals): Invoke catch_child_signal here, so that glib signal handling is tickled before glib creates threads. Fixes: debbugs:14569
* | * process.c (wait_reading_process_output): Avoid int overflowPaul Eggert2013-06-221-0/+5
| | | | | | | | when reading more than 2 GiB total from a process.
* | * process.c (create_process): Handle a couple more cases,Paul Eggert2013-06-211-0/+6
| | | | | | | | | | i.e., work even if new_argv and wait_child_setup[i] are cached. Use Fcall_process's style for volatile vars.
* | * process.c (create_process): Mark PROCESS volatile.Andreas Schwab2013-06-211-0/+4
| |
* | Use C99-style flexible array members if available.Paul Eggert2013-06-211-0/+28
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | This avoids some subtle aliasing issues, which typically aren't a problem with GCC but may be a problem elsewhere. * lib-src/ebrowse.c (struct member, struct alias, struct sym): Use FLEXIBLE_ARRAY_MEMBER. (add_sym, add_member, make_namespace, register_namespace_alias): Use offsetof (struct, flex_array_member), not sizeof (struct), as that ports better to pre-C99 non-GCC. * src/alloc.c (sdata): New typedef, replacing the old struct sdata. It is a struct if GC_CHECK_STRING_BYTES, a union otherwise. In either case, it uses a flexible array member rather than the old struct hack. All uses changed. (SDATA_NBYTES, sweep_strings) [!GC_CHECK_STRING_BYTES]: Adjust to sdata reorganization. * src/alloc.c (VBLOCK_BYTES_MIN, allocate_vectorlike, Fgarbage_collect): Use offsetof (struct, flex_array_member), not sizeof (struct), as that ports better to pre-C99 non-GCC. * src/chartab.c (Fmake_char_table, make_sub_char_table, copy_char_table): Use CHAR_TABLE_STANDARD_SLOTS rather than its definition, as the latter has changed. * src/conf_post.h (FLEXIBLE_ARRAY_MEMBER): Move here from w32.c, and port better to pre-C99 GCC. * src/image.c (struct xpm_cached_color): * src/lisp.h (struct Lisp_Vector, struct Lisp_Bool_Vector) (struct Lisp_Char_Table, struct Lisp_Sub_Char_Table): Use FLEXIBLE_ARRAY_MEMBER. * src/lisp.h (string_bytes) [GC_CHECK_STRING_BYTES]: Move decl to top level so it gets checked against implementation. (CHAR_TABLE_STANDARD_SLOTS): Adjust to struct Lisp_Char_Table change. * src/w32.c (FLEXIBLE_ARRAY_MEMBER): Move to conf_post.h.
* | * syntax.c: Integer cleanups.Paul Eggert2013-06-201-0/+34
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | (SYNTAX_FLAGS_COMMENT_STYLEC): Return a boolean, not 0-or-2. All uses that need 0-or-2 changed to: (SYNTAX_FLAGS_COMMENT_STYLEC2): New macro, with the same semantics as the old SYNTAX_FLAGS_COMMENT_STYLEC. (struct lisp_parse_state, syntax_prefix_flag_p, update_syntax_table) (char_quoted, prev_char_comend_first, back_comment) (Finternal_describe_syntax_value, skip_chars, skip_syntaxes) (in_classes, forw_comment, scan_lists, scan_sexps_forward): Use bool for boolean. (update_syntax_table, skip_chars, skip_syntaxes): Prefer int to unsigned when either will do. (back_comment): Return boolean success flag, like forw_comment, instead of positive-or-minus-1 (which might have overflowed int anyway). Don't stuff ptrdiff_t into int. (syntax_spec_code, syntax_code_spec): Now const. (Fmatching_paren, scan_lists, scan_sexps_forward): Use enum syntaxcode for syntax code. (Fmatching_paren): Check that arg is a character, not just an integer. (Fstring_to_syntax): Don't assume 0377 fits in enum syntaxcode. (Finternal_describe_syntax_value): Omit no-longer-needed comparison to 0. (skip_chars): Use char, not unsigned char, when the distinction doesn't matter. (forw_comment, scan_lists): Prefer A |= B to A = A || B when B's cheap. * bytecode.c (exec_byte_code): * syntax.c (syntax_spec_code, Fchar_syntax) (Finternal_describe_syntax_value, skip_chars, skip_syntaxes) (init_syntax_once): * syntax.h (SYNTAX_WITH_FLAGS): Omit unnecessary casts.
* | Yet another attempt at fixing bugs #14602, 14630, 14669.Eli Zaretskii2013-06-201-0/+13
| | | | | | | | | | | | | | | | | | | | | | src/w32fns.c (w32_wnd_proc): Don't compute the header line and mode line dimensions here, to avoid race conditions with the main thread. src/w32term.c (w32_draw_window_cursor): Compute the header line and mode line dimensions here. <w32_system_caret_window, w32_system_caret_hdr_height>: <w32_system_caret_mode_height>: New variables. src/w32term.h: Declare them.
* | * alloc.c (die): Move "assertion failed" string here ...Paul Eggert2013-06-201-0/+6
| | | | | | | | | | | | | | * lisp.h (eassert): ... from here. Also, suppress evaluation of COND when SUPPRESS_CHECKING. This shrinks the executable text size by 0.8% to 2.2% when configured with --enable-checking, depending on optimization flags (GCC 4.8.1 x86-64).
* | Add log2 support and make log10 obsolete for consistency.Paul Eggert2013-06-201-0/+9
| | | | | | | | | | | | | | | | | | | | * configure.ac (log2): Check for this function. * doc/lispref/numbers.texi (Math Functions): Remove obsolete function log10. * lisp/subr.el (log10): Move here from C code, and declare as obsolete. All uses of (log10 X) replaced with (log X 10). * src/floatfns.c (Flog) [HAVE_LOG2]: Use log2 if available and if the base is 2; this is more accurate. (Flog10): Move to Lisp (marked obsolete there).
* | Fix typos in ChangeLogs.Juanma Barranquero2013-06-191-1/+1
| |
* | src/sound.c: Silence some warnings.Juanma Barranquero2013-06-191-0/+5
| | | | | | | | | | (string_default): Move to !WINDOWSNT section. (Fplay_sound_internal) [WINDOWSNT]: Remove i_result to avoid warning.
* | * sound.c: Integer cleanups.Paul Eggert2013-06-191-0/+11
| | | | | | | | | | | | | | | | | | | | | | | | Remove unnecessary forward decls. (struct sound_device): The 'file' member is now a Lisp_Object, not a char *, so that we needn't invoke alloca on a huge size. (Fplay_sound_internal): Adjust to this. (string_default): New function. (vox_open, vox_init, alsa_open, alsa_configure, alsa_init): Use it to adjust to the struct sound_device change. (parse_sound, wav_init, au_init, alsa_init): Use bool for booleans. (be2hs) [0]: Remove.
* | * syntax.c (skip_chars): Don't use uninitialized storagePaul Eggert2013-06-181-0/+6
| | | | | | | | | | when searching a multibyte buffer for characters that are not in a unibyte string that contains non-ASCII characters.
* | * process.c: Include xgselect.h if HAVE_GLIB. Include glib.hJan Djärv2013-06-181-0/+5
| | | | | | | | | | | | if HAVE_GLIB && ! WINDOWSNT. Fixes: debbugs:14654
* | * conf_post.h: Add comments for INLINE, EXTERN_INLINE, etc.Paul Eggert2013-06-181-0/+4
| |
* | src/ChangeLog: Add bug ID to the previous change.Kenichi Handa2013-06-181-1/+2
| |
* | merge emacsKenichi Handa2013-06-181-22924/+45
|\ \
| * | lisp/ChangeLog, src/ChangeLog: Rotate changelogs.Juanma Barranquero2013-06-181-22924/+1
| | |
| * | Porting fixes for merged specpdl and backtrace stacks.Paul Eggert2013-06-181-0/+21
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | In particular this ports to 32-bit sparc Sun cc. * eval.c (init_eval_once, grow_specpdl): Allocate a specbinding array with a dummy element at specpdl[-1], so that its address can be taken portably. (unbind_to): Do not copy the binding; not needed, now that we copy old_value in the one place where the copy is needed. * fileio.c (Fwrite_region): Use ptrdiff_t, not int, for specpdl count. * lisp.h (BITS_PER_PTRDIFF_T): Remove; no longer needed. (union specbinding): Rename from struct specbinding. Redo layout to avoid the need for 'ptrdiff_t nargs : BITS_PER_PTRDIFF_T - 1;', which is not portable. With Sun C 5.12 32-bit sparc, the declaration causes nargs to be an unsigned bitfield, a behavior that the C standard allows; but Emacs wants nargs to be signed. The overall type is now a union of structures rather than a structure of union of structures, and the 'kind' member is now a bitfield, so that the overall type doesn't grow. All uses changed. * process.c (Fmake_serial_process): Remove unnecessary initialization. Fixes: debbugs:14643
| * | * frame.c (x_report_frame_params): Cast parent_desc to uintptr_t.Paul Eggert2013-06-171-0/+3
| | | | | | | | | | | | Needed if HAVE_NTGUI. Reported by Juanma Barranquero.
| * | * nsfont.m (ns_registry_to_script): Parenthesize while expression.Paul Eggert2013-06-171-0/+4
| | |
| * | src/ChangeLog: Rearrange the last 2 entries in correct order.Eli Zaretskii2013-06-171-6/+6
| | |
| * | Possible fix for bug #14630, which continues bug #14062.Eli Zaretskii2013-06-171-0/+6
| | | | | | | | | | | | | | | src/w32fns.c (w32_wnd_proc): Don't call WINDOW_HEADER_LINE_HEIGHT unless we know that the window w's frame is a frame object.
| * | Implement new function `add-face-text-property'Lars Magne Ingebrigtsen2013-06-171-0/+10
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | * doc/lispref/text.texi (Changing Properties): Document `add-face-text-property'. * src/textprop.c (property_set_type): New enum. (add_properties): Allow appending/prepending text properties. (add_text_properties_1): Factored out of Fadd_text_properties. (Fadd_text_properties): Moved all the code into add_text_properties_1. (Fadd_face_text_property): New function that calls add_text_properties_1.
* | | font.c (Ffont_spec): Signal an error for an invalid font name.Kenichi Handa2013-06-181-0/+4
|/ /
* | Use functions, not macros, for XINT etc.Paul Eggert2013-06-161-0/+161
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | In lisp.h, prefer functions to function-like macros, and constants to object-like macros, when either will do. This: . simplifies use, as there's no more need to worry about arguments' side effects being evaluated multiple times. . makes the code easier to debug on some platforms. However, when using gcc -O0, keep using function-like macros for a few critical operations, for performance reasons. This sort of thing isn't needed with gcc -Og, but -Og is a GCC 4.8 feature and isn't widely-enough available yet. Also, move functions from lisp.h to individual modules when possible. From a suggestion by Andreas Schwab in <http://bugs.gnu.org/11935#68>. * alloc.c (XFLOAT_INIT, set_symbol_name): * buffer.c (CHECK_OVERLAY): * chartab.c (CHECK_CHAR_TABLE, set_char_table_ascii) (set_char_table_parent): * coding.c (CHECK_NATNUM_CAR, CHECK_NATNUM_CDR): * data.c (BOOLFWDP, INTFWDP, KBOARD_OBJFWDP, OBJFWDP, XBOOLFWD) (XKBOARD_OBJFWD, XINTFWD, XOBJFWD, CHECK_SUBR, set_blv_found) (blv_value, set_blv_value, set_blv_where, set_blv_defcell) (set_blv_valcell): * emacs.c (setlocale) [!HAVE_SETLOCALE]: * eval.c (specpdl_symbol, specpdl_old_value, specpdl_where) (specpdl_arg, specpdl_func, backtrace_function, backtrace_nargs) (backtrace_args, backtrace_debug_on_exit): * floatfns.c (CHECK_FLOAT): * fns.c (CHECK_HASH_TABLE, CHECK_LIST_END) (set_hash_key_and_value, set_hash_next, set_hash_next_slot) (set_hash_hash, set_hash_hash_slot, set_hash_index) (set_hash_index_slot): * keymap.c (CHECK_VECTOR_OR_CHAR_TABLE): * marker.c (CHECK_MARKER): * textprop.c (CHECK_STRING_OR_BUFFER): * window.c (CHECK_WINDOW_CONFIGURATION): Move here from lisp.h, and make these functions static rather than extern inline. * buffer.c (Qoverlayp): * data.c (Qsubrp): * fns.c (Qhash_table_p): * window.c (Qwindow_configuration_p): Now static. * lisp.h: Remove the abovementioned defns and decls. * configure.ac (WARN_CFLAGS): Remove -Wbad-function-cast, as it generates bogus warnings about reasonable casts of calls. * alloc.c (gdb_make_enums_visible) [USE_LSB_TAG]: Remove enum lsb_bits; no longer needed. (allocate_misc, free_misc): Don't use XMISCTYPE as an lvalue. * buffer.c (Qoverlap): * data.c (Qsubrp): * fns.c (Qhash_table_p): Now extern, so lisp.h can use these symbols. * dispextern.h: Include character.h, for MAX_CHAR etc. (GLYPH, GLYPH_CHAR, GLYPH_FACE, SET_GLYPH_CHAR, SET_GLYPH_FACE) (SET_GLYPH, GLYPH_CODE_CHAR, GLYPH_CODE_FACE) (SET_GLYPH_FROM_GLYPH_CODE, GLYPH_MODE_LINE_FACE, GLYPH_CHAR_VALID_P) (GLYPH_CODE_P): Move here from lisp.h. (GLYPH_CHAR, GLYPH_FACE, GLYPH_CODE_CHAR, GLYPH_CODE_FACE) (GLYPH_CHAR_VALID_P, GLYPH_CODE_P): Now functions, not macros. (GLYPH_MODE_LINE_FACE): Now enums, not macros. * eval.c (Fautoload): Cast XUNTAG output to intptr_t, since XUNTAG now returns void *. * lisp.h (lisp_h_XLI, lisp_h_XIL, lisp_h_CHECK_LIST_CONS) (lisp_h_CHECK_NUMBER CHECK_SYMBOL, lisp_h_CHECK_TYPE) (lisp_h_CONSP, lisp_h_EQ, lisp_h_FLOATP, lisp_h_INTEGERP) (lisp_h_MARKERP, lisp_h_MISCP, lisp_h_NILP) (lisp_h_SET_SYMBOL_VAL, lisp_h_SYMBOL_CONSTANT_P) (lisp_h_SYMBOL_VAL, lisp_h_SYMBOLP, lisp_h_VECTORLIKEP) (lisp_h_XCAR, lisp_h_XCDR, lisp_h_XCONS, lisp_h_XHASH) (lisp_h_XPNTR, lisp_h_XSYMBOL): New macros, renamed from their sans-lisp_h_ counterparts. (XLI, XIL, CHECK_LIST_CONS, CHECK_NUMBER CHECK_SYMBOL) (CHECK_TYPE, CONSP, EQ, FLOATP, INTEGERP, MARKERP) (MISCP, NILP, SET_SYMBOL_VAL, SYMBOL_CONSTANT_P, SYMBOL_VAL, SYMBOLP) (VECTORLIKEP, XCAR, XCDR, XCONS, XHASH, XPNTR, XSYMBOL): If compiling via GCC without optimization, define these as macros in addition to inline functions. To disable this, compile with -DINLINING=0. (LISP_MACRO_DEFUN, LISP_MACRO_DEFUN_VOID): New macros. (check_cons_list) [!GC_CHECK_CONS_LIST]: Likewise. (make_number, XFASTINT, XINT, XTYPE, XUNTAG): Likewise, but hand-optimize only in the USE_LSB_TAG case, as GNUish hosts do that. (INTMASK, VALMASK): Now macros, since static values cannot be accessed from extern inline functions. (VALMASK): Also a constant, for benefit of old GDB. (LISP_INT_TAG_P): Remove; no longer needed as the only caller is INTEGERP, which can fold it in. (XLI, XIL, XHASH, XTYPE,XINT, XFASTINT, XUINT) (make_number, XPNTR, XUNTAG, EQ, XCONS, XVECTOR, XSTRING, XSYMBOL) (XFLOAT, XPROCESS, XWINDOW, XTERMINAL, XSUBR, XBUFFER, XCHAR_TABLE) (XSUB_CHAR_TABLE, XBOOL_VECTOR, make_lisp_ptr, CHECK_TYPE) (CHECK_STRING_OR_BUFFER, XCAR, XCDR, XSETCAR, XSETCDR, CAR, CDR) (CAR_SAFE, CDR_SAFE, STRING_MULTIBYTE, SDATA, SSDATA, SREF, SSET) (SCHARS, STRING_BYTES, SBYTES, STRING_SET_CHARS, STRING_COPYIN, AREF) (ASIZE, ASET, CHAR_TABLE_REF_ASCII, CHAR_TABLE_REF) (CHAR_TABLE_SET, CHAR_TABLE_EXTRA_SLOTS, SYMBOL_VAL, SYMBOL_ALIAS) (SYMBOL_BLV, SYMBOL_FWD, SET_SYMBOL_VAL, SET_SYMBOL_ALIAS) (SET_SYMBOL_BLV, SET_SYMBOL_FWD, SYMBOL_NAME, SYMBOL_INTERNED_P) (SYMBOL_INTERNED_IN_INITIAL_OBARRAY_P, SYMBOL_CONSTANT_P) (XHASH_TABLE, HASH_TABLE_P, CHECK_HASH_TABLE, HASH_KEY, HASH_VALUE) (HASH_NEXT, HASH_HASH, HASH_INDEX, HASH_TABLE_SIZE) (XMISC, XMISCANY, XMARKER, XOVERLAY, XSAVE_VALUE, XFWDTYPE) (XINTFWD, XBOOLFWD, XOBJFWD, XBUFFER_OBJFWD, XKBOARD_OBJFWD) (XFLOAT_DATA, XFLOAT_INIT, NILP, NUMBERP, NATNUMP) (RANGED_INTEGERP, CONSP, FLOATP, MISCP, STRINGP, SYMBOLP) (INTEGERP, VECTORLIKEP, VECTORP, OVERLAYP) (MARKERP, SAVE_VALUEP, AUTOLOADP, INTFWDP, BOOLFWDP, OBJFWDP) (BUFFER_OBJFWDP, KBOARD_OBJFWDP, PSEUDOVECTOR_TYPEP) (PSEUDOVECTORP, WINDOW_CONFIGURATIONP, PROCESSP, WINDOWP) (TERMINALP, SUBRP, COMPILEDP, BUFFERP, CHAR_TABLE_P) (SUB_CHAR_TABLE_P, BOOL_VECTOR_P, FRAMEP, IMAGEP, ARRAYP) (CHECK_LIST, CHECK_LIST_CONS, CHECK_LIST_END, CHECK_STRING) (CHECK_STRING_CAR, CHECK_CONS, CHECK_SYMBOL, CHECK_CHAR_TABLE) (CHECK_VECTOR, CHECK_VECTOR_OR_STRING, CHECK_ARRAY) (CHECK_VECTOR_OR_CHAR_TABLE, CHECK_BUFFER, CHECK_WINDOW) (CHECK_WINDOW_CONFIGURATION, CHECK_PROCESS, CHECK_SUBR) (CHECK_NUMBER, CHECK_NATNUM, CHECK_MARKER, XFLOATINT) (CHECK_FLOAT, CHECK_NUMBER_OR_FLOAT, CHECK_OVERLAY) (CHECK_NUMBER_CAR, CHECK_NUMBER_CDR, CHECK_NATNUM_CAR) (CHECK_NATNUM_CDR, FUNCTIONP, SPECPDL_INDEX, LOADHIST_ATTACH) Now functions. (check_cons_list) [!GC_CHECK_CONS_LIST]: New empty function. (LISP_MAKE_RVALUE, TYPEMASK): Remove; no longer needed. (VALMASK): Define in one place rather than in two, merging the USE_LSB_TAG parts; this is simpler. (aref_addr, gc_aset, MOST_POSITIVE_FIXNUM, MOST_NEGATIVE_FIXNUM) (max, min, struct Lisp_String, UNSIGNED_CMP, ASCII_CHAR_P): Move up, to avoid use before definition. Also include "globals.h" earlier, for the same reason. (make_natnum): New function. (XUNTAG): Now returns void *, not intptr_t, as this means fewer casts. (union Lisp_Fwd, BOOLFWDP, BOOL_VECTOR_P, BUFFER_OBJFWDP, BUFFERP) (CHAR_TABLE_P, CHAR_TABLE_REF_ASCII, CONSP, FLOATP, INTEGERP, INTFWDP) (KBOARD_OBJFWDP, MARKERP, MISCP, NILP, OBJFWDP, OVERLAYP, PROCESSP) (PSEUDOVECTORP, SAVE_VALUEP, STRINGP, SUB_CHAR_TABLE_P, SUBRP, SYMBOLP) (VECTORLIKEP, WINDOWP, Qoverlayp, char_table_ref, char_table_set) (char_table_translate, Qarrayp, Qbufferp, Qbuffer_or_string_p) (Qchar_table_p, Qconsp, Qfloatp, Qintegerp, Qlambda, Qlistp, Qmarkerp) (Qnil, Qnumberp, Qsubrp, Qstringp, Qsymbolp, Qvectorp) (Qvector_or_char_table_p, Qwholenump, Ffboundp, wrong_type_argument) (initialized, Qhash_table_p, extract_float, Qprocessp, Qwindowp) (Qwindow_configuration_p, Qimage): New forward declarations. (XSETFASTINT): Simplify by rewriting in terms of make_natnum. (STRING_COPYIN): Remove; unused. (XCAR_AS_LVALUE, XCDR_AS_LVALUE): Remove these macros, replacing with ... (xcar_addr, xcdr_addr): New functions. All uses changed. (IEEE_FLOATING_POINT): Now a constant, not a macro. (GLYPH, GLYPH_CHAR, GLYPH_FACE, SET_GLYPH_CHAR, SET_GLYPH_FACE) (SET_GLYPH, GLYPH_CODE_CHAR, GLYPH_CODE_FACE) (SET_GLYPH_FROM_GLYPH_CODE, GLYPH_MODE_LINE_FACE, GLYPH_CHAR_VALID_P) (GLYPH_CODE_P): Move to dispextern.h, to avoid define-before-use. (TYPE_RANGED_INTEGERP): Simplify. (Qsubrp, Qhash_table_p, Qoverlayp): New extern decls. (setlocale, fixup_locale, synchronize_system_messages_locale) (synchronize_system_time_locale) [!HAVE_SETLOCALE]: Now empty functions, not macros. (functionp): Return bool, not int. * window.c (Qwindow_configuration_p): Now extern, so window.h can use it. * window.h (Qwindowp): Move decl back to lisp.h.
* | Fix bug #14567 with jumpy scrolling of tall images.Eli Zaretskii2013-06-151-0/+5
| | | | | | | | | | | | | | | | | | | | src/xdisp.c (Fline_pixel_height): New function, required for solving bug #14567. lisp/simple.el (line-move-partial): Don't jump to the next screen line as soon as it becomes visible. Instead, continue enlarging the vscroll until the portion of a tall screen line that's left on display is about the height of the frame's default font.
* | * fns.c (Fcopy_sequence): Simplify XTYPE calculation.Paul Eggert2013-06-151-0/+4
| |
* | * lisp/subr.el (with-eval-after-load): New macro.Stefan Monnier2013-06-131-0/+5
| | | | | | | | | | | | | | | | | | | | | | (eval-after-load): Allow form to be a function. take advantage of lexical-binding. (do-after-load-evaluation): Use dolist and adjust to new format. * lisp/simple.el (bad-packages-alist): Use dolist and with-eval-after-load. * doc/lispref/loading.texi (Hooks for Loading): Document with-eval-after-load instead of eval-after-load. Don't document after-load-alist. * src/lread.c (syms_of_lread): * src/fns.c (Fprovide): Adjust to new format of after-load-alist.
* | * src/fileio.c (Fdo_auto_save): Trap errors in auto-save-hook (tiny change)Kelly Dean2013-06-121-0/+4
| | | | | | | | Fixes: debbugs:14479
* | * src/fileio.c (expand_file_name): Doc fix.Xue Fuqiao2013-06-121-0/+4
| |
* | Tickle glib by waiting for Emacs itself, not for process 0.Paul Eggert2013-06-111-0/+5
| | | | | | | | | | | | | | | | * process.c (init_process_emacs) [HAVE_GLIB && !WINDOWSNT]: Wait for self, not for 0. This can't hurt on GNU or similar system, and may help with Cygwin. Fixes: debbugs:14569
* | * keyboard.c: Don't use PROP (...) as an lvalue.Paul Eggert2013-06-101-0/+6
| | | | | | | | | | (parse_tool_bar_item) [!USE_GTK && !HAVE_NS]: Use set_prop (A, B), not PROP (A) = B.
* | Fix ChangeLog typos and whitespace.Juanma Barranquero2013-06-101-12/+11
| |
* | Minor cleanup in last commit in get_it_property.Eli Zaretskii2013-06-101-0/+5
| | | | | | | | | | src/xdisp.c (get_it_property): Use it->window instead of generating a Lisp object from it->w.
* | Fix current-bidi-paragraph-direction wrt window pointer.Eli Zaretskii2013-06-091-0/+5
| | | | | | | | | | | | | | | | src/xdisp.c (compute_display_string_pos): When W is NULL, use the current buffer as the object to pass to get-char-property. (Fcurrent_bidi_paragraph_direction): Assign NULL to the window pointer member of the bidi iterator, since no window is pertinent to this function.
* | Fix bug #14575 with window-specific overlays with line-prefix or wrap-prefix.Eli Zaretskii2013-06-091-0/+6
| | | | | | | | | | | | src/xdisp.c (get_it_property): If it->object is a buffer, pass to get-char-property the window that is being rendered, instead of the buffer, to support window-specific overlays.
* | Fix bug #14575 with window-specific overlays with display props.Eli Zaretskii2013-06-081-0/+20
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | src/bidi.c (bidi_fetch_char): Accept additional argument, the window being displayed, and pass it to compute_display_string_pos. (bidi_level_of_next_char, bidi_resolve_explicit_1) (bidi_paragraph_init): All callers changed. src/xdisp.c (init_from_display_pos, init_iterator) (handle_single_display_spec, next_overlay_string) (get_overlay_strings_1, reseat_1, reseat_to_string) (push_prefix_prop, Fcurrent_bidi_paragraph_direction): Set bidi_it.w member from it->w. (compute_display_string_pos): Accept additional argument, the window being displayed, and pass it to Fget_char_property. src/dispextern.h (struct bidi_it): New member w, the window being displayed. (compute_display_string_pos): Adjust prototype.
* | Fix compilation issues for GNUStep and GLIB conflicts.Jan Djärv2013-06-081-0/+5
| | | | | | | | | | | | | | | | | | | | | | | | | | | | * configure.ac (HAVE_GLIB): Only set XGSELOBJ if HAVE_NS = no. (with_file_notification): Don't set to gfile if with_ns = yes. * src/process.c (wait_reading_process_output): Check for NS before GLIB. GLIB may be linked in due to rsvg, but ns_select must be called. * src/xgselect.c (xg_select): Remove call to window_system_available and g_main_context_pending at the top, so Gdk events (i.e. file notify) are processed when Emacs is started with -nw. * src/xgselect.c: Remove unneeded include xterm.h
* | * xgselect.c (xg_select): Remove call to window_system_availableJan Djärv2013-06-081-0/+6
| | | | | | | | | | and g_main_context_pending at the top, so Gdk events (i.e. file notify) are processed when Emacs is started with -nw.