- add WRAP_AUTO and WRAP_TERM (for terminal emulator)
WRAP_AUTO wraps lines if the window is more than 3/4 of the screen width
if window is narrower, lines are truncated.
WRAP_TERM does not display the \ wrapping mark to simulate terminal behavior
- add default_wrap member in ModeDef structure
- delegate to view pane for man, ssh and compile commands
- int eb_insert_uchars(EditBuffer *b, int offset, int c, int n);
- int eb_replace_uchar(EditBuffer *b, int offset, int c);
- inline eb_insert_spaces() using eb_insert_uchars() instead
- add minp(), maxp() and clampp() with side effect on first argument
- publish ucs2 and ucs4 charsets
- add various utilities for color escape sequence testing:
tests/16colors.pl
tests/256colors2.pl
tests/color-spaces.pl
tests/truecolors.sh
tests/xterm-colortest.sh
tests/xterm-colour-chart.py
- use colored code-points only for syntax highlighting
- use QETermStyle and QEStyleDef internally
- convert to TTYChar attributes only for text terminal output.
- remove most CHAR_MASK and STYLE_SHIFT handling
- pass QETermStyle array to get_colorized_line mode handlers
- pass QETermStyle array to isearch_colorize_matches
- remove combine_static_colorized_line
- move color matching functions to util.c
- rename get_tty_color as qe_map_color
- improve local variable naming consistency:
DisplayState *ds, QEStyleDef *stp, QEStyleDef styledef.
- remove `eb_nextc_style()`
- `eb_nextc()` does not modify `b->cur_style`
- add `eb_get_style()` to retrieve style for given offset in full-style buffers
- add `eb_next()` and `eb_prev()` to skip chars
- pass `offset` to `eb_get_line()` and `generic_get_colorized_line()`...
- use `eb_skip_chars()` in `do_delete_char()` and `text_write_char()`
- replaced `eb_get_strline()` with `eb_fgets()` with similar semantics
except return value is number of bytes before the newline or end of line
- no longer pass end offset to `isearch_colorize_matches()`
- just pass number of code points to `combine_static_colorized_line()`
- no longer call `isearch_colorize_matches` from `generic_get_colorized_line`
* always regsister callbacks on s->top and s->top_offset
* handle saved_data generically, remove window callback
this will be replaced with view history mecanism.
* pass state and state_only as members of QEColorizeContext
* simplify ColorizeFunc, make them more consistent
* use offsets instead of pointers to prepare for further API changes
* combine static buffer styles with full line highlight.
* fix list_toggle_selection for read-only buffers and non byte based charsets
* pass direction flag to list_toggle_selection for bufed-backward-unmark
* add bufed-unmark-backward on DEL
* bufed-next-line and bufed-previous-line on n, C-n, p and C-p
* add set-auto-mode() to (re)select best mode for buffer
* add set-next-mode() on M-m to cycle appropriate buffer modes
* add set-previous-mode()
* add default_mode and saved_mode in buffers to improve mode switching
* add dired mode probing and store st_mode in buffer to detect directories
* add charset, eol_type and buffer in ModeProbeData
* clean mode selection and window buffer attachment (needs more work)
* compute sorted list of appropriate modes in probe_mode
* convert charset and eol_type in mode_probe
* add signatures in buffer priv_data to perform save casts
* move BufedState to b->priv_data, protect mode specific functions
add bufed_mode_probe function, cycling through modes comes back to bufed mode
* move DiredState to b->priv_data, protect mode specific functions
add dired_mode_probe function, cycling through modes comes back to dired mode
* add heading line in dired buffer with directory spec
* protect shell-mode specific functions.
* restart shell in shell() command if exited
* some cosmetics changes (remove useless __unused__, missing messages ...)
* mode initializers should call text-mode-init to register ccallback
for s->offset and s->top_offset, and other generic stuff.
* this is error prone, should simplify this with base_mode property and
keep unmapped windows lingering to get rid of ModeSavedData handlers
- renamed get_colorized_line() to generic_get_colorized_line
- added get_non_colorized_line() for uncolored modes
- renamed EditState::get_colorized_line_func to get_colorized_line
make this function pointer always non NULL
fixed bug in global-set-key: current bindings could not be overloaded
better tty charset detection and handling:
- always use utf8 when output is not a tty
- allow override with -c CHARSET command line option
- added state variable show-unicode to display non latin1 as \uXXXX
- added command line argument -c CHARSET (--ttycharset) to specify the
charset of the tty. tty charset is reported in *messages* buffer at startup
- display unsupported glyphs as half-width or full-width question mark pairs
improved tty output: use kill_end_of_line escape sequence
changed API for GetColorizedLineFunc: offset passed by address,
updated to start of next line
added check_readonly(EditState *s)
added tentative code for unregistring bindings, cycling modes and charsets
experiment alternate method for region highlighting:
added EditState.region_style and EditState.curline_style
added QEmacsState.hilite_region
added DisplayState.style
added clear_color to reset style bits in unicode array
display_char_bidir takes style from DisplayState, code point is bare.
fixed problem in text_display where line_num was not computed in shell mode
handle region coloring in text_display (tentative)
display line numbers and hex dump offsets as QE_STYLE_COMMENT
display hex dump as QE_STYLE_FUNCTION
renamed css_strtolower -> qe_strtolower
use offsetof for SAVED_DATA_SIZE macro (this stuff must go)
cosmetics in css_get_enum
remarks
fixed text-mode colorization bug: because of saved_data stuff,
must reset colorization function after mode restore. This saved data
stuff is bogus and should be rewritten
smaller version of roman numeral converter
fixed alpha converter
smaller implementation of css_counter_str
fixed list_mode name: no longer generates extra mode completion entry
renamed canonize to canonicalize
added crude support for ~user -> /home/user
added win32 specific stuff in basename
added C-/ as an alias for C-_
some cosmetics, moved code
create files with mode 0644 in raw_save_buffer
untabified, removed redundant spaces
modified code generators to the same effect
improved command parsing, refined argval handling, pass as optional arg
pass command arguments as an array of unions
use correct type in command dispatcher (upto 2 arguments)
merged do_goto_byte, do_goto_line, do_goto_char, extend syntax
fixed kill commands: kills are appended/prepended to kill buffer
added append_next_kill command
added do_kill_line (split from do_kill_region)
added do_kill_word (removed do_delete_word)
added do_kill_paragraph
pass argval to do_backspace and do_delete_char, fix kill behaviour
fixed kill-ring initial state bug
fixed do_yank: set mark and this_cmd_func
fixed do_yank_pop: test last_cmd_func, use eb_delete instead of do_undo
fixed do_yank_pop kill-ring bug
added clamp(int x, int min, int max);
added qs->this_cmd_func so commands can override qs->last_cmd_func
allow KEY_ESC + extended key as command binding
added do_c_forward_block, needs rewrite using colorization code
added do_c_kill_block
added insert-char command (argval repeats instead of forcing char value)
renamed delete-word to kill-word
renamed backward-delete-word to backward-kill-word
added kill-beginning-of-line
utf8_encode now returns the number of characters copied,
simplified code accordingly
made local functions static
tagged unused function arguments
fixed shadowing issues
added support for GCC attributes for unused arguments and format strings
use snprintf() instead of sprintf()
moved scattered declarations to qe.h
removed duplicate declarations in header files
eb_write() payload argument is now const
fixed crash bug: reset trace_buffer upon deletion
improved trace_buffer readability: trace all pseudo tty streams separately
added missing structure initializers
removed buffered string handling from cutils.h
added new buffered string API for statically allocated buffers (should unify)
small improvements in X11 initialization
improved consistency in tty.c (function names...)
added STDIN and STDOUT streams in QEditScreen to stop using stdin and stdout
use unlocked stream I/O if available (faster)
changed and documented terminal setup and exit sequences
improved charset handling
mode_line functions now return the character count (like snprintf)