1
Fork 0
mirror of git://git.sv.gnu.org/emacs.git synced 2026-01-10 05:30:45 -08:00
Commit graph

34552 commits

Author SHA1 Message Date
Paul Eggert
1fc7100890 * syntax.c: Integer cleanups.
(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.
2013-06-20 11:59:08 -07:00
Eli Zaretskii
b932cad712 Yet another attempt at fixing bugs #14602, 14630, 14669.
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.
2013-06-20 20:36:24 +03:00
Paul Eggert
5013fc0876 * alloc.c (die): Move "assertion failed" string here ...
* 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).
2013-06-20 07:47:46 -07:00
Paul Eggert
89561f72e5 Add log2 support and make log10 obsolete for consistency.
* 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).
2013-06-20 07:15:42 -07:00
Paul Eggert
33cbd259d6 * floatfns.c: Add commentary re C99 and C11. 2013-06-19 18:19:43 -07:00
Juanma Barranquero
4f40506961 Fix typos in ChangeLogs. 2013-06-19 22:10:57 +02:00
Juanma Barranquero
983aeb9aff src/sound.c: Silence some warnings.
(string_default): Move to !WINDOWSNT section.
(Fplay_sound_internal) [WINDOWSNT]: Remove i_result to avoid warning.
2013-06-19 16:20:26 +02:00
Paul Eggert
bbc51b1565 * sound.c: Integer cleanups.
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.
2013-06-19 00:36:20 -07:00
Paul Eggert
178ba3e6f5 * syntax.c (skip_chars): Don't use uninitialized storage
when searching a multibyte buffer for characters that are not in a
unibyte string that contains non-ASCII characters.
2013-06-18 22:45:35 -07:00
Jan Djärv
69f60cdc23 * process.c: Include xgselect.h if HAVE_GLIB. Include glib.h
if HAVE_GLIB && ! WINDOWSNT.

Fixes: debbugs:14654
2013-06-18 20:41:48 +02:00
Paul Eggert
0d6224d432 * conf_post.h: Add comments for INLINE, EXTERN_INLINE, etc. 2013-06-18 11:36:13 -07:00
Paul Eggert
5ebb1ee6c9 Spelling fixes. 2013-06-18 10:15:25 -07:00
Kenichi Handa
f7e3f7cd3f src/ChangeLog: Add bug ID to the previous change. 2013-06-18 23:54:48 +09:00
Kenichi Handa
de86fd6193 merge emacs 2013-06-18 23:49:59 +09:00
Kenichi Handa
3c542890fe font.c (Ffont_spec): Signal an error for an invalid font name. 2013-06-18 23:45:08 +09:00
Juanma Barranquero
a020afb989 lisp/ChangeLog, src/ChangeLog: Rotate changelogs. 2013-06-18 13:17:50 +02:00
Paul Eggert
9349e5f767 Porting fixes for merged specpdl and backtrace stacks.
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
2013-06-18 00:42:37 -07:00
Paul Eggert
ec6ecaad44 * frame.c (x_report_frame_params): Cast parent_desc to uintptr_t.
Needed if HAVE_NTGUI.  Reported by Juanma Barranquero.
2013-06-17 14:12:21 -07:00
Paul Eggert
0a4df6a50e * nsfont.m (ns_registry_to_script): Parenthesize while expression. 2013-06-17 14:10:31 -07:00
Eli Zaretskii
7bfe8dbcc2 src/ChangeLog: Rearrange the last 2 entries in correct order. 2013-06-17 19:30:40 +03:00
Eli Zaretskii
ca46332555 Possible fix for bug #14630, which continues bug #14062.
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.
2013-06-17 19:28:47 +03:00
Lars Magne Ingebrigtsen
708e05f6d1 Implement new function `add-face-text-property'
* 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.
2013-06-17 17:28:22 +02:00
Paul Eggert
84575e67fc Use functions, not macros, for XINT etc.
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.
2013-06-16 23:03:19 -07:00
Eli Zaretskii
9583ec36c4 Fix bug #14567 with jumpy scrolling of tall images.
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.
2013-06-15 12:34:20 +03:00
Paul Eggert
210272cebb * fns.c (Fcopy_sequence): Simplify XTYPE calculation. 2013-06-15 00:41:42 -07:00
Stefan Monnier
de0503df97 * lisp/subr.el (with-eval-after-load): New macro.
(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.
2013-06-13 18:24:52 -04:00
Kelly Dean
afbfe14326 * src/fileio.c (Fdo_auto_save): Trap errors in auto-save-hook (tiny change)
Fixes: debbugs:14479
2013-06-12 22:13:05 -07:00
Xue Fuqiao
d177e21300 * src/fileio.c (expand_file_name): Doc fix. 2013-06-12 09:12:59 +08:00
Paul Eggert
f7394b1235 Tickle glib by waiting for Emacs itself, not for process 0.
* 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
2013-06-11 11:34:06 -07:00
Juanma Barranquero
fa6bc6fd50 Fix typos.
* lisp/replace.el (query-replace, occur-read-regexp-defaults-function)
  (replace-search):
* lisp/subr.el (declare-function, number-sequence, local-set-key)
  (substitute-key-definition, locate-user-emacs-file)
  (with-silent-modifications, split-string, eval-after-load):
  Fix typos, remove unneeded backslashes and reflow some docstrings.
2013-06-11 18:51:12 +02:00
Paul Eggert
05e3e4125d * keyboard.c: Don't use PROP (...) as an lvalue.
(parse_tool_bar_item) [!USE_GTK && !HAVE_NS]:
Use set_prop (A, B), not PROP (A) = B.
2013-06-10 21:15:49 -07:00
Juanma Barranquero
e7b41c4c9a Fix ChangeLog typos and whitespace. 2013-06-10 16:58:52 +02:00
Eli Zaretskii
17dd30979f Minor cleanup in last commit in get_it_property.
src/xdisp.c (get_it_property): Use it->window instead of generating
 a Lisp object from it->w.
2013-06-10 07:36:06 +03:00
Eli Zaretskii
ad257d4f6c Fix current-bidi-paragraph-direction wrt window pointer.
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.
2013-06-09 19:49:07 +03:00
Eli Zaretskii
52fab9c9b8 Fix bug #14575 with window-specific overlays with line-prefix or wrap-prefix.
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.
2013-06-09 19:37:22 +03:00
Eli Zaretskii
5bf97bfc67 Fix bug #14575 with window-specific overlays with display props.
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.
2013-06-08 21:28:36 +03:00
Jan Djärv
b33f93eea9 Fix compilation issues for GNUStep and GLIB conflicts.
* 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
2013-06-08 20:13:24 +02:00
Jan Djärv
5de0e01164 * 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.
2013-06-08 10:48:52 +02:00
Eli Zaretskii
a822acffe2 Fix "make TAGS" on MS-Windows.
lisp/Makefile.in (TAGS TAGS-LISP): Pass the (long) list of *.el files
 through xargs, to avoid failure due to MS-Windows limitations on
 command-line length.

 src/Makefile.in (ctagsfiles1, ctagsfiles2): Don't include *.m files.
 (ctagsfiles3): New variable, includes only *.m files.
 (TAGS): Use an explicit language name in the regular expressions,
 to avoid transformation of '/SOMETHING' by MSYS to
 'c:\MSYS\SOMETHING'.
2013-06-07 12:26:02 +03:00
Richard Copley
6c0a9ed1b1 Fix bug #14513 with --enable-locallisppath not working on MS-Windows.
Makefile.in (msys_to_w32): Modify to support d:\foo file names.
 (msys_lisppath_to_w32, msys_prefix_subst, msys_sed_sh_escape): New
 variables.
 (epaths-force-w32): Use them.

 epaths.nt (PATH_SITELOADSEARCH): Fix commentary.

 epaths.in: Fix commentary to PATH_SITELOADSEARCH.
2013-06-07 11:08:29 +03:00
Juanma Barranquero
a0eb10b32a Fix typos. 2013-06-07 05:23:57 +02:00
Eli Zaretskii
9ef6111b7c Improve the fix for bug #14558.
src/xdisp.c (note_mouse_highlight): When mouse-highlight is off,
 still need to set the mouse pointer shape and activate help-echo.
2013-06-06 19:35:31 +03:00
Paul Eggert
7d300d644c A few porting etc. fixes for the new file monitor code.
See the thread containing
<http://lists.gnu.org/archive/html/emacs-devel/2013-06/msg00109.html>.
* gfilenotify.c (dir_monitor_callback, Fgfile_add_watch)
(Fgfile_rm_watch): Don't assume EMACS_INT is the same width as a pointer.
(dir_monitor_callback, Fgfile_rm_watch):
Use assq_no_quit instead of Fassoc, for speed.
(dir_monitor_callback, Fgfile_rm_watch):
eassert that the monitor is a fixnum.
(dir_monitor_callback): No need for CDR_SAFE.
Simplify building of lisp with alternative tails.
(Fgfile_add_watch, Fgfile_rm_watch):
Do not assume glib functions set errno reliably on failure.
(Fgfile_add_watch): Check that the monitor survives the XIL trick,
and signal an error otherwise.
(Fgfile_rm_watch): Prefer CONSP to !NILP.
Use Fdelq instead of Fdelete, for speed.
2013-06-06 00:04:35 -07:00
Eli Zaretskii
817ebfcfde Fix bug #14558 with turning off mouse-highlight during highlight.
src/xdisp.c (handle_tool_bar_click): When mouse-highlight is off,
 don't insist on being invoked on a highlighted tool-bar button.
 Avoids losing tool-bar functionality when mouse-highlight is nil.
 (note_tool_bar_highlight, note_mode_line_or_margin_highlight):
 Don't highlight when mouse-highlight is nil.
 (note_mouse_highlight): When mouse-highlight is nil, don't return
 right away; instead, run tool-bar and mode-line highlight
 subroutine, clear any existing highlight, and revert the mouse
 pointer to its default shape.
2013-06-05 23:45:34 +03:00
Stefan Monnier
55577e7c02 * lisp/simple.el: Move all the prog-mode code to prog-mode.el.
* lisp/progmodes/prog-mode.el: New file.
* lisp/loadup.el:
* src/lisp.mk (lisp): Add prog-mode.el.
2013-06-05 14:10:27 -04:00
Paul Eggert
f019a68484 Chain glib's SIGCHLD handler from Emacs's (Bug#14474).
* process.c (dummy_handler): New function.
(lib_child_handler): New static var.
(handle_child_signal): Invoke it.
(catch_child_signal): If a library has set up a signal handler,
save it into lib_child_handler.
(init_process_emacs): If using glib and not on Windows, tickle glib's
child-handling code so that it initializes its private SIGCHLD handler.
* syssignal.h (SA_SIGINFO): Default to 0.
* xterm.c (x_term_init): Remove D-bus hack that I installed on May
31; it should no longer be needed now.
2013-06-05 10:04:13 -07:00
Michael Albinus
90db87027f * emacs.c (main) [HAVE_GFILENOTIFY]: Call globals_of_gfilenotify.
* gfilenotify.c (globals_of_gfilenotify): New function.
(syms_of_gfilenotify): Move global initialization there.

* lisp.h (globals_of_gfilenotify) [HAVE_GFILENOTIFY]: Add prototype.
2013-06-05 14:17:02 +02:00
Stefan Monnier
bfa3acd65b * src/keymap.c (Fcurrent_active_maps, Fdescribe_buffer_bindings):
* src/keyboard.c (menu_bar_items, tool_bar_items):
* src/doc.c (Fsubstitute_command_keys): Voverriding_terminal_local_map does
not override local keymaps any more.
2013-06-04 21:58:43 -04:00
Eli Zaretskii
ba59bd80a2 Fix bug #14540 with inaccurate doc string of pos-visible-in-window-p.
src/window.c (Fpos_visible_in_window_p): Doc fix.
2013-06-04 19:33:46 +03:00
Eli Zaretskii
9337e20653 Fix crashes in a text-mode session on Windows.
src/w32console.c (initialize_w32_display): Return the dimensions of
 the console window via 2 additional arguments, not via the current
 frame.  This avoids crashes due to overrunning the bounds of
 frame's decode_mode_spec_buffer, which is not resized following
 the change of the frame dimensions from the initial 10x10.
 src/w32term.h (w32_initialize_display_info): Adjust prototype.
 src/term.c (init_tty): Take dimensions of the frame from the values
 returned by initialize_w32_display.
2013-06-03 22:28:13 +03:00