+2008-08-30 Eli Zaretskii <eliz@gnu.org>
+
+ * w16select.c (Fw16_set_clipboard_data): Don't encode text if
+ clipboard is unavailable. Set dst to NULL if it doesn't point to
+ malloc'ed data.
+ (Fw16_get_clipboard_data): Initialize htext to NULL, to avoid
+ passing random values to xfree.
+
+ * dispnew.c (init_display): Set `tty's association in frame's
+ parameters alist to the name of the terminal device, if that is
+ known.
+
+2008-08-29 Jason Rumney <jasonr@gnu.org>
+
+ * w32uniscribe.c (uniscribe_check_otf): Don't fallback on DFLT script.
+
+2008-08-29 Eli Zaretskii <eliz@gnu.org>
+
+ * composite.c (fill_gstring_body): Avoid compiler warnings.
+
+ * font.c (font_fill_lglyph_metrics): Use EMACS_INT in
+ LGLYPH_SET_CODE to avoid compiler warnings.
+
+ * makefile.w32-in ($(BLD)/w32uniscribe.$(O)): Depend on composite.h
+
+ * composite.h (LGLYPH_SET_CODE): Cast `val' to EMACS_INT.
+
+ * w32uniscribe.c (uniscribe_shape): Shut up compiler warning in
+ LGLYPH_SET_CODE.
+
+2008-08-29 Kenichi Handa <handa@m17n.org>
+
+ * fileio.c (report_file_error): Don't downcase the first character
+ of errstring if it is still unibyte.
+
+2008-08-29 Kenichi Handa <handa@m17n.org>
+
+ These changes are to re-implement the automatic composition so
+ that it doesn't use text properties.
+
+ * Makefile.in (ftfont.o): Depend on composite.h.
+ (composite.o): Depend dispextern.h, font.h, frame, and window.h.
+
+ * character.h (Vunicode_category_table): Extern it.
+
+ * character.c (Vunicode_category_table): New variable.
+ (syms_of_character): DEFVAR_LISP Vunicode_category_table.
+
+ * chartab.c (optimize_sub_char_table): Perform more greedy
+ optimization.
+
+ * composite.h (enum composition_method): Delete
+ COMPOSITION_WITH_GLYPH_STRING.
+ (COMPOSITION_METHOD): Dont' check COMPOSITION_WITH_GLYPH_STRING.
+ (Vcomposition_function_table): Extern it.
+ (LGSTRING_XXX, LGLYPH_XXX): Macros moved from font.h.
+ (composition_gstring_put_cache, composition_gstring_from_id)
+ (composition_gstring_p, composition_gstring_width)
+ (composition_compute_stop_pos, composition_reseat_it)
+ (composition_update_it, composition_adjust_point): Extern them.
+ (Fcomposition_get_gstring): EXFUN it.
+
+ * composite.c: Include window.h, frame.h, dispextern.h font.h.
+ (Vcomposition_function_table)
+ (get_composition_id): Don't handle COMPOSITION_WITH_GLYPH_STRING.
+ (gstring_hash_table, gstring_work, gstring_work_headers): New
+ variables.
+ (gstring_lookup_cache, composition_gstring_put_cache)
+ (composition_gstring_from_id, composition_gstring_p)
+ (composition_gstring_width, fill_gstring_header)
+ (fill_gstring_body, autocmp_chars, composition_compute_stop_pos)
+ (composition_reseat_it, composition_update_it)
+ (composition_adjust_point, Fcomposition_get_gstring): New
+ functions.
+ (syms_of_composite): Initialize gstring_hash_table, gstrint_work,
+ and gstring_work_headers. DEFVAR_LISP composition-function-table.
+ Defsubr compostion_get_gstring.
+
+ * dispextern.h (struct glyph): New union u.cmp. Delete the member
+ cmp_id.
+ (struct glyph_string): Delete the member gidx. New members
+ cmp_id, cmp_from, and cmp_to.
+ (enum it_method): Delete GET_FROM_COMPOSITION.
+ (struct composition_it): New struct.
+ (struct it): New member cmp_it, and iterator_stack_entry.cmp_it.
+ Delete c, len, cmp_id, cmp_len in u.comp.
+
+ * font.h (enum lgstring_indices): Delete it.
+ (LGSTRING_XXX, LGLYPH_XXX): These macros moved to composite.h.
+ (enum lglyph_indices): Likewise.
+ (font_range): Extern adjusted.
+ (font_fill_lglyph_metrics): Extern it.
+
+ * font.c (QCf): New variable.
+ (check_gstring): Use LGSTRING_GLYPH_LEN, not LGSTRING_LENGTH.
+ (font_prepare_composition): Delete this function.
+ (font_range): Type and arguments changed.
+ (Ffont_make_gstring, Ffont_fill_gstring): Delete them.
+ (font_fill_lglyph_metrics): New function.
+ (Ffont_shape_text): Renamed to Ffont_shape_gstring and arguments
+ changed.
+ (syms_of_font): DEFSYM QCf. Delete defsubr for
+ Sfont_make_gstring, Sfont_fill_gstring, Sfont_shape_text. Defsubr
+ Sfont_shape_gstring.
+
+ * fontset.h (font_for_char): Extern it.
+
+ * fontset.c (font_for_char): New function.
+
+ * ftfont.c: Include composite.h.
+ (ftfont_resolve_generic_family): Add langset "en" to pattern.
+ (ftfont_shape_by_flt): Use LGSTRING_GLYPH_LEN, not
+ LGSTRING_LENGTH.
+
+ * indent.c: Include composite.h and dispextern.h.
+ (check_composition): Delete this function..
+ (scan_for_column): Handle composition by
+ composition_compute_stop_pos, composition_reseat_it, and
+ composition_update_it.
+ (compute_motion): Likewise.
+ (Fvertical_motion): Fix checking of composition.
+
+ * keyboard.c (adjust_point_for_property): Check composition by
+ composition_adjust_point.
+
+ * nsterm.m (ns_draw_glyph_string): Adjusted for the change of
+ struct glyph_string.
+
+ * term.c (encode_terminal_code): Adjusted for the change of struct
+ glyph.
+ (append_composite_glyph): Adjusted for the change of struct it and
+ struct glyph.
+ (produce_composite_glyph): Likewise.
+
+ * w32term.c (x_draw_composite_glyph_string_foreground): Adjusted
+ for the change of struct glyph_string.
+ (x_draw_glyph_string): Likewise.
+
+ * w32uniscribe.c (struct uniscribe_font_info): Include composite.h.
+ (uniscribe_shape): Use LGSTRING_GLYPH_LEN, not LGSTRING_LENGTH.
+
+ * xdisp.c: Include font.h.
+ (it_props): Delete the entry for Qauto_composed.
+ (init_iterator): Initialize it->cmp_it.id to -1.
+ (compute_stop_pos): Call composition_compute_stop_pos.
+ (face_before_or_after_it_pos): Adjusted for the change of struct
+ it.
+ (handle_auto_composed_prop): Delete it.
+ (handle_composition_prop): Handle only static composition.
+ (next_overlay_string): Remove it->method == GET_FROM_COMPOSITION
+ from xassert. Initialize it->cmp_it.stop_pos.
+ (push_it): Adjusted for the change of struct it.
+ (pop_it): Likewise.
+ (get_next_element): Delete next_element_from_composition.
+ (CHAR_COMPOSED_P): New macro.
+ (get_next_display_element): For automatic composition, get a face
+ from the font in the glyph-string.
+ (set_iterator_to_next): For GET_FROM_BUFFER and GET_FROM_STRING,
+ check composition by it->cmp_it.id. Delete GET_FROM_COMPOSITION
+ case.
+ (next_element_from_string): Check if the character at the current
+ position is composed by CHAR_COMPOSED_P.
+ (next_element_from_buffer): Likewise.
+ (next_element_from_composition): Adjusted for the change of struct
+ it. Update it->cmp_it.
+ (dump_glyph): Adjusted for the change of struct glyph.
+ (fill_composite_glyph_string): Adjusted for the change of struct
+ it and struct glyph. Don't handle automatic composition here.
+ (fill_gstring_glyph_string): New function.
+ (x_get_glyph_overhangs): Handle automatic composition.
+ (BUILD_COMPOSITE_GLYPH_STRING): Adjusted for the change of struct
+ glyph.
+ (BUILD_GSTRING_GLYPH_STRING): New macro.
+ (BUILD_GLYPH_STRINGS): Call BUILD_GSTRING_GLYPH_STRING for
+ automatic composition.
+ (append_composite_glyph): Adjusted for the change of struct it and
+ struct glyph.
+ (x_produce_glyphs): Adjusted for the change of struct it.
+
+ * xterm.c (x_draw_composite_glyph_string_foreground): Adjusted for
+ the change of struct glyph_string.
+ (x_draw_glyph_string): Likewise.
+
+2008-08-29 Glenn Morris <rgm@gnu.org>
+
+ * buffer.c (word-wrap): Doc fix.
+ * xdisp.c (truncate-partial-width-windows): Doc fix.
+ Increase default to 50.
+
+2008-08-29 Chong Yidong <cyd@stupidchicken.com>
+
+ * xdisp.c (update_tool_bar_unwind): New function.
+ (update_tool_bar): Temporarily set selected frame before building
+ tool-bar items.
+
+2008-08-28 Michael Albinus <michael.albinus@gmx.de>
+
+ * dbusbind.c (XD_ERROR, XD_DEBUG_MESSAGE): Use strncpy and
+ snprintf, respectively.
+ (xd_append_arg): Convert strings with Fstring_make_unibyte.
+
+2008-08-28 Chong Yidong <cyd@stupidchicken.com>
+
+ * Makefile.in: Revert (undocumented) 2008-08-20 change adding
+ LDFLAGS to GNUstep CC invocation.
+
+2008-08-27 Chong Yidong <cyd@stupidchicken.com>
+
+ * indent.c (Fvertical_motion): Revert last change. Handle the
+ general case where we are moving forward, and PT spans multiple
+ screen lines.
+
+ * eval.c (find_handler_clause): Temporarily increase
+ max-lisp-eval-depth while printing the backtrace buffer, to
+ guarantee that help-mode code can run.
+
+2008-08-27 Eli Zaretskii <eliz@gnu.org>
+
+ * msdos.c (Fmsdos_remember_default_colors): Don't reverse frame
+ colors under -rv.
+ (IT_set_frame_parameters): Don't swap foreground and background
+ colors if `(reverse . t)' is present in the frame properties.
+ (internal_terminal_init): Call init_frame_faces only for the
+ initial frame.
+
+2008-08-27 Andreas Schwab <schwab@suse.de>
+
+ * dired.c (Ffile_attributes): Avoid compiler warning in bitshift.
+
+2008-08-27 Andreas Schwab <schwab@suse.de>
+
+ * search.c (search_buffer): Set char_base to zero only at the end.
+
+2008-08-27 Kenichi Handa <handa@m17n.org>
+
+ * fileio.c (report_file_error): Fix handling of multibyte error
+ string.
+
+2008-08-27 Andreas Seltenreich <seltenreich@gmx.de>
+
+ * xterm.c (x_term_init): Temporarily hide the partially
+ initialized terminal while calling vendor-specific-keysyms.
+
+2008-08-26 Eli Zaretskii <eliz@gnu.org>
+
+ * msdos.c (internal_terminal_init): Most initializations done only
+ once, especially initial_screen_colors[] and termscript open.
+
+2008-08-26 Chong Yidong <cyd@stupidchicken.com>
+
+ * eval.c (Fcondition_case): Doc fix.
+
+ * widgetprv.h (EmacsFramePart): Change font member to the new font
+ struct.
+
+ * widget.c: Include character.h and font.h for XSETFONT.
+ (setup_frame_gcs): Compute X font id from font struct, just once.
+
+2008-08-26 Eli Zaretskii <eliz@gnu.org>
+
+ * term.c (get_named_tty): Fix last change.
+
+2008-08-26 Chong Yidong <cyd@stupidchicken.com>
+
+ * indent.c (Fvertical_motion): If moving forward starting from a
+ multi-line string, move the iterator to the last line of that
+ string.
+
+2008-08-25 Eli Zaretskii <eliz@gnu.org>
+
+ * frame.c (do_switch_frame): Mark previously displayed frame as
+ obscured for FRAME_MSDOS_P frames as well.
+
+2008-08-24 Eli Zaretskii <eliz@gnu.org>
+
+ * frame.c (make_terminal_frame): Initialize f->terminal,
+ f->terminal->reference_count, and scroll bars on MS-DOS as well.
+ Set the top frame to newly created frame.
+ (Fmake_terminal_frame): Reuse the_only_display_info.
+
+ * vm-limit.c (get_lim_data) [MSDOS]: Use alternative methods of
+ estimating available memory.
+
+2008-08-23 David Reitter <david.reitter@gmail.com>
+
+ * nsterm.m (ns_draw_window_cursor): Don't call
+ NSDisableScreenUpdates and NSEnableScreenUpdates on
+ non-NS_IMPL_COCOA systems.
+
+2008-08-23 Andreas Schwab <schwab@suse.de>
+
+ * process.c (procfs_system_process_attributes): Fix use of
+ uninitialized variables.
+
+2008-08-23 Eli Zaretskii <eliz@gnu.org>
+
+ * emacs.c (main) [MSDOS]: Call syms_of_xmenu.
+
+ * dispnew.c (init_display): Remove MS-DOS specific conditions for
+ calling tty-set-up-initial-frame-faces.
+
+ * xmenu.c (Fx_popup_dialog, Fx_popup_menu, xmenu_show): Allow
+ MSDOS frames along with X frames.
+
+ * termhooks.h (TERMINAL_ACTIVE_P): Handle output_msdos_raw in
+ addition to output_termcap.
+
+ * xdisp.c (redisplay_internal) [MSDOS]: Don't call set_tty_color_mode.
+
+ * termchar.h (FRAME_TTY): Support output_msdos_raw.
+ (struct tty_display_info) [MSDOS]: Add fields related to mouse
+ highlight.
+
+ * process.c [!subprocesses]: Define QCname.
+ (syms_of_process): Intern and staticpro it.
+
+ * w16select.c (Fw16_set_clipboard_data, Fw16_get_clipboard_data):
+ Adjust for changes in encoding/decoding routines. Use
+ encode_coding_object and decode_coding_object instead of
+ encode_coding and decode_coding.
+
+ * sysdep.c (init_sys_modes): Call dos_ttraw with tty_out as
+ argument.
+
+ * dosfns.c: Include frame.h before termhooks.h.
+ (dos_cleanup): Use CURTTY ()->termscript instead of a global
+ variable termscript.
+
+ * s/msdos.h (USER_FULL_NAME): Define.
+ (SYSTEM_PURESIZE_EXTRA): Bump up to 100K.
+
+ * editfns.c (USER_FULL_NAME): Define to pw->pw_gecos if undefined.
+ (Fuser_full_name): Use USER_FULL_NAME instead of a literal
+ pw->pw_gecos.
+
+ * keyboard.c (handle_interrupt) [MSDOS]: Call cursor_to with
+ SELECTED_FRAME as additional (1st) argument.
+ (tty_read_avail_input): Handle output_msdos_raw in
+ addition to output_termcap.
+
+ * msdos.c: Include frame.h before termhooks.h.
+ (mouse_on, mouse_off, mouse_moveto, mouse_init)
+ (msdos_set_cursor_shape, IT_set_face, IT_write_glyphs)
+ (show_mouse_face, IT_clear_end_of_line, IT_clear_screen)
+ (IT_clear_to_end, IT_cursor_to, IT_display_cursor, IT_cmgoto)
+ (IT_set_terminal_modes, IT_reset_terminal_modes)
+ (IT_set_frame_parameters): Use tty->termscript instead of a global
+ variable termscript.
+ (IT_write_glyphs): Use tty->terminal->terminal_coding instead of a
+ global variable terminal_coding. Don't refer to
+ Vnonascii_translation_table.
+ (internal_terminal_init): Set Vwindow_system in current_kboard.
+ Don't use TTY_CHAR_INS_DEL_OK. Set Vinitial_window_system.
+ Announce date and time of session start, if termscript is open.
+ Don't zero out the_only_display_info (it is done in
+ term.c:init_tty). Open termscript only of not already open. Log
+ "SCREEN SAVED" here, instead of IT_set_terminal_modes. Init mouse
+ here instead of dos_ttraw. Don't initialize display if this is an
+ initial tty. Don't set FRAME_FONT.
+ (Vwindow_system_version): Bump to 23.
+ (dos_ttraw): Accept a TTY argument; all callers fixed. If mouse
+ is available, set up mouse_position_hook.
+ (dos_ttraw, IT_set_terminal_modes): If called with initial
+ terminal, do nothing.
+ (IT_set_frame_parameters): Handle the Qtty_type frame
+ parameter by calling internal_terminal_init.
+ (dos_set_window_size, show_mouse_face)
+ (clear_mouse_face, IT_note_mode_line_highlight)
+ (IT_note_mouse_highlight, IT_update_begin, IT_frame_up_to_date)
+ (dos_rawgetc): Use tty_display_info instead of x_display_info.
+ (initialize_msdos_display): New function.
+ (IT_cursor_to, IT_clear_to_end, IT_clear_screen)
+ (IT_clear_end_of_line, IT_insert_glyphs, IT_write_glyphs)
+ (IT_delete_glyphs, IT_ring_bell, IT_reset_terminal_modes)
+ (IT_set_terminal_modes, IT_set_terminal_window, IT_update_begin):
+ Accept additional argument: a pointer to a frame. All callers
+ changed.
+ (request_sigio, unrequest_sigio): Don't define, now defined on
+ sysdep.c.
+ (IT_write_glyphs): Rewrite to use encode_terminal_code.
+
+ * term.c [MSDOS]: Include msdos.h.
+ (init_tty) [MSDOS]: Reuse most of WINDOWSNT branch. Change cpp
+ conditional to DOS_NT. Allow only one call to this function in a
+ session. Don't allocate a new struct tty_display_info; instead,
+ reuse the_only_display_info. Call get_tty_size to get screen
+ dimensions. Call init_baud_rate to set bad_rate.
+ (dissociate_if_controlling_tty) [MSDOS]: Ifdef away function body.
+ (Fsuspend_tty) [MSDOS]: Don't close input and output.
+ (Fresume_tty) [MSDOS]: Don't reopen the TTY; instead, use
+ stdin/stdout.
+ (get_tty_terminal, get_named_tty, Ftty_type)
+ (Fcontrolling_tty_p): Handle output_msdos_raw in addition to
+ output_termcap.
+ (Fresume_tty, Fsuspend_tty, init_tty, delete_tty): Call
+ add_keyboard_wait_descriptor and delete_keyboard_wait_descriptor
+ only when subprocesses are supported
+
+ * frame.c (make_terminal_frame) [MSDOS]: Adjust initialization of
+ f->output_data.x.
+ (Fmake_terminal_frame) [MSDOS]: Don't allow creation of new
+ terminal devices.
+
+ * msdos.h Remove definition of struct x_display_info and struct
+ x_output.
+ (FRAME_FONT): Use output_data.tty.
+ (FRAME_FOREGROUND_PIXEL, FRAME_BACKGROUND_PIXEL): Don't define.
+ (struct x_display_info): Renamed from display_info. All users in
+ msdos.c changed.
+ (struct x_output): Remove background_pixel and foreground_pixel.
+ (the_only_display_info): Renamed from the_only_x_display.
+ (dos_ttraw): Update prototype.
+
+ * Makefile.in (MSDOS_OBJ): Add xmenu.o.
+ (SOME_MACHINE_LISP): Add ../lisp/term/pc-win.elc.
+
+2008-08-23 Jason Rumney <jasonr@gnu.org>
+
+ * image.c (enum tiff_keyword_index, tiff_format): Add :index keyword.
+ (fn_TIFFSetDirectory): New library function used.
+ (init_tiff_functions) [HAVE_NTGUI]: Initialize it.
+ (tiff_load): Use :index to select among multiple images. Set count
+ property when multiple images exist.
+ (gif_format): Use :index, not :image.
+
+2008-08-23 Chong Yidong <cyd@stupidchicken.com>
+
+ * xdisp.c (try_scrolling): Check INT_MAX instead of
+ MOST_POSITIVE_FIXNUM for maximum integer value. Include limits.h
+ to obtain INT_MAX.
+
+2008-08-21 İsmail Dönmez <ismail@namtrac.org> (tiny change)
+
+ * xterm.c (x_delete_display): Don't call XrmDestroyDatabase on GTK+.
+
+2008-08-21 Christian Faulhammer <opfer@gentoo.org> (tiny change)
+
+ * Makefile.in (temacs${EXEEXT}): On GNUstep, link to appropriate
+ GNUstep library location.
+
+2008-08-21 Chong Yidong <cyd@stupidchicken.com>
+
+ * xfaces.c (x_update_menu_appearance): Check validity of menu font
+ before using it.
+
+ * puresize.h (BASE_PURESIZE): Increase to 1250000.
+
+2008-08-20 Adrian Robert <Adrian.B.Robert@gmail.com>
+
+ * nsfns.m (ns-read-file-name): Add casts to avoid warning.
+ (ns-convert-utf8-nfd-to-nfc): Warn if cannot execute correctly.
+ * nsfont.m (nsfont_draw): Compare indexed colors to 0, not nil.
+ * nsterm.h (EmacsView-unlockFocusNeedsFlush:): Add declaration.
+ (EmacsApp-cursor_blink_handler): Remove declaration.
+ * nsterm.m (ns_draw_glyph_string): Update first conditional body to
+ match 01 Feb 2008 changes in xterm.c.
+ (ns_read_socket): Add cast to avoid warning.
+ (EmacsApp-application:openFiles:): Don't call replyToOpenOrPrint: on
+ GNUstep.
+
2008-08-20 Chong Yidong <cyd@stupidchicken.com>
* xselect.c (x_get_foreign_selection): Return nil if desired
selection could not be obtained, instead of signalling an error.
-2008-08-20 David Reitter <david.reitter@gmail.com>
+2008-08-20 David Reitter <david.reitter@gmail.com>
- * nsfns.m (ns_lisp_to_cursor_type): Replace with generic xfns.c
+ * nsfns.m (ns_lisp_to_cursor_type): Replace with generic xfns.c.
* nsterm.m: Remove ns-specific code for cursor blinking.
(ns_draw_window_cursor): Clear cursor properly rather than
redrawing the area. Respect width of bar cursors.
(global_memory_status, global_memory_status_ex): New wrapper
functions.
(w32_list_system_processes, w32_system_process_attributes)
- (enable_privilege, restore_privilege, ltime, process_times): New
- functions.
+ (enable_privilege, restore_privilege, ltime, process_times):
+ New functions.
(convert_time_raw): New function.
(convert_time): Remove conversion of FILETIME into time in 100
nsec units, call convert_time_raw instead.
2008-08-08 Chong Yidong <cyd@stupidchicken.com>
- * xdisp.c (move_it_to): When stopping at a charpos, check if
- that's a continued multi-char glyph; if so, advance to the actual
- glyph.
+ * xdisp.c (move_it_to): When stopping at a charpos, check if that's
+ a continued multi-char glyph; if so, advance to the actual glyph.
2008-08-07 Dan Nicolaescu <dann@ics.uci.edu>
- * s/darwin.h (OTHER_FILES): Do not define here, defined in
- config.in.
+ * s/darwin.h (OTHER_FILES): Do not define here, defined in config.in.
* Makefile.in (ALL_OBJC_CFLAGS): New variable.
(.m.o): Use it.
2008-08-06 Kenichi Handa <handa@m17n.org>
- * xfont.c (xfont_list_family): Return a list of symbols, not
- strings.
+ * xfont.c (xfont_list_family): Return a list of symbols, not strings.
2008-08-06 Andreas Schwab <schwab@suse.de>