+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.