Stefan Monnier [Fri, 10 Mar 2000 01:17:04 +0000 (01:17 +0000)]
(easy-mmode-define-keymap): Extend to allow more flexibility.
(easy-mmode-set-keymap-parents, easy-mmode-define-syntax): New functions.
(easy-mmode-defmap, easy-mmode-defsyntax, easy-mmode-define-derived-mode):
New macros.
Dave Love [Thu, 9 Mar 2000 23:02:51 +0000 (23:02 +0000)]
(fortran-comment-line-start): Define as
"C".
(fortran-comment-line-start-skip): Don't match cpp stuff.
(font-lock-keywords): Add * to comment-chars. Grok cpp stuff.
(fortran-mode-map): Remove over-eager custom-menu-create for now.
(fortran-mode): Don't set fortran-comment-line-start-skip,
fortran-comment-line-start here. Set comment-start,
add-log-current-defun.
(fortran-fill-paragraph): Adjust to try to DTRT with cpp stuff.
(fortran-current-defun): New function.
Stefan Monnier [Thu, 9 Mar 2000 00:45:15 +0000 (00:45 +0000)]
Update copyright and leading comment.
(regexp-opt): Update comment and adapt the code the new meaning of the
`paren' argument of regex-opt-group for shy-groups.
(regexp-opt-depth): Handle shy groups as well as backslashed backslashes.
(regexp-opt-group): Turn the leading comment into a docstring.
Allow `paren' to be a string (the string to use to open a group).
Remove open-presuf and close-presuf.
Instead of checking for `all one-char' and then later on check for
`several one-char', handle both cases close together.
Also apply a more generic algorithm for suffixes (the mirror image
of the algorithm used for prefixes).
Use shy-groups.
\Use nreverse rather than reverse.
(regexp-opt-try-suffix): Removed.
Stefan Monnier [Wed, 8 Mar 2000 23:55:36 +0000 (23:55 +0000)]
(inferior-scheme-mode-map): Define it independently
from comint-mode-map, so we can just inherit from it. Also, move the
initialization into the `defvar' since there's no docstring anyway
and it's fairly short.
(inferior-scheme-mode): Define it as derived-mode: the code is shorter
and this way we inherit from comint-mode-map rather than copying it.
Stefan Monnier [Wed, 8 Mar 2000 23:25:41 +0000 (23:25 +0000)]
This is a big redesign of failure-stack and register handling, prompted
by bugs revealed when trying to add shy-groups. Overall, what happened
is that loops are now structured a little differently, groups can be
shy and the code is a little simpler.
(enum re_opcode_t): Remove jump_past_alt, maybe_pop_jump,
push_dummy_failure and dumy_failure_jump.
Add on_failure_jump_(exclusive, loop and smart).
Also fix the comment for (start|stop)_memory since they now only take
one argument (the second has becomes unnecessary).
(print_partial_compiled_pattern): Adjust for changes in re_opcode_t.
(print_compiled_pattern): Use %ld to printf long ints and flush to make
debugging a little easier.
(union fail_stack_elt): Make the integer unsigned.
(struct fail_stack_type): Add a `frame' element.
(INIT_FAIL_STACK): Init `frame' as well.
(POP_PATTERN_OP): New macro for re_compile_fastmap.
(DEBUG_PUSH, DEBUG_POP): Remove.
(NUM_REG_ITEMS): Remove.
(NUM_NONREG_ITEMS): Adjust.
(FAILURE_PAT, FAILURE_STR, NEXT_FAILURE_HANDLE, TOP_FAILURE_HANDLE):
New macros for the cycle detection.
(ENSURE_FAIL_STACK): New macro for PUSH_FAILURE_(REG|POINT).
(PUSH_FAILURE_REG, POP_FAILURE_REG, CHECK_INFINITE_LOOP): New macros.
(PUSH_FAILURE_POINT): Don't push registers any more.
The pattern address pushed is not the destination of the jump
but the source of it instead.
(NUM_FAILURE_ITEMS): Remove.
(POP_FAILURE_POINT): Adapt to the new stack structure (i.e. pop
registers before the actual failure point).
Don't hardcode any meaning for str==NULL anymore.
(union register_info_type, REG_MATCH_NULL_STRING_P, IS_ACTIVE)
(MATCHED_SOMETHING, EVER_MATCHED_SOMETHING, SET_REGS_MATCHED): Remove.
(REG_UNSET_VALUE): Use NULL (why not?).
(compile_range): Remove declaration since it doesn't exist.
(struct compile_stack_elt_t): Remove inner_group_offset.
(old_reg(start|end), reg_info, reg_dummy, reg_info_dummy): Remove.
(regex_grow_registers): Remove dead code.
(FIXUP_ALT_JUMP): New macro.
(regex_compile): Add shy-groups
Change loops to use on_failure_jump_smart&jump instead of
on_failure_jump&maybe_pop_jump.
Change + loops to eliminate the initial (dummy_failure_)jump.
Remove c1_base (looks like unused variable to me).
Use `jump' instead of `jump_past_alt' and don't bother with
push_dummy_failure in alternatives since it is now unnecessary.
Use FIXUP_ALT_JUMP.
Eliminate a useless `#ifdef emacs' for (re)allocating the stack.
(re_compile_fastmap): Remove dead variables i and num_regs.
Exit from loop when bufp->can_be_null rather than jumping to `done'.
Avoid jumping backwards so as to ensure termination.
Use PATTERN_STACK_EMPTY and POP_PATTERN_OP.
Improved handling of backreferences.
Remove dead code in handling of `anychar'.
(skip_noops, mutually_exclusive_p): New functions taken from the
handling of `maybe_pop_jump' in re_match_2_internal.
Slightly improve mutually_exclusive_p to handle ".+\n".
((lowest|highest)_active_reg, NO_(LOWEST|HIGHEST)_ACTIVE_REG)
Remove.
(re_match_2_internal): Use %p instead of 0x%x when printf'ing ptrs.
Don't SET_REGS_MATCHED anymore. Remove many dead variables.
Push register (in `start_memory') on the stack rather than storing it
in old_reg(start|end).
Remove the cycle detection from `stop_memory', replaced by the use
of on_failure_jump_loop for greedy loops.
Add code for the new on_failure_jump_<foo>.
Remove ad-hoc code in `on_failure_jump' to push more registers
in the case of a loop.
Take out code from `maybe_pop_jump' into separate functions and
adapt it to the semantics of `on_failure_jump_smart'.
Remove jump_past_alt, dummy_failure_jump and push_dummy_failure.
Remove dummy_failure handling and handling of `failures to jump
to on_failure_jump' (this last one was already dead code, it seems).
((group|alt|common_op)_match_null_string_p): Remove.
Gerd Moellmann [Tue, 7 Mar 2000 12:33:39 +0000 (12:33 +0000)]
(mail-send-nonascii): Add a new value 'mime and use
it as the default.
(mail-send): Test mail-send-nonascii also for the new 'mime value.
(sendmail-send-it): Conditionaly add MIME headers specifying the
used character set.
Kenichi Handa [Tue, 7 Mar 2000 06:17:54 +0000 (06:17 +0000)]
Add comments on coding-category-utf-8,
coding-category-utf-16-be, and coding-category-utf-16-le.
(coding_category_name): Include "coding-category-utf-8",
"coding-category-utf-16-be", and "coding-category-utf-16-le".
(UTF_8_1_OCTET_P) (UTF_8_EXTRA_OCTET_P) (UTF_8_2_OCTET_LEADING_P)
(UTF_8_3_OCTET_LEADING_P) (UTF_8_4_OCTET_LEADING_P)
(UTF_8_5_OCTET_LEADING_P) (UTF_8_6_OCTET_LEADING_P): New macros.
(detect_coding_utf_8): New function.
(UTF_16_INVALID_P) (TF_16_HIGH_SURROGATE_P)
(UTF_16_LOW_SURROGATE_P): New macros.
(detect_coding_utf_16): New function.
(detect_coding_mask): Fix bug of returning wrong mask bits in the
case that detect_coding_XXX returns a mask not set in
priorities[i].
(detect_eol_type_in_2_octet_form): New function.
(detect_eol): If cooding->category_idx is for UTF-16, call
detect_eol_type_in_2_octet_form instead of dectect_eol_type.
(detect_coding_system): Don't include `nil' coding-system in the
result.
(Fupdate_coding_systems_internal): Update all coding-categories.
Kenichi Handa [Tue, 7 Mar 2000 06:17:10 +0000 (06:17 +0000)]
(CODING_CATEGORY_IDX_UTF_8)
(CODING_CATEGORY_IDX_UTF_16_BE)
(CODING_CATEGORY_IDX_UTF_16_LE): New macros
(CODING_CATEGORY_IDX_RAW_TEXT) (CODING_CATEGORY_IDX_BINARY)
(CODING_CATEGORY_IDX_MAX): Re-numbered.
(CODING_CATEGORY_MASK_UTF_8) (CODING_CATEGORY_MASK_UTF_16_BE)
(CODING_CATEGORY_MASK_UTF_16_LE): New macros.
(CODING_CATEGORY_MASK_ANY): Include them.
(CODING_CATEGORY_MASK_UTF_16_BE_LE): New macro.
Kenichi Handa [Tue, 7 Mar 2000 06:16:30 +0000 (06:16 +0000)]
(coding-category-utf-8,
coding-category-utf-16-be, coding-category-utf-16-le): New coding
categories. Include them in the argument for set-coding-priority.
Kenichi Handa [Tue, 7 Mar 2000 06:16:04 +0000 (06:16 +0000)]
(reset-language-environment): Include
coding-category-utf-8, coding-category-utf-16-be, and
coding-category-utf-16-le in the argument for set-coding-priority.
(reset-language-environment): Initialize coding-category-utf-8,
coding-category-utf-16-be, and coding-category-utf-16-le to nil.
Kenichi Handa [Tue, 7 Mar 2000 06:15:36 +0000 (06:15 +0000)]
Modify comment about coding system
property `coding-category'.
(make-coding-system): New argument EOL-TYPE. Pay attention to
coding-category property of PROPERTIES.
Gerd Moellmann [Mon, 6 Mar 2000 12:46:50 +0000 (12:46 +0000)]
(bookmark-file-or-variation-thereof): New func, for
code abstracted out of `bookmark-jump-noselect'. Now tries info
extensions as well as compression extensions.
(bookmark-jump-noselect): Use above new func.
Gerd Moellmann [Sun, 5 Mar 2000 14:31:04 +0000 (14:31 +0000)]
(lw_modify_all_widgets): Return non-zero if widget
tree was changed.
(merge_widget_value): Add parameter CHANGE_P. Set *CHANGE_P
to 1 if a change occurs.
Gerd Moellmann [Sat, 4 Mar 2000 16:02:15 +0000 (16:02 +0000)]
(x_defined_color, x_set_mouse_color, lookup_rgb_color)
(lookup_pixel_color, x_laplace, x_build_heuristic_mask)
(png_load): Access colormap of frame using FRAME_X_COLORMAP.
(x_decode_color): Don't handle allocation of white and black
specially.
(x_window) [USE_X_TOOLKIT]: Set XtNvisual, XtNdepth, and
XtNcolormap resources.
(x_window) [!USE_X_TOOLKIT]: Pass colormap to XCreateWindow.
(Fx_create_frame): Initialize color members of x_output structure.
(xpm_load): Pass colormap to XPM lib.
Gerd Moellmann [Sat, 4 Mar 2000 16:00:03 +0000 (16:00 +0000)]
(x_term_init): Set Colormap member of x_display_info
structure. Copy colormap if resource `privateColormap' is
specified (PseudoColor only).
(x_setup_relief_color): Access colormap of frame using
FRAME_X_COLORMAP.
Jason Rumney [Sat, 4 Mar 2000 14:56:00 +0000 (14:56 +0000)]
Change many FRAME_X... macros to FRAME_WINDOW... or other
non-platform-specific equivalents.
[WINDOWSNT]: include w32term.h, fontset.h and define X specific
functions and macros as their w32 equivalents where
non-platform-specifics are not available.
[HAVE_X_WINDOWS]: Change most of these to HAVE_WINDOW_SYSTEM.
(x_create_gc, x_free_gc) [WINDOWSNT]: Add W32 versions.
(clear_font_table) [WINDOWSNT]: Call w32_unload_font.
(frame_update_line_height): Use macros to access f->output_data.
(defined_color): Remove FIXME comments; fixed.
(x_face_list_fonts, prepare_face_for_display): Put X specifics into
#ifdef blocks. Add WINDOWSNT blocks.
(Fx_list_fonts): Use macros for accessing font data.
(set_lface_from_font_name): Different default fonts for X and WINDOWSNT.
(font_scalable_p) [WINDOWSNT]: Treat wildcard XLFD_AVGWIDTH as
scalable for backward compatibility.
(realize_tty_face) [MSDOS]: do the same for WINDOWSNT.
(syms_of_xfaces) [WINDOWSNT]: Allow scalable fonts by default.
Gerd Moellmann [Fri, 3 Mar 2000 13:49:32 +0000 (13:49 +0000)]
(PER_CHAR_METRIC): Removed.
(x_per_char_metric_1, x_default_char): New functions.
(x_per_char_metric): If font's default char is invalid, return
metrics of a suitably chosen usable default char.
(x_draw_glyph_string_foreground): If font has an invalid default
char, replace occurrences of that char with a suitably chosen
usable default char.