*** empty log message ***
[bpt/emacs.git] / src / ChangeLog
index ca8cb29..91bdb1b 100644 (file)
@@ -1,5 +1,485 @@
+2000-05-01  Kenichi Handa  <handa@etl.go.jp>
+
+       * fontset.c (fs_load_font): By default, use 0x00..0x7f for ASCII.
+       Check Vfont_encoding_alist against the full name of the opened
+       font.
+
+2000-04-28  Gerd Moellmann  <gerd@gnu.org>
+
+       * xdisp.c (make_cursor_line_fully_visible): Handle case of rows
+       taller than the window.
+
+2000-04-28  Kenichi Handa  <handa@etl.go.jp>
+
+       * xfaces.c (realize_x_face): Fix the argument of the second
+       xassert.  BASE_FACE may not be a face for ASCII.
+
+2000-04-27  Gerd Moellmann  <gerd@gnu.org>
+
+       * print.c (print_object): Treat print-length < 0 as nil.
+
+       * Makefile.in (termcapobj): Don't use TERMCAP_OBJ.
+
+       * s/freebsd.h (TERMCAP_OBJ): Removed.
+       (LIBS_TERMCAP): Don't define for __FreeBSD_version >= 400000.
+
+       * lread.c (read1): Don't treat period followed by certain
+       characters as symbol start.
+
+       * xfns.c (slurp_file): New function.
+       (xbm_image_p): Handle case of in-memory XBM files.
+       (xbm_scan): Rewritten to work on memory buffers instead of files.
+       (xbm_read_bitmap_data): Renamed from xbm_read_bitmap_file_data.
+       Work on memory buffers instead of files.  If DATA is null test
+       if buffer looks like an in-memory XBM file.
+       (xbm_load_image): Renamed from xbm_load_image_file.  Work on
+       memory buffers instead of files.
+       (xbm_file_p): New function.
+       (xbm_load): Accept :data DATA where DATA is an in-memory XBM file.
+
+       * lread.c (end_of_file_error): New function.
+       (read1): Call it instead of signaling `end-of-file' directly.
+
+       * print.c (print_error_message): Print data of `end-of-file' 
+       with Fprinc instead of Fprin1.
+
+2000-04-26  Ken Raeburn  <raeburn@gnu.org>
+
+       * window.c (freeze_window_start): Check that minibuffer scroll
+       window isn't nil before extracting the window structure pointer
+       from it.
+
+       * undo.c (record_delete): If we hit the end of the undo list, stop
+       picking elements apart.
+
+2000-04-26  Gerd Moellmann  <gerd@gnu.org>
+
+       * xdisp.c (display_line): If lines are continued, restore
+       iterator's ascent/descent information to the values before the
+       first glyph not fitting on the line.
+
+2000-04-25  Gerd Moellmann  <gerd@gnu.org>
+
+       * xdisp.c (try_window_id) <all changes above window start>: Adjust
+       positions in glyph matrix.  Don't compute new window end
+       positions.
+
+       * dispnew.c (increment_matrix_positions): Renamed from
+       increment_glyph_matrix_buffer_positions.
+       (increment_row_positions): Renamed from
+       increment_glyph_row_buffer_positions.
+
+       * dispextern.h: Change names of renamed functions from dispnew.c
+       in prototypes.
+
+2000-04-24  Gerd Moellmann  <gerd@gnu.org>
+
+       * fileio.c (Fdo_auto_save): Create directories for auto-save
+       list file if necessary.
+
+       * xdisp.c (init_iterator): Set iterator's extra_line_spacing
+       from buffer or frame.
+       (automatic_hscrolling_p): New variable.
+       (hscroll_windows): Scroll windows horizontally only if automatic
+       hscrolling is allowed.
+       (syms_of_xdisp): New variable `automatic-hscrolling'.
+
+       * frame.h (struct frame): Add member extra_line_spacing.
+
+       * xfns.c (x_set_line_spacing): New function.
+       (Fx_create_frame): Set line spacing from resources.
+       (Qline_spacing): New variable.
+       (syms_of_xfns): Initialize Qline_spacing.
+       
+       * emacs.c (USAGE2): Add `--line-spacing' and `-lsp'.
+
+       * buffer.c (init_buffer_once): Handle extra_line_spacing.
+       (syms_of_buffer): Add `default-line-spacing' and `line-spacing'.
+       (reset_buffer): Don't initialize extra2 and extra3.  Initialize
+       extra_line_spacing from default value.
+       (init_buffer_once): Initialize default value of extra_line_spacing.
+
+       * buffer.h (struct buffer): Add extra_line_spacing, remove extra2
+       and extra3.
+
+       * xterm.c (x_produce_glyphs): Remove reference to struct it's
+       prompt_width.  Add extra line spacing.
+
+       * term.c (produce_glyphs): Remove reference to struct it's
+       prompt_width.
+
+       * dispextern.h (struct it): Remove member prompt_width, add
+       extra_line_spacing.
+
+2000-04-22  Gerd Moellmann  <gerd@gnu.org>
+
+       * dispnew.c (update_frame_line): When writing a whole line, make
+       sure cursor is in the right row afterwards, otherwise a use of
+       capability `ch' in cmgoto might leave the cursor in the row below.
+
+2000-04-21  Gerd Moellmann  <gerd@gnu.org>
+
+       * lisp.h (struct Lisp_Buffer_Cons): Remove.
+
+       * keyboard.c (timer_check): Fix typo in comment.
+
+2000-04-21  Kenichi Handa  <handa@etl.go.jp>
+
+       * fontset.c (Fset_fontset_font): Fix docstring.  Local variable
+       name change: ch -> character.
+
+2000-04-20  Gerd Moellmann  <gerd@gnu.org>
+
+       * keyboard.c (echo_message_buffer): New variable.
+       (echo_now): Set echo_message_buffer to the echo area buffer used
+       to display the echo.
+       (cancel_echoing): Reset echo_message_buffer to nil.
+       (read_char): Code rewritten that handles canceling an echo or
+       echoing a dash, respectively.
+
+       * fileio.c (Ffile_writable_p) [WINDOWSNT]: Return nil if parent
+       directory doesn't exist.
+
+2000-04-19  Dave Love  <fx@gnu.org>
+
+       * fns.c (syms_of_fns): Defsubr mapc.
+       (concat): Don't allow numeric args.
+       (Fconcat): Doc change.
+
+2000-04-19  Stefan Monnier  <monnier@cs.yale.edu>
+
+       * regex.c (re_match_2_internal): Don't shorten the strings anymore,
+       instead define end_match(1|2) more carefully.
+       Use GET_CHAR_BEFORE_2 for `begline'.
+
+2000-04-19  Gerd Moellmann  <gerd@gnu.org>
+
+       * frame.h (SELECTED_FRAME): Change definition to compile cleanly
+       on 64-bit systems where NULL is defined as `0'.
+
+       * xdisp.c (with_echo_area_buffer): Add more `int' parameters for
+       the `variable argument list' to make it work on Alpha.
+
+       * m/alpha.h (_LP64) [!_LP64]: Define.
+       (ORDINARY_LINK): Define for NetBSD.
+
+       * m/macppc.h (ORDINARY_LINK): Define for NetBSD.
+       
+2000-04-19  Dave Love  <fx@gnu.org>
+
+       * s/bsd386.h, s/freebsd.h, s/gnu.h, s/netbsd.h: Revert 2000-04-14
+       change.
+
+       * Makefile.in (LIBS): Don't use.
+       (GETLOADAVG_OBJ): Define again.
+       (otherobj): Add GETLOADAVG_OBJ.
+
+       * buffer.c (Fmake_indirect_buffer): Escape newline in doc.
+
+2000-04-18  Gerd Moellmann  <gerd@gnu.org>
+
+       * lread.c (read_filtered_event): Cancel and start busy cursor.
+
+       * xterm.c (x_produce_glyphs) <ASCII chars>: Take into account 
+       that the per-character metrics may be null.
+
+2000-04-17  Gerd Moellmann  <gerd@gnu.org>
+
+       * buffer.c (clone_per_buffer_values): New function.
+       (Fmake_indirect_buffer): Add optional argument CLONE.  Call
+       clone_per_buffer_values if CLONE is not nil.
+
+       * xfaces.c (Ftty_suppress_bold_inverse_default_colors): Doc fix.
+
+2000-04-16  Dave Love  <fx@gnu.org>
+
+       * Makefile.in: Remove obsolete localcpp stuff.
+       (GETLOADAVG_OBJ): Don't define.
+       (obj): Move LIBOBJS...
+       (otherobj): ... to here.
+       (MSDOS_OBJ): Convert to make variable -- preprocessing zapped
+       whitespace-only lines after the continuation (Irix).
+
+2000-04-14  Gerd Moellmann  <gerd@gnu.org>
+
+       * xfns.c (xpm_load) [DEBUG_X_COLORS]: Register colors.
+
+       * s/freebsd.h (LD_SWITCH_SYSTEM): Add `-L /usr/local/lib'.
+
+2000-04-14  Dave Love  <fx@gnu.org>
+
+       * s/aix3-1.h, s/bsd4-2.h, s/bsd4-3.h, s/cxux.h, s/dgux.h, s/gnu.h:
+       * s/hpux.h, s/iris3-5.h, s/iris3-6.h, s/irix3-3.h, s/rtu.h:
+       * s/unipl5-0.h, s/unipl5-2.h, s/usg5-0.h, s/usg5-2-2.h, s/usg5-2.h:
+       * s/usg5-3.h, s/xenix.h, s/umax.h: Don't define autoconfiscated
+       NLIST_STRUCT.
+
+       * s/bsd386.h, s/freebsd.h, s/gnu.h, s/netbsd.h: Don't define
+       autoconfiscated HAVE_GETLOADAVG.
+
+       * s/nextstep.h, s/sco4.h, s/sco5.h: Don't define autoconfiscated
+       BROKEN_MKTIME.
+
+2000-04-14  Gerd Moellmann  <gerd@gnu.org>
+
+       * filelock.c (MAKE_LOCK_NAME): Allocate 2 more bytes.
+       (fill_in_lock_file_name): Avoid existing files that aren't
+       links.
+
+2000-04-14  Dave Love  <fx@gnu.org>
+
+       * Makefile.in (LIBS, LIBOBJS): New variable.
+       (INTERVAL_SRC): Convert to make variable.
+       (INTERVAL_OBJ, MKTIME_OBJ, FLOAT_SUPPORT, FACE_SUPPORT)
+       (HAVE_X_WINDOWS, OBJECTS_SYSTEM): Remove.
+       (obj): Substitute INTERVAL_OBJ, add MKTIME_OBJ, GETLOADAVG_OBJ and
+       add LIBOBJS.
+       (SOME_MACHINE_OBJECTS): Remove interval stuff.
+       (lisp): Substitute FACE_SUPPORT, FLOAT_SUP.
+       (shortlisp): Add facemenu, float-sup, frame.
+       (SOME_MACHINE_LISP): Remove them from here.
+       (LIBES): Change unused LDLIBS to autoconf LIBS.
+
+       * config.in: Add BROKEN_MKTIME, NLIST_STRUCT, NLIST_NAME_UNION.
+
+2000-04-14  Kenichi Handa  <handa@etl.go.jp>
+
+       * composite.c (update_compositions): If FROM and TO are not in a
+       valid range, do nothing.
+
+2000-04-13  Gerd Moellmann  <gerd@gnu.org>
+
+       * tparam.c (tparam1): Abort when encountering an unknown
+       `%'-specifier.
+
+       * s/freebsd.h (TERMCAP_OBJ) [__FreeBSD__ >= 4]: Define as
+       terminfo.o.
+
+       * Makefile.in (termcapobj) [LIBS_TERMCAP && TERMCAP_OBJ]: Define
+       as TERMCAP_OBJ.
+
+2000-04-13  Eli Zaretskii  <eliz@is.elta.co.il>
+
+       * fileio.c (a_write): Remove redundant semi-colons.
+       (e_write): Return -1 if failed to write all the data.
+       This fixes the changes made at 1999-12-15.
+
+2000-04-12  Dave Love  <fx@gnu.org>
+
+       * fns.c (mapcar1): Test for null vals to support mapc.
+       (Fmapc): New function.
+
+2000-04-12  Eli Zaretskii  <eliz@is.elta.co.il>
+
+       * msdos.c (NUM_MOUSE_BUTTONS): Define.
+       (IT_frame_up_to_date): Support the buffer local value of
+       cursor-type, if defined.
+
+2000-04-10  Dave Love  <fx@gnu.org>
+
+       * editfns.c (preceding-char, following-char): Doc fix.
+
+2000-04-10  Ken Raeburn  <raeburn@gnu.org>
+
+       * Makefile.in (temacs): Revert 2000-03-12 change.
+
+2000-04-10  Jason Rumney  <jasonr@gnu.org>
+
+       * xfaces.c (realize_face): Change FRAME_X_P to FRAME_WINDOW_P.
+
+2000-04-10  Gerd Moellmann  <gerd@gnu.org>
+
+       * xdisp.c (setup_echo_area_for_printing): Choose an echo
+       area buffer, if it's not set up yet.
+
+       * indent.c (compute_motion): Set immediate_quit.
+
+2000-04-09  Gerd Moellmann  <gerd@gnu.org>
+
+       * xfaces.c (tty_suppress_bold_inverse_default_colors_p): New
+       variable.
+       (realize_tty_face): Suppress boldness if colors are the inverse of
+       the default colors, and tty_suppress_bold_inverse_default_colors_p
+       is set.
+       (Ftty_suppress_bold_inverse_default_colors): New function.
+       (syms_of_xfaces): Defsubr it.
+
+       * buffer.c (Frestore_buffer_modified_p): New function.
+       (syms_of_buffer): Defsubr it.
+
+2000-04-08  Ken Raeburn  <raeburn@gnu.org>
+
+       * charset.c (Fmake_char_internal): CHAR_COMPONENTS_VALID_P takes a
+       charset id (int) argument, not a charset (Lisp_Object).
+
+       * coding.h (code_convert_string): Declare.
+       * coding.c (code_convert_string_norecord): Pass an int, not a lisp
+       object, as the fourth argument to code_convert_string.
+
+       * fontset.c (make_fontset_for_ascii_face): Use XINT on return
+       value.
+       (Fset_fontset_font): Use EQ to compare lisp objects.
+
+2000-04-05  Ken Raeburn  <raeburn@gnu.org>
+
+       * intervals.h (SET_INTERVAL_PARENT): Use INT_LISPLIKE to test for
+       a pointer that looks like a lisp object.
+       (SET_INTERVAL_OBJECT): Don't explicitly compare the object with
+       zero, instead see whether it's an integer object, since they can't
+       have intervals.
+       (GET_INTERVAL_OBJECT): Simply assign to the destination.
+
+       * dispnew.c (allocate_matrices_for_frame_redisplay,
+       direct_output_forward_char): Use X(U)INT and make_number as needed
+       to convert between (unsigned) int values and lisp integers.
+       * keyboard.c (read_key_sequence): Likewise.
+       * lread.c (substitute_object_recurse): Likewise.
+       * fns.c (concat, hash_lookup, hash_remove): Likewise.
+       * minibuf.c (do_completion, Fminibuffer_complete_word,
+       Fminibuffer_completion_help): Likewise.
+       * term.c (produce_special_glyphs): Likewise.
+
+       * fileio.c (Fwrite_region): Use EQ when comparing lisp objects.
+       * print.c (print_preprocess, print_object): Likewise.
+
+       * search.c (compile_pattern): Use NILP when checking for nil.
+
+       * lisp.h (make_number) [!NO_UNION_TYPE && __GNUC__ >= 2 &&
+       __OPTIMIZE__]: Provide a GNU C macro version that handles
+       lisp-object unions.
+       (XSET) [!NO_UNION_TYPE]: Set the value field first, then the type
+       field, to better cope with ENABLE_CHECKING and calls that modify a
+       Lisp_Object using its old value.
+
+2000-04-04  Gerd Moellmann  <gerd@gnu.org>
+
+       * window.c (compare_window_configurations): Signal an error
+       if parameters C1 or C2 aren't window configurations.
+
+       * bytecode.c (Fbyte_code): Add a bunch of BEFORE_POTENTIAL_GC/
+       AFTER_POTENTIAL_GC calls around calls to functions that can
+       signal an error and thus invoke the debugger.
+
+2000-04-03  Gerd Moellmann  <gerd@gnu.org>
+
+       * fns.c (Fbase64_decode_region, Fbase64_decode_string): Signal
+       an error if decoding fails.
+
+       * keyboard.c (lispy_mouse_names): Variable removed.
+       (Vlispy_mouse_stem): New variable.
+       (syms_of_keyboard): Initialize Vlispy_mouse_stem.
+       (make_lispy_event) <mouse_click, scroll_bar_click>: Don't abort
+       for any mouse button number.  Increase size of mouse_syms and
+       button_down_location as needed.  Call modify_event_symbol with
+       different arguments.
+       (make_lispy_event) <scroll_bar_click> [USE_TOOLKIT_SCROLL_BARS]:
+       Call modify_event_symbol with different arguments.
+       (make_lispy_event) <w32_scroll_bar_click> [WINDOWSNT]: Don't abort
+       for any button number.  Call modify_event_symbol with different
+       arguments.
+       (modify_event_symbol): Rename NAME_ALIST to NAME_ALIST_OR_STEM.
+       Accept a string for NAME_ALIST_OR_STEM.
+
+       * lisp.h (larger_vector): Add prototype.
+
+       * fns.c (larger_vector): Make externally visible.
+
+       * termhooks.h (NUM_MOUSE_BUTTONS): Removed.
+
+2000-04-02  Stefan Monnier  <monnier@cs.yale.edu>
+
+       * regex.c (PTR_TO_OFFSET) [!emacs]: Remove.
+       (RE_MULTIBYTE_P, RE_STRING_CHAR_AND_LENGTH): New macros.
+       (GET_CHAR_BEFORE_2): Moved from charset.h plus fixed minor bug when
+       we are between str1 and str2.
+       (MAX_MULTIBYTE_LENGTH, CHAR_STRING) [!emacs]: Provide trivial default.
+       (PATFETCH): Use `TRANSLATE'.
+       (PATFETCH_RAW): Fetch multibyte char if applicable.
+       (PATUNFETCH): Remove.
+       (regex_compile): Rely on PATFETCH to do most of the multibyte magic.
+       When writing a char, write it directly into the pattern buffer rather
+       than going needlessly through a temp char-array.
+       (re_match_2_internal): Similarly, rely on RE_STRING_CHAR to do the
+       multibyte magic and remove the useless `#ifdef emacs'.
+       (bcmp_translate): Don't compare as multibyte chars when in a unibyte
+       buffer.
+
+       * regex.h (struct re_pattern_buffer): Make field `multibyte'
+       conditional on `emacs'.
+
+       * charset.h (GET_CHAR_BEFORE_2): Moved to regex.c.
+
+2000-04-01  Ken Raeburn  <raeburn@gnu.org>
+
+       * alloc.c (MARK_STRING, UNMARK_STRING, STRING_MARKED_P): Expand
+       non-union-type versions of XMARK and friends here, because XMARK
+       and friends won't work on an integer field if NO_UNION_TYPE is not
+       defined.
+       (make_number): Define as a function if it's not defined as a
+       macro.
+
+       * composite.c (run_composite_function): Use NILP when checking for
+       nil.
+       (syms_of_composite): Delete local var NARGS, pass an int as first
+       argument to Fmake_hash_table.
+
+       * editfns.c (text_property_stickiness): Use NILP to test
+       Lisp_Object boolean value.
+       (Fmessage_or_box): Don't use NILP to test int variable.
+       (Fformat): Use a temporary variable to avoid ENABLE_CHECKING
+       problems reading from and changing the same lisp value in an
+       XSETSTRING call.
+
 2000-04-01  Gerd Moellmann  <gerd@gnu.org>
 
+       * term.c (TN_no_color_video): New variable.
+       (term_init): Intitialize TN_no_color_video.
+       (enum no_color_bit): New enumeration.
+       (MAY_USE_WITH_COLORS_P): New macro.
+       (turn_on_face): Use it to determine if attributes may be used
+       combined with colors.
+
+2000-04-01  Ken Raeburn  <raeburn@gnu.org>
+
+       * window.c (CURBEG, CURSIZE): Don't overload lisp object lvalues
+       with int lvalues via casts; instead, just yield lisp object
+       lvalues.
+       (enlarge_window): Variable sizep now points to Lisp_Object.  Use
+       proper accessor macros.
+       (shrink_window_lowest_first): w->top is Lisp_Object; use XINT.
+       (grow_mini_window): Fix typo getting int value of root->height.
+
+       * xdisp.c (compute_string_pos): Fix order of arguments to
+       string_pos_nchars_ahead.
+       (handle_fontified_prop, add_to_log): Pass int, not Lisp_Object, as
+       count arg to variable-arg routines like Frun_hook_with_args and
+       Fformat.
+       (back_to_previous_visible_line_start)
+       (build_desired_tool_bar_string): Pass Lisp_Object, not int, to
+       fixed-arg routines like Fget_char_property and Fmake_string.
+       (reconsider_clip_changes): Use XINT when comparing integer lisp
+       objects, or passing them as int arguments.
+       (mark_window_display_accurate, insert_left_trunc_glyphs)
+       (append_space, extend_face_to_end_of_line): Use make_number when
+       storing or passing integer values as lisp objects.
+       (set_cursor_from_row, highlight_trailing_whitespace): Use
+       INTEGERP, not implicit test against zero, for glyph object.
+       (try_window_id): Don't use make_number when we want an int value.
+
+       * xfaces.c (xlfd_symbolic_value): Make last argument a
+       Lisp_Object, to be consistent with callers.
+       (Fbitmap_spec_p): Use XINT to get numeric value of height.
+       (lface_hash): Apply XFASTINT to lisp values before folding in.
+
+       * xfns.c (Fx_show_tip): Use make_number to get lisp objects to
+       fill in window width and height.  Pass an int, not a lisp object,
+       as first arg to Finsert.
+
+2000-04-01  Gerd Moellmann  <gerd@gnu.org>
+
+       * xfaces.c (realize_basic_faces): Block input while realizing
+       the faces.
+
        * keyboard.c (lispy_mouse_names): Add additional mouse names.
 
        * termhooks.h (NUM_MOUSE_BUTTONS): Increase to 15.
@@ -7,7 +487,7 @@
 2000-03-31  Gerd Moellmann  <gerd@gnu.org>
 
        * xterm.c (x_produce_glyphs): When displaying unibyte text
-       or ASCII, handle case that per-char metric is NULL.
+       or ASCII, handle case that per-char metric is null.
 
 2000-03-30  Ken Raeburn  <raeburn@gnu.org>