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

610 commits

Author SHA1 Message Date
Paul Eggert
ab422c4d68 Update copyright notices for 2013. 2013-01-01 09:11:05 +00:00
Eli Zaretskii
d6cae7321e More improvements in 'struct glyph' comments. 2012-12-29 11:24:13 +02:00
Eli Zaretskii
7a3a74936f Fix bug #13277 with TTY cursor positioning in a line with overlay arrow.
src/xdisp.c (set_cursor_from_row): Don't confuse a truncation or
 continuation glyph on a TTY with an indication of an empty line.
 src/dispextern.h: Improve commentary to glyph->charpos and
 glyph->object.
2012-12-27 19:29:14 +02:00
Daniel Colascione
36a305a723 Merge from trunk 2012-10-07 14:31:58 -08:00
Fabrice Popineau
62aba0d497 Support x64 build on MS-Windows with MSVC.
src/w32term.h (SCROLL_BAR_PACK, SCROLL_BAR_UNPACK): Define for x64.
 (SET_SCROLL_BAR_W32_WINDOW): Cast ID to intptr_t, for
 compatibility with x64.
 src/w32term.c (w32_draw_underwave): Don't use GCC extensions for
 defining an XRectangle structure.
 src/w32proc.c (RVA_TO_PTR, w32_executable_type): Fix pointer
 arithmetics for compatibility with x64.
 src/w32menu.c (add_menu_item): Use UINT_PTR instead of UINT, for
 compatibility with x64.
 src/w32heap.h: Adjust prototypes and declarations.
 src/w32heap.c (RVA_TO_PTR, allocate_heap, sbrk, init_heap)
 (round_heap): Use DWORD_PTR, ptrdiff_t and size_t instead of
 DWORD, long, and unsigned long, for compatibility with x64.
 (allocate_heap) [_WIN64]: Reserve 32GB of memory.
 (sbrk): Argument is now of type ptrdiff_t.
 src/w32fns.c (HMONITOR): Condition declaration on _WIN32_WINNT being
 less than 0x0500.
 (w32_msg_pump): Use WPARAM type for 'result'.
 src/w32.c (init_environment, get_emacs_configuration): Support AMD64
 architecture.
 (init_ntproc): Cast arguments of _open_osfhandle to intptr_t, for
 compatibility with x64.
 src/vm-limit.c (lim_data): Now size_t.
 (check_memory_limits): Adjust prototypes of real_morecore and
 __morecore to receive argument of type ptrdiff_t.  Use size_t for
 five_percent and data_size.
 src/unexw32.c: Use DWORD_PTR instead of DWORD for file-scope
 variables, for compatibility with x64.
 (rva_to_section, offset_to_section, relocate_offset)
 (OFFSET_TO_RVA, RVA_TO_OFFSET, RVA_TO_SECTION_OFFSET)
 (PTR_TO_RVA, RVA_TO_PTR, OFFSET_TO_PTR, get_section_info)
 (copy_executable_and_dump_data): Use DWORD_PTR instead of DWORD
 for compatibility with x64.
 src/sysdep.c (STDERR_FILENO): Define if not already defined.
 src/ralloc.c (real_morecore): Argument type is now ptrdiff_t.
 (__morecore): Argument type is now ptrdiff_t.
 (ROUNDUP, MEM_ROUNDUP): Use size_t instead of 'unsigned long'.
 (relinquish): Use ptrdiff_t type for 'excess'.
 (r_alloc_sbrk): Argument type is now ptrdiff_t.
 src/makefile.w32-in (HEAPSIZE): Get value from EMACS_HEAPSIZE.
 (bootstrap-temacs-CMD, bootstrap-temacs-SH): Use $(EMACS_PURESIZE)
 instead of a literal number.
 src/gmalloc.c [WINDOWSNT]: Include w32heap.h.
 (min): Define only if not already defined.
 src/frame.c (x_report_frame_params): Use EMACS_UINT for the return
 value of FRAME_X_WINDOW, to fit a 64-bit pointer on 64-bit Windows
 hosts.
 src/image.c (x_bitmap_pixmap): Return ptrdiff_t, not int, since
 'bitmaps' is a pointer.
 src/dispextern.h (x_bitmap_pixmap): Adjust prototype.
 src/alloc.c (gdb_make_enums_visible): Now conditional on __GNUC__.

 nt/makefile.w32-in ($(TRES)): Use $(EMACS_MANIFEST).
 nt/inc/sys/socket.h: Don't map Winsock error codes to standard ones
 that are already defined.
 nt/inc/ms-w32.h (EMACS_INT, EMACS_UINT, EMACS_INT_MAX, PRIuMAX)
 (pI, _INTPTR) [_MSC_VER]: Fix definitions for MSVC.
 [_MSC_VER]: Add pragmas to suppress some MSVC warnings.
 nt/preprep.c (pfnCheckSumMappedFile, rva_to_section)
 (offset_to_section, relocate_offset, OFFSET_TO_RVA)
 (RVA_TO_OFFSET, RVA_TO_SECTION_OFFSET, PTR_TO_RVA)
 (OFFSET_TO_PTR, ROUND_UP, ROUND_DOWN)
 (copy_executable_and_move_sections, ADJUST_IMPORT_RVA, main): Use
 DWORD_PTR instead of DWORD for compatibility with x64.
 nt/nmake.defs: Support AMD64.
 (EMACS_HEAPSIZE, EMACS_PURESIZE, EMACS_MANIFEST): New macros.
 nt/gmake.defs: (EMACS_HEAPSIZE, EMACS_PURESIZE, EMACS_MANIFEST):
 New macros.
 nt/addsection.c (pfnCheckSumMappedFile, rva_to_section)
 (offset_to_section, relocate_offset, OFFSET_TO_RVA)
 (RVA_TO_OFFSET, RVA_TO_SECTION_OFFSET, PTR_TO_RVA)
 (OFFSET_TO_PTR, ROUND_UP, ROUND_DOWN)
 (copy_executable_and_add_section, main): Use DWORD_PTR instead of
 DWORD, for compatibility with x64.
 nt/emacs-x64.manifest: New file.
 nt/emacs-x86.manifest: Renamed from emacs.manifest.

 lib-src/ntlib.c (gettimeofday): Copy from src/w32.c.  lib/gettime. 
 needs this function.
2012-09-30 23:36:42 +02:00
Paul Eggert
578098f346 image.c, indent.c: Use bool for booleans.
* dispextern.h (struct image_type): Members valid_p, load, init
now return bool, not int.  All uses changed.
* image.c: Omit unnecessary static decls.
(x_create_bitmap_mask, x_build_heuristic_mask):
Return void, not int, since callers don't care about the return value.
(x_create_bitmap_mask, define_image_type, valid_image_p)
(struct image_keyword, parse_image_spec, image_spec_value)
(check_image_size, image_background)
(image_background_transparent, x_clear_image_1)
(postprocess_image, lookup_image, x_check_image_size)
(x_create_x_image_and_pixmap, xbm_image_p)
(Create_Pixmap_From_Bitmap_Data, xbm_read_bitmap_data)
(xbm_load_image, xbm_file_p, xbm_load, xpm_lookup_color)
(init_xpm_functions, xpm_valid_color_symbols_p, xpm_image_p)
(xpm_load, xpm_load_image, lookup_rgb_color, lookup_pixel_color)
(x_to_xcolors, x_build_heuristic_mask, pbm_image_p, pbm_load)
(png_image_p, init_png_functions, png_load_body, png_load)
(jpeg_image_p, init_jpeg_functions, jpeg_load_body, jpeg_load)
(tiff_image_p, init_tiff_functions, tiff_load, gif_image_p)
(init_gif_functions, gif_load, imagemagick_image_p)
(imagemagick_load_image, imagemagick_load, svg_image_p)
(init_svg_functions, svg_load, svg_load_image, gs_image_p)
(gs_load):
* nsimage.m (ns_load_image):
* nsterm.m (ns_defined_color):
* xfaces.c (tty_lookup_color, tty_defined_color, defined_color):
* xfns.c (x_defined_color):
* xterm.c (x_alloc_lighter_color_for_widget)
(x_alloc_nearest_color_1, x_alloc_nearest_color)
(x_alloc_lighter_color):
* indent.c (disptab_matches_widthtab, current_column)
(scan_for_column, string_display_width, indented_beyond_p)
(compute_motion, vmotion, Fvertical_motion):
Use bool for booleans.
2012-09-24 14:38:23 -07:00
Chong Yidong
d07ff9db92 Remove LIBRARIES arg from w32_delayed_load and friends.
These always use Vdynamic_library_alist anyway.

* src/image.c (Finit_image_library, lookup_image_type)
(define_image_type): Remove now-unneeded second arg.
(init_xpm_functions, init_png_functions, init_jpeg_functions)
(init_tiff_functions, init_gif_functions, init_svg_functions):
Arglist and w32_delayed_load calling convention changed.
(gs_type): Remove init_gs_functions; there is no such function.

* src/gnutls.c (init_gnutls_functions): Caller changed; remove arg.
(Fgnutls_available_p): Caller changed.

* src/xml.c (init_libxml2_functions, Flibxml_parse_html_region)
(Flibxml_parse_xml_region): Likewise.

* src/dispextern.h (struct image_type): Remove arg from init function.

* src/w32.c (w32_delayed_load): Remove LIBRARIES argument; always use
Vdynamic_library_alist.

* lisp/image.el (image-type-available-p): Change caller to
init-image-library.
2012-09-23 17:16:57 +08:00
Chong Yidong
bb4d86b40c Refactor image-type loading.
* src/dispextern.h (struct image_type): Add new slot, storing a type
initialization function.

* src/image.c (define_image_type): Call the image initializer function
if it is defined.  Arguments and return value changed.
(valid_image_p, make_image): Callers changed.
(xbm_type, xpm_type, pbm_type, png_type, jpeg_type, tiff_type)
(gif_type, imagemagick_type, svg_type, gs_type): Add
initialization functions.
(Finit_image_library): Call lookup_image_type.
(CHECK_LIB_AVAILABLE): Macro deleted.
(lookup_image_type): Call define_image_type here, rather than via
Finit_image_library, and without using CHECK_LIB_AVAILABLE.
(syms_of_image): Move define_image_type calls for xbm_type and
pbm_type to lookup_image_type.
2012-09-22 22:10:24 +08:00
Eli Zaretskii
aa1fe812d3 src/dispextern.h: Fix commentary for struct it's string_nchars member. 2012-09-22 15:49:25 +03:00
Daniel Colascione
2ab329f3b5 Merge from trunk 2012-09-17 04:07:36 -08:00
Daniel Colascione
0fda9b750e Implement cygw32
Here, we use the generic window-system configuration system we just
implemented to support the w32 window-system in the mainline build
under Cygwin.  (Previously, the w32 window system could only be
compiled as part of the NT-native Emacs build process.)

The changes in this patch need to be applied atomically in order to
avoid breaking Emacs.  The changes include:

  - Changes throughout the Lisp and C code to not assume that
      NT Emacs and the w32 window system are synonymous.

  - Wiring up the regular select(2) event loop to Windows messages

  - Cleaning up the w32 drag-and-drop receiving code.

  - Exposing Cygwin path conversion functions to elisp.

  - Unicode file dialog support when compiling for Cygwin.

  - Splitting the w32 term lisp initialization code into code
    applicable to any w32 window-system and code specific to
    system-type windows-nt.

  - Integrating the old and new w32 code into the build system.
2012-09-17 03:55:02 -08:00
Paul Eggert
4a4bbad214 Simplify SIGIO usage.
The code that dealt with SIGIO was crufty and confusing, e.g., it
played tricks like "#undef SIGIO" but these tricks were not used
consistently.  Simplify mostly by not #undeffing standard symbols,
e.g., use "defined USABLE_SIGIO" (our symbol, which we can define
or not as we please) rather than "defined SIGIO" (standard symbol
that we probably shouldn't #undef).
* configure.ac (NO_TERMIO, BROKEN_FIONREAD, BROKEN_SIGAIO)
(BROKEN_SIGPOLL, BROKEN_SIGPTY): Remove.
(USABLE_FIONREAD, USABLE_SIGIO): New symbols.  All uses of
'defined SIGIO' replaced with 'defined USABLE_SIGIO', with no need
to #undef SIGIO now (which was error-prone).  Likewise, all uses
of 'defined FIONREAD' replaced with 'defined USABLE_FIONREAD'.
* src/admin/CPP_DEFINES (BROKEN_SIGAIO, BROKEN_SIGIO, BROKEN_SIGPOLL)
(BROKEN_SIGPTY, NO_TERMIO): Remove.
* src/conf_post.h [USG5_4]: Do not include <sys/wait.h> here.
Modules that need it can include it.
[USG5_4 && emacs]: Likewise, do not include the streams stuff here.
* src/dispextern.h (ignore_sigio): New decl.
* src/emacs.c (shut_down_emacs): Invoke unrequest_sigio
unconditionally, since it's now a no-op if !USABLE_SIGIO.
* src/emacs.c (shut_down_emacs):
* src/keyboard.c (kbd_buffer_store_event_hold):
Use ignore_sigio rather than invoking 'signal' directly.
* src/keyboard.c (USABLE_FIONREAD && USG5_4): Include <sys/filio.h>,
for FIONREAD.
(FIONREAD, SIGIO): Do not #undef.
(tty_read_avail_input): Use #error rather than a syntax error.
* src/process.c [USG5_4]: Include <sys/stream.h> and <sys/stropts.h>,
for I_PIPE, used by SETUP_SLAVE_PTY.
(DATAGRAM_SOCKETS): Simplify defn, based on USABLE_FIONREAD.
* src/sysdep.c (croak): Remove; no longer needed.  This bit of
temporary code, with Fred N. Fish's comment that it's temporary,
has been in Emacs since at least 1992!
(init_sigio, reset_sigio, request_sigio, unrequest_sigio):
Arrange for them to be no-ops in all cases when ! USABLE_SIGIO.
* src/syssignal.h (croak): Remove decl.
(SIGIO, SIGPOO, SIGAIO, SIGPTY): Do not #undef; that's too fragile.
* src/systty.h [!NO_TERMIO]: Do not include <termio.h>; no longer needed
now that we're termios-only.
(FIONREAD, ASYNC) [BROKEN_FIONREAD]: Do not #undef.
* src/term.c (dissociate_if_controlling_tty): Use #error rather than
a run-time error.

Fixes: debbugs:12408
2012-09-12 19:21:28 -07: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
59ea14cde3 * dispnew.c: Use bool for boolean.
(frame_garbaged, display_completed, delayed_size_change)
(fonts_changed_p, add_window_display_history)
(add_frame_display_history, verify_row_hash)
(adjust_glyph_matrix, clear_window_matrices, glyph_row_slice_p)
(row_equal_p, realloc_glyph_pool)
(allocate_matrices_for_frame_redisplay)
(showing_window_margins_p)
(adjust_frame_glyphs_for_frame_redisplay)
(build_frame_matrix_from_leaf_window, make_current)
(mirrored_line_dance, mirror_line_dance, update_frame)
(update_window_tree, update_single_window)
(check_current_matrix_flags, update_window, update_text_area)
(update_window_line, set_window_update_flags, scrolling_window)
(update_frame_1, scrolling, buffer_posn_from_coords)
(do_pending_window_change, change_frame_size)
(change_frame_size_1, sit_for):
Use bool for boolean.
(clear_glyph_matrix_rows): Rename from enable_glyph_matrix_rows,
and remove last int (actually boolean) argument, which was always 0.
All callers changed.
* dispextern.h, frame.h, lisp.h: Reflect above API changes.
* dispextern.h (struct composition_it): Use bool for boolean.
(struct glyph_matrix): Don't assume buffer sizes can fit in 'int'.
(struct bidi_it): Use unsigned:1, not int, for boolean prev_was_pdf.
* dired.c (file_name_completion):
Use bool for boolean.  (This was missed in an earlier change.)
2012-08-27 17:33:56 -07:00
Paul Eggert
2cc2116757 * bidi.c: Use bool for boolean.
This is a bit more readable, and makes the text segment of bidi.o
0.4% smaller on my platform (GCC 4.7.1 x86-64, Fedora 15).
Presumably it's faster too.
(bidi_initialized, bidi_ignore_explicit_marks_for_paragraph_level):
Now bool.
(bidi_cache_find_level_change, bidi_cache_iterator_state)
(bidi_unshelve_cache, bidi_init_it, bidi_count_bytes)
(bidi_char_at_pos, bidi_fetch_char, bidi_paragraph_init)
(bidi_explicit_dir_char, bidi_level_of_next_char)
(bidi_find_other_level_edge, bidi_move_to_visually_next):
Use bool for booleans, instead of int.
* dispextern.h (bidi_init_it, bidi_paragraph_init)
(bidi_unshelve_cache): Adjust decls to match code.
2012-08-23 13:31:52 -07:00
Dmitry Antipov
d3d50620ed Drop WGET and revert read access to Lisp_Objects slots of struct window.
* window.h (WGET): Remove.
(struct window): Do not use INTERNAL_FIELD.
* alloc.c, buffer.c, composite.c, dispextern.h, dispnew.c, editfns.c:
* fileio.c, font.c, fontset.c, frame.c, frame.h, fringe.c, indent.c:
* insdel.c, keyboard.c, keymap.c, lisp.h, minibuf.c, msdos.c, nsfns.m:
* nsmenu.m, nsterm.m, print.c, textprop.c, w32fns.c, w32menu.c:
* w32term.c, window.c, xdisp.c, xfaces.c, xfns.c, xmenu.c, xterm.c:
Adjust users.
2012-08-07 11:33:18 +04:00
Dmitry Antipov
077288cf3f Separate read and write access to Lisp_Object slots of struct window.
* window.h (WGET, WSET): New macros similar to AREF and ASET.
* alloc.c, buffer.c, composite.c, dispextern.h, dispnew.c, editfns.c:
* fileio.c, font.c, fontset.c, frame.c, frame.h, fringe.c, indent.c:
* insdel.c, keyboard.c, keymap.c, lisp.h, minibuf.c, msdos.c, nsfns.m:
* nsmenu.m, nsterm.m, print.c, textprop.c, w32fns.c, w32menu.c:
* w32term.c, window.c, xdisp.c, xfaces.c, xfns.c, xmenu.c, xterm.c:
Adjust users.
2012-08-06 14:24:26 +04:00
Paul Eggert
f162bcc31c Use C99-style 'extern inline' if available.
* lib-src/profile.c (SYSTIME_INLINE): Define.
* nt/config.nt: Sync with autogen/config.in.
(_GL_INLINE, _GL_EXTERN_INLINE, _GL_INLINE_HEADER_BEGIN)
(_GL_INLINE_HEADER_END): New macros.
* src/buffer.h (BUFFER_INLINE):
* src/category.h (CATEGORY_INLINE):
* src/character.h (CHARACTER_INLINE):
* src/charset.h (CHARSET_INLINE):
* src/composite.h (COMPOSITE_INLINE):
* src/dispextern.h (DISPEXTERN_INLINE):
* src/lisp.h (LISP_INLINE):
* src/systime.h (SYSTIME_INLINE):
New macro, replacing 'static inline' in this header.
* src/buffer.h, src/category.h, src/character.h, src/charset.h:
* src/composite.h, src/dispextern.h, lisp.h, systime.h:
Use INLINE_HEADER_BEGIN, INLINE_HEADER_END.
* src/alloc.c (LISP_INLINE):
* src/buffer.c (BUFFER_INLINE):
* src/category.c (CATEGORY_INLINE):
* src/character.c (CHARACTER_INLINE):
* src/charset.c (CHARSET_INLINE):
* src/composite.c (COMPOSITE_INLINE):
* src/dispnew.c (DISPEXTERN_INLINE):
* src/sysdep.c (SYSTIME_INLINE):
Define to EXTERN_INLINE, so that the corresponding functions
are compiled into code.
* src/conf_post.h (INLINE, EXTERN_INLINE, INLINE_HEADER_BEGIN)
(INLINE_HEADER_END): New macros.
* src/lisp.h (PSEUDOVECTOR_FLAG): Now a macro as well as a constant,
since it's used in non-static inline functions now.
2012-08-02 00:31:34 -07:00
Dmitry Antipov
3a45383a47 Use INTERNAL_FIELD for windows.
* src/window.h (WVAR): New macro.
(struct window): Change Lisp_Object members to INTERNAL_FIELD.
* src/alloc.c, src/buffer.c, src/composite.c, src/dispextern.h:
* src/dispnew.c, src/editfns.c, src/fileio.c, src/font.c, src/fontset.c:
* src/frame.c, src/frame.h, src/fringe.c, src/indent.c, src/insdel.c:
* src/keyboard.c, src/keymap.c, src/lisp.h, src/minibuf.c, src/nsterm.m:
* src/print.c, src/textprop.c, src/w32fns.c, src/w32menu.c, src/w32term.c:
* src/window.c, src/xdisp.c, src/xfaces.c, src/xfns.c, src/xmenu.c:
* src/xterm.c: Users changed.
* admin/coccinelle/window.cocci: Semantic patch to replace direct
access to Lisp_Object members of struct window to WVAR.
2012-08-01 09:11:36 +04:00
Paul Eggert
1a95276708 * xdisp.c (produce_special_glyphs): Now static.
* dispextern.h (produce_special_glyphs): Remove decl.
2012-07-12 20:50:58 -07:00
Eli Zaretskii
3434fe8a23 Cleanup changes following fix for bug #11832.
src/ xdisp.c (display_line): Add commentary about displaying 
 truncation glyphs on GUI frames.
 (produce_special_glyphs): Move here from term.c.
 src/term.c (produce_special_glyphs): Move to xdisp.c.
 src/dispextern.h (produce_special_glyphs): Move prototype to xdisp.c
 section.
2012-07-08 19:38:43 +03:00
Paul Eggert
fee5959dd8 Use c_strcasecmp for ASCII case-insensitive comparison.
Fixes: debbugs:11786
2012-07-06 14:07:46 -07:00
Tom Tromey
404dbd373a Auto-generate EXFUN using make-docfile
src
	* window.c (Fset_window_margins, Fset_window_fringes)
	(Fset_window_scroll_bars, Fset_window_vscroll): No longer static.
	* textprop.c (Fprevious_property_change): No longer static.
	* syntax.c (Fsyntax_table_p): No longer static.
	* process.c (Fget_process, Fprocess_datagram_address): No longer
	static.
	* keymap.c (Flookup_key, Fcopy_keymap): No longer static.
	* keyboard.c (Fcommand_execute): No longer static.
	Remove EXFUN.
	* insdel.c (Fcombine_after_change_execute): No longer static.
	* image.c (Finit_image_library): No longer static.
	* fileio.c (Fmake_symbolic_link): No longer static.
	* eval.c (Ffetch_bytecode): No longer static.
	* editfns.c (Fuser_full_name): No longer static.
	* doc.c: (Fdocumentation_property, Fsnarf_documentation): No
	longer static.
	* buffer.c (Fset_buffer_major_mode, Fdelete_overlay): No longer
	static.
	* dired.c (Ffile_attributes): No longer static.
	* composite.c (Fcomposition_get_gstring): No longer static.
	* callproc.c (Fgetenv_internal): No longer static.

	* ccl.h: Remove EXFUNs.
	* buffer.h: Remove EXFUNs.
	* dispextern.h: Remove EXFUNs.
	* intervals.h: Remove EXFUNs.
	* fontset.h: Remove EXFUN.
	* font.h: Remove EXFUNs.
	* dosfns.c (system_process_attributes): Remove EXFUN.
	* keymap.h: Remove EXFUNs.
	* lisp.h: Remove EXFUNs.
	* w32term.h: Remove EXFUNs.
	* window.h: Remove EXFUNs.
	* xsettings.h: Remove EXFUN.
	* xterm.h: Remove EXFUN.

lib-src
	* make-docfile.c (enum global_type) <FUNCTION>: New constant.
	(struct global) <value>: New field.
	(add_global): Add 'value' argument.
	(compare_globals): Sort functions at the end.
	(close_emacs_globals): New function.
	(write_globals): Handle functions.
	(scan_c_file): Call add_global for DEFUN.
2012-07-03 12:24:42 -06:00
Dmitry Antipov
e509cfa606 * configure.in: Add glyphs category to --enable-checking option.
(GLYPH_DEBUG): Define if glyphs debugging is enabled.
* src/dispextern.h (GLYPH_DEBUG): Now defined in config.h if
enabled with --enable-checking=[all,glyphs] configure option.
Fix GLYPH_DEBUG usage assuming that it may be undefined,
adjust comments accordingly.
* src/dispnew.c: Fix GLYPH_DEBUG usage assuming that it may be
undefined, adjust comments accordingly.
* src/image.c: Likewise.
* src/scroll.c: Likewise.
* src/w32fns.c: Likewise.
* src/w32term.c: Likewise.
* src/xdisp.c: Likewise.
* src/xfaces.c: Likewise.
* src/xfns.c: Likewise.
* src/xterm.c: Likewise.
2012-06-28 11:50:50 +04:00
Dmitry Antipov
a54e2c050b Generalize run-time debugging checks.
* configure.in (ENABLE_CHECKING): Update comment.
* src/dispextern.h (XASSERTS): Remove.
* src/fontset.c (xassert): Remove.
Convert from xassert to eassert.
* src/alloc.c: Convert from xassert to eassert.
* src/bidi.c: Likewise.
* src/dispnew.c: Likewise.
* src/fns.c: Likewise.
* src/fringe.c: Likewise.
* src/ftfont.c: Likewise.
* src/gtkutil.c: Likewise.
* src/image.c: Likewise.
* src/keyboard.c: Likewise.
* src/menu.c: Likewise.
* src/process.c: Likewise.
* src/scroll.c: Likewise.
* src/sound.c: Likewise.
* src/term.c: Likewise.
* src/w32console.c: Likewise.
* src/w32fns.c: Likewise.
* src/w32term.c: Likewise.
* src/window.c: Likewise.
* src/xdisp.c: Likewise.
* src/xfaces.c: Likewise.
* src/xfns.c: Likewise.
* src/xselect.c: Likewise.
* src/xterm.c: Likewise.
2012-06-28 11:50:27 +04:00
Dmitry Antipov
3511c78479 * configure.in (AC_CHECK_FUNCS): Detect library functions
strcasecmp and strncasecmp.
* lib-src/etags.c (etags_strcasecmp, etags_strncasecmp): Define to
library functions strcasecmp and strncasecmp if available.
* lwlib/lwlib.c (my_strcasecmp): Rename to lwlib_strcasecmp, which
may be defined to library function strcasecmp if available.
* src/dispextern.c (xstrcasecmp): Define to library function
strcasecmp if available.
* src/xfaces.c: Do not use xstrcasecmp if strcasecmp is available.
2012-06-25 18:07:04 +04:00
Paul Eggert
d35af63cd6 Support higher-resolution time stamps.
Fixes: debbugs:9000
2012-06-22 14:17:42 -07:00
Alp Aker
9b0e3ebaef Implement wave-style variant of underlining.
* doc/lispref/display.texi: Document new face attribute.
  * lisp/cus-face.el (custom-face-attributes): Add wave-style underline
  attribute.
  * lisp/faces.el (set-face-attribute): Update docstring.
  * src/dispextern.h (face_underline_type): New enum.
  (face): Add field for underline type.
  * src/nsterm.m (ns_draw_underwave): New function.
  (ns_draw_text_decoration): Use it.
  * src/w32term.c (w32_restore_glyph_string_clip, w32_draw_underwave):
  New functions.
  (x_draw_glyph_string): Use them.
  * src/xfaces.c (Qline, Qwave): New Lisp objects.
  (check_lface_attrs, merge_face_ref)
  (Finternal_set_lisp_face_attribute, realize_x_face): Handle
  wave-style underline face attributes.
  * src/xterm.c (x_draw_underwave): New function.
  (x_draw_glyph_string): Use it.
2012-06-16 20:32:36 -04:00
Chong Yidong
31ca4639ad Merge from emacs-24; up to 2012-04-25T15:23:19Z!sdl.web@gmail.com 2012-06-10 21:20:58 +08:00
Chong Yidong
cd4eb164a9 Add support for italic text on ttys.
* src/dispextern.h: Replace unused TTY_CAP_BLINK with TTY_CAP_ITALIC.
(struct face): Remove unused fields tty_dim_p, tty_blinking_p, and
tty_alt_charset_p.  Add tty_italic_p.

* src/term.c: Support italics in capable terminals.
(no_color_bit): Replace unused NC_BLINK with NC_ITALIC.
(turn_on_face): Output using TS_enter_italic_mode if available.
Don't handle unused blinking and alt-charset cases.
(turn_off_face): Handle italic case; discard unused tty_blinking_p
and tty_alt_charset_p cases.
(tty_capable_p, init_tty): Support italics.

* src/termchar.h (struct tty_display_info): Add field for italics.
Remove unused blink field.

* src/xfaces.c (tty_supports_face_attributes_p, realize_tty_face):
Handle slant.

Fixes: debbugs:9652
2012-06-10 00:44:44 +08:00
Eli Zaretskii
2517bc14d3 Improve commentary to 'struct it' in src/dispextern.h. 2012-06-01 12:14:07 +03:00
Paul Eggert
42b2a986d9 Merge from trunk. 2012-05-25 11:19:24 -07:00
Paul Eggert
53f7d2c04e Remove unused function hourglass_started.
* dispextern.h (hourglass_started):
* w32fns.c (hourglass_started):
* xdisp.c (hourglass_started): Remove.
2012-05-10 23:39:26 -07:00
Paul Eggert
45e9f7da84 Merge from trunk. 2012-04-09 15:54:59 -07:00
Kenichi Handa
679910f18b dispextern.h (struct glyph): Fix previous change. Change the bit length of glyphless.ch to 25 (Bug#11082). 2012-03-26 14:43:05 +09:00
Kenichi Handa
bf43fa51a6 dispextern.h (struct glyph): Change the bit length of glyphless.ch to 22 to make the member glyphless fit in 32 bits. 2012-03-26 00:35:23 +09:00
Chong Yidong
9f851fbd28 For line prefixes, use default face; don't inherit from previous line.
* src/dispextern.h (struct it): New member string_from_prefix_prop_p.

* src/xdisp.c (push_prefix_prop): Renamed from push_display_prop.
Mark string as coming from a prefix property.
(handle_face_prop): Use default face for prefix strings.
(pop_it, reseat_1): Save and restore string_from_prefix_prop_p.

Fixes: debbugs:4281
2012-03-22 15:08:17 +08:00
Paul Eggert
35cf62d95c Merge from trunk. 2012-01-09 09:36:10 -08:00
Glenn Morris
acaf905b11 Add 2012 to FSF copyright years for Emacs files 2012-01-05 01:46:05 -08:00
Paul Eggert
8f50130c56 Merge from trunk. 2011-12-10 16:56:50 -08:00
Paul Eggert
e47695319f Spelling fixes. 2011-11-26 20:43:11 -08:00
Juanma Barranquero
cd1181dbec Fix typos. 2011-11-20 04:48:53 +01:00
Eli Zaretskii
7430c2a179 Revert last commit. 2011-11-19 10:39:42 +02:00
Paul Eggert
9898bd0e5b Merge from trunk. 2011-11-18 23:15:21 -08:00
Paul Eggert
61ccba97a1 Fix minor problems found by static checking.
* dispextern.h, xdisp.c (row_hash): Declare extern only if XASSERTS.
* dispnew.c (verify_row_hash): Now static.
2011-11-18 10:29:29 -08:00
Eli Zaretskii
015137db60 Fix another crash due to incorrect hash value of glyph rows, bug #10035.
src/dispnew.c (swap_glyph_pointers): Swap the used[] arrays and the
 hash values of the two rows.
 (copy_row_except_pointers): Preserve the used[] arrays and the
 hash values of the two rows.
 src/xdisp.c (row_hash): New function, body extracted from
 compute_line_metrics.
 (compute_line_metrics): Call row_hash, instead of computing the
 hash code inline.
 src/dispnew.c (verify_row_hash): Call row_hash for computing the
 hash code of a row, instead of duplicating code from xdisp.c.
 src/dispextern.h (row_hash): Add prototype.
2011-11-18 14:21:42 +02:00
Paul Eggert
09db192c23 Avoid some portability problems by eschewing 'extern inline' functions.
The trivial performance wins aren't worth the portability hassles; see
<http://lists.gnu.org/archive/html/emacs-devel/2011-11/msg00084.html>
et seq.
* dispextern.h (window_box, window_box_height, window_text_bottom_y)
(window_box_width, window_box_left, window_box_left_offset)
(window_box_right, window_box_right_offset): Undo previous change,
by removing the "extern"s.
* intervals.c (adjust_intervals_for_insertion)
(adjust_intervals_for_deletion): Undo previous change,
making these static again.
(offset_intervals, temp_set_point_both, temp_set_point)
(copy_intervals_to_string): No longer inline.
* xdisp.c (window_text_bottom_y, window_box_width)
(window_box_height, window_box_left_offset)
(window_box_right_offset, window_box_left, window_box_right)
(window_box): No longer inline.
2011-11-08 12:05:27 -08:00
Paul Eggert
cb41b32a23 Fix some portability problems with 'inline'.
* dispextern.h (window_box, window_box_height, window_text_bottom_y)
(window_box_width, window_box_left, window_box_left_offset)
(window_box_right, window_box_right_offset): Declare extern.
Otherwise, these inline functions do not conform to C99 and
are miscompiled by Microsoft compilers.  Reported by Eli Zaretskii in
<http://lists.gnu.org/archive/html/emacs-devel/2011-11/msg00084.html>.
* intervals.c (adjust_intervals_for_insertion)
(adjust_intervals_for_deletion): Now extern, because otherwise the
extern inline functions 'offset_intervals' couldn't refer to it.
(static_offset_intervals): Remove.
(offset_intervals): Rewrite using the old contents of
static_offset_intervals.  The old version didn't conform to C99
because an extern inline function contained a reference to an
identifier with static linkage.
2011-11-06 13:12:10 -08:00
Paul Eggert
f0ecbca80a Merge from trunk. 2011-10-25 16:01:16 -07:00