2025-12-12  Antonio Diaz Diaz  <antonio@gnu.org>

	* Version 1.16-rc1 released.
	* New option '-p, --preserve-links'.
	* basic_buffer.cc (bol): Don't return eof if p is beyond last line.
	* buffer.cc (set_rmargin): Decrease limit to 99_999_999.
	  (adjust_point): Don't decrement point if at end of block.
	* encoding.cc: The UTF-8 decoder now removes the Byte Order Mark
	  and decodes Arabic-Indic digits.
	* iso_8859.h (iscntrl): Exclude 80-9F for compatibility with UTF-8.
	  (format_hex4): New function to print hexadecimal numbers.
	* main.cc (set_signals): Ignore SIGQUIT.
	* menu_file.cc (is_regular): Tell unsupported from inaccessible file.
	* rc.cc (parse_long): Accept '_' separator. Reject trailing garbage.
	* regex.cc (match_filename): Match a '[' that does not start a set.
	  (match_regex): Don't match '$' at eof if empty last line.
	* screen.cc (user_data): Accept '_' separator in multibyte values.
	* window.cc (format_num3): New function to print decimal numbers.
	* window_vector.cc (delete_block): Move window left if block hidden.
	* Makefile.in: Don't overwrite moe.conf.

2025-01-04  Antonio Diaz Diaz  <antonio@gnu.org>

	* Version 1.15 released.
	* buffer.cc (save): Save by lines, not by bytes. (10 times faster).
	  (redo): Leave cursor at begin of changes, like undo.
	* block.cc: New function 'unmark' that does not reset block.
	* screen.h: Split 'line_buf' into 'msg_line_buf', 'status_line_buf'.
	* window_vector.cc (add_char): Move window to col 1 when wrapping.
	* screen.cc: Remove clock blinking. (Suggested by David Pierce).
	* menu_help.cc: Add one more space between cols in 'Character Set'.
	* encoding.cc: The UTF-8 decoder now converts some more characters.
	* moe.texi: New chapter 'Syntax of command-line arguments'.

2024-01-20  Antonio Diaz Diaz  <antonio@gnu.org>

	* Version 1.14 released.
	* block.cc: Enable marking for a Buffer_handle, not a Buffer.
	* regex.cc (match_filename): Do not process backslash escapes.
	* window_vector.cc (search): New option '(D)elete'.
	  (search): Change '(I)gnore_case' to '(I)case' in search prompt.
	  (read_block): Separate "File is empty" from "File not found".
	  (reformat_block): Obey auto_unmark.
	* New search sequence '\=<ch>' (equivalence class).
	* Icase (ignore case) now works for sets and equivalence classes.
	* buffer_handle.cc (add_handle): Set auto indent on executable files.
	* Move basic less emulation from add_char to maybe_add_char.
	* screen.cc (maybe_add_char): Add command 'b' to basic less emulation.
	  Make scroll keys work without Alt key in read-only buffers.
	* window.cc (update_points): Keep cursor at top, left when scrolling.
	  (show_status_line): Show '<' when there is text at left of window.
	* basic_buffer.cc (capitalize), window_vector.cc (change_case):
	  Capitalize only the first letter of each whitespace-separated word.
	* rc.cc (unwanted_name): Ignore more file name extensions.
	* encoding.cc: The UTF-8 decoder now converts some more characters.
	* configure, Makefile.in: New variable 'MAKEINFO'.

2023-02-13  Antonio Diaz Diaz  <antonio@gnu.org>

	* Version 1.13 released.
	* moerc: Rename to moe.conf. Search for it in $XDG_CONFIG_HOME.
	* screen.cc (init): Increase minimum height to 25 lines.
	  (clock_handler): Call 'localtime' only once per minute.
	* Assign short name '-W' to the option '--no-word-wrap'.
	* rc.h (Options): Initialize orphan_extra to true.
	* regex.cc (Set): Allow the first ']' to be the start of a range.
	  (match_filename): Coalesce asterisks matching empty tail.
	* basic_buffer.cc (blank): Ignore all whitespace (not only blanks).
	  (set_to_matching_delimiter): Add '«' and '»'.
	  (to_string_esc): New function to copy block faster in get_string.
	  (to_string_ws): New function to make 'decode base64' faster.
	* buffer_handle.cc (find_or_add_handle): New argument 'prev_handles'.
	* window_vector.cc (reformat_paragraph): Show feedback.
	  Collapse also no-break spaces.
	  (reformat_block): Remove whitespace from blank lines in block.
	  (search): Detect some invalid escape sequences earlier.
	  Replace by string with escape sequences is now faster.
	* iso_8859.cc (escape): Accept '\u' '\U' (universal-character-name).
	  Accept '\d' (decimal code 'ddd') like GNU sed.
	* buffer.cc (set_rmargin): Increase limit from 1000 to INT_MAX / 2.
	  Accept -1 to set rmargin to maximum value.
	* menu_opts.cc (options_menu): Show old and new value of option.
	* rc.cc (unwanted_name): Ignore more file name extensions.
	  (process_options): Add unnamed buffer for each empty file argument.
	* menu_file.cc (file_menu): Don't append duplicate '*' to basename.
	* encoding.cc: Transliterate cyrillic letters ya, yu as "ya", "yu".
	* moe.texi: Several fixes and improvements.
	  Document no octal escape sequences in the replacement string.

2022-01-20  Antonio Diaz Diaz  <antonio@gnu.org>

	* Version 1.12 released.
	* Use long instead of int for lines and columns.
	* rc.cc (parse_line_col): make a '+' alone mean end-of-buffer.
	  (Idea borrowed from GNU nano 5.8).
	  (unwanted_name): Ignore file names with extension ".exe".
	  (set_option_from_code): Use 'parsed_name' instead of 'optname'.
	* New command 'C-o b' (reformat paragraphs in block).
	* window_vector.cc (load):
	  Center the cursor the first time each handle is displayed.
	* buffer.cc (save): Save unnamed read-only buffer to another file.
	  (Buffer): Refuse reading from a terminal device.
	  (pputc): Update 'p' even if it is not in get_marks_and_pointers.
	  (undo, redo): Show feedback ("undoing...", "redoing...").
	* encoding.cc: The UTF-8 decoder now converts some more characters.
	* configure: Set variable LIBS.
	* moe.texi: Several fixes and improvements. (Reported by David Apps).

2021-01-02  Antonio Diaz Diaz  <antonio@gnu.org>

	* Version 1.11 released.
	* basic_buffer.cc (bot): Skip only blanks instead of whitespace.
	* Key 'C-a' now provides an alternative access to function keys.
	* New command 'C-q 2' (alternative to 'C-q F2').
	* New option '-2, --two-spaces'.
	* New search sequence '\T' (trailing whitespace).
	* window.cc (show_utf8_code): Show code as Uhhhh, not 0xhhhh.
	* buffer_handle.cc (show_status): Show number of buffers, not handles.
	* menu_file.cc (file_menu): Make <Tab> show 1 matching file.
	* New command 'C-s b' (toggle clock blinking). Default is off.
	* rc.cc: Recursive load now ignores some more file name extensions.
	* 'F3' shows feedback ("loading...") and may be aborted with 'C-c'.
	* window_vector.cc (close): Update status line if last handle.
	* window.cc (move_vertical): Move to the last line if beyond EOF.
	  (scroll_vertical): Scroll down until only two lines are visible.
	* buffer.cc (save): Make 'C-k w' ask before overwriting a file and
	  make it work when writing from an unnamed read-only buffer.
	* encoding.cc: The UTF-8 decoder now converts some more characters
	  (mostly Greek) and some presentation forms ('ff', 'fi', 'fl', etc).
	  Convert U1E9E 'latin capital letter sharp s (german)' to "SS".
	* buffer_handle.cc (emergency_save): Save only non-empty buffers and
	  only once even if any of them has multiple handles.
	* iso_8859.h: Rename back 'isblank_' to 'isblank'.
	* main.cc: Set a valid invocation_name even if argc == 0.
	* moe.texi: Document commands setting console in right mode for moe.

2019-01-01  Antonio Diaz Diaz  <antonio@gnu.org>

	* Version 1.10 released.
	* Change default right margin from 72 to 76.
	* New command 'C-o k' (capitalize words in block).
	* New command 'C-s p' (show line position in buffer).
	* rc.cc: Recursive load now ignores some non-text files.
	* window_vector.cc (search): Detect infinite replacement loop.
	* window_vector.cc (close_and_exit): Exit faster with many files.
	  Don't delete handles until all modified buffers have been saved.
	  Show "Read only" without asking name of unnamed read-only file.
	* encoding.cc: The UTF-8 decoder now converts some more characters.
	* menu_file.cc: Separate top_line for bufhandle_menu and file_menu.
	  (bufhandle_menu): Show menu even with only one buffer.
	  (file_menu): Put ".." always first.
	* buffer.cc (set_marks): If lines > 1000, set marks 1..9 at 10..90%.
	* configure: Accept appending to CXXFLAGS; 'CXXFLAGS+=OPTIONS'.

2017-06-02  Antonio Diaz Diaz  <antonio@gnu.org>

	* Version 1.9 released.
	* rc.cc: Load recursively all regular files in each directory passed
	  in the command line.
	* Add a new help key 'C-a'.
	* encoding.cc: The UTF-8 decoder now converts some more characters.
	* buffer_handle.h (Buffer_handle): Adjust '+line,col' for tabs.
	* set_to_matching_delimiter: Skip delimiters inside /**/ comments.
	* rc.cc (process_options): Don't use stdin more than once.
	* window_vector.cc (remove_duplicate_lines): Run 20% faster.
	  (add_char): Add command 'N' to the basic less emulation.
	* Cut long file names in messages like "File '...long_name' saved".
	* Set an 8-bit "C" locale in Cygwin to show chars > 127.
	* configure: Avoid warning on some shells when testing for g++.
	* Makefile.in: Detect the existence of install-info.

2016-01-24  Antonio Diaz Diaz  <antonio@gnu.org>

	* Version 1.8 released.
	* rc.cc (process_options): Read non-regular files at startup.
	* Fix behavior when centering a line in overwrite mode.

2015-05-04  Antonio Diaz Diaz  <antonio@gnu.org>

	* Version 1.7 released.
	* File names containing control characters are now shown correctly.
	* encoding.cc: Romanization of Cyrillic, Greek, Armenian, Georgian.
	* New command 'remove UTF-8 out of range'.
	* screen.cc: New class 'Last_key' to detect repeated commands.
	* 'encode to UTF-8' now warns before double encoding valid UTF-8.
	* Add transliteration of ISO-8859-15 text to ASCII.
	* window_vector.cc (search): Join 'replace rest' in one undo record.
	* rc.cc: '--no-read-only' now overrides automatic read-only
	  detection also when used as default file option or from moerc.
	* window_vector.cc (copyright_update): Join years in ranges.
	* window_vector.cc (search): Show feedback ("replacing...").
	* regex.cc (find): Warn of syntax errors in search/replace strings.
	* In read-only buffers '/' and 'n' search like the 'less' pager.
	* window_vector.cc (save_file): If unnamed, reject as new name
	  the names of the files already being edited.
	* buffer.cc: Block replace, undo/redo keep approximate bookmarks.
	* buffer.cc (set_marks): Reassign repeated bookmarks.
	* menu_file.cc (bufhandle_menu): Unify the range Home,F1-F10,End.
	* menu_help.cc (help_menu): New navigation keys (Home, End).
	* menu_help.cc: New 'Character Set' screens (octal, hex).
	* menu_help.cc: Show 'Character Set' screens by rows of 16 chars.
	* Makefile.in: New targets 'install*-compress'.
	* Change license to GPL version 2 or later.

2014-05-20  Antonio Diaz Diaz  <antonio@gnu.org>

	* Version 1.6 released.
	* New commands 'extend bookmarks' and 'show UTF-8 code'.
	* Add encoding of ISO-8859-15 text to UTF-8.
	* menu_file.cc (bufhandle_menu): Show '-' or '+' before DOS buffers.
	* screen.h: New function 'show_feedback' ("searching...").
	* Accept decimal, hex, and octal numbers in options and commands.
	* iso_8859.cc (escape): Accept octal sequences shorter than 3 digits.
	* iso_8859.h: New function 'isspace' also recognizes '\xA0'.
	* The UTF-8 decoder now converts more characters (mainly space
	  and punctuation), and shows the failed code if out of range.
	* Decoders now move the cursor to the first invalid character in
	  case of error.
	* Change the clock to 24 hour format.
	* configure: Options now accept a separate argument.
	* moe.texinfo: Rename to moe.texi.

2013-02-19  Antonio Diaz Diaz  <ant_diaz@teleline.es>

	* Version 1.5 released.
	* The command line now accepts a column number as in
	  'moe +line,column file_name'.
	* Assign short name '-B' to the option '--no-backup'.
	* New commands 'show little-endian multibyte value' and
	  'show big-endian multibyte value'.
	* window.cc: 'goto_line', 'goto_column', and 'goto_offset' now
	  accept values relative to the current value.
	* menu_file.cc (bufhandle_menu): New navigation keys (F1-F10).
	* Change 'show character info' key from 'C-s i' to 'A-i'.
	* The clock now shows a '.' after the minutes for PM.
	* buffer.cc (save): Remove file before saving when 'create backups'
	  is off, to avoid following links.
	* window_vector.cc (reformat): Use max( left_margin, cursor_col )
	  as left margin.
	* window_vector.cc (change_buffer_name): Reject the names of
	  files already being edited.
	* buffer_handle.cc: 'last_visited' now does not change after
	  adding or removing handles.
	* Set common limits for editor options in rc and menu.
	* moe.texinfo: New chapter 'Info commands'.
	* Change quote characters in messages as advised by GNU Standards.
	* configure: Rename 'datadir' to 'datarootdir'.
	* Makefile.in: New target 'install-bin'.

2011-01-09  Antonio Diaz Diaz  <ant_diaz@teleline.es>

	* Version 1.4 released.
	* New command 'toggle search direction'.
	* New replace sequence '\c' (capitalize).
	* screen.cc (user_control_char): Accept arbitrarily large numbers.
	* screen.cc: Accept also ASCII delete code (127) as KEY_BACKSPACE.
	* window_vector.cc (add_char): Show ignored key codes.
	  (search): Change '(I)gnore' to '(I)gnore_case' in search prompt.
	* moe.texinfo: Add warning about minimum screen size.
	* screen.h: New function 'line_buf' replaces variable size arrays.
	* Makefile.in: Add quotes to directory names.
	* Makefile.in: Add option '--name' to help2man invocation.

2009-09-02  Antonio Diaz Diaz  <ant_diaz@teleline.es>

	* Version 1.3 released.
	* New command 'goto offset'.
	* buffer_handle.cc (emergency_save): Fix a null pointer.
	* main.cc: Some more signals are now handled or ignored.

2009-07-10  Antonio Diaz Diaz  <ant_diaz@teleline.es>

	* Version 1.2 released.
	* New command 'change buffer name'.
	* Makefile.in: Man page is now installed by default.
	* Makefile.in: New variable 'LIBS'.
	* iso_8859.h: Rename 'isblank' to 'isblank_'.
	* menu_opts.cc (change): Remove 'throw()'.

2009-02-18  Antonio Diaz Diaz  <ant_diaz@teleline.es>

	* Version 1.1 released.
	* New command 'last visited'.
	* Non-readable files are ignored at startup. 'moe *' works better.
	* buffer.cc, rc.cc: Replace the non-standard function 'getline'.
	* 'make install-info' should now work on Debian and OS X.
	* Add some missing #includes.

2008-08-21  Antonio Diaz Diaz  <ant_diaz@teleline.es>

	* Version 1.0 released.
	* New options '-m, --max-windows' and '-n, --indent-step'.
	* New commands 'copyright update', 'find word', 'show character code',
	  'remove duplicate lines', 'to lowercase', and 'to uppercase'.
	* New search sequence '\+\+<ch>' (1 or more of <ch>).
	* New replace sequences '\l' and '\u'.
	* Change search sequences '\w', '\W' to '\s', '\S'.
	* Change the meaning of the search sequences '\w' and '\W'.
	* New help screen 'Character Set'.
	* Make file name tab completion ignore characters beyond cursor.
	* Tab partially completes file name when more than a name matches.
	* In read-only buffers, space advances a page.
	* New navigation keys (0-9) for 'bufhandle_menu'.
	* 'C-s i' now shows the percentage of file before the cursor.
	* CR-LF line termination can now be changed from the options menu.
	* 'bufhandle_menu' no longer shows blank lines at the bottom.
	* menu_file.cc: File names containing '@' are now shown correctly.
	* rc.cc: After 'Processing options...' first warning or error msg
	  is preceded by '\n'.
	* Class 'Bufhandle_vector' converted to namespace.
	* '--help' and '--version' are now managed by Arg_parser.
	* screen.cc: 'wait_kbhit' no longer calls 'clock_handler'.

2007-06-29  Antonio Diaz Diaz  <ant_diaz@teleline.es>

	* Version 0.9 released.
	* Update license to GPL version 3 or later.

2007-01-15  Antonio Diaz Diaz  <ant_diaz@teleline.es>

	* Version 0.8 released.
	* Add rectangular block mode.
	* Add encoding-decoding for Base64, Rot-13, and Rot-47.
	* Add decoding of Quoted-Printable text.
	* Add decoding of UTF-8 text to ISO-8859-15 and ISO-8859-1.
	* Add a new help key 'C-h'.
	* New command 'C-q s' (show global status).
	* Show modified status for each buffer in buffers menu.
	* 'F2' no longer saves a read-only file.
	* 'C-q F2' now shows the number of buffers saved.
	* Change 'goto_matching_delimiter' keys to 'A-f' and 'A-g'.
	* 'goto_matching_delimiter' seeks harder the starting delimiter.
	* Status line now shows the end of long file names.
	* New search sequence '\W'.
	* Make 'configure' and 'Makefile.in' more GNU-standards compliant.

2006-04-03  Antonio Diaz Diaz  <ant_diaz@teleline.es>

	* Version 0.7 released.
	* Add a menu of 'buffer_handles'.
	* moe.texinfo: New chapter 'Basic concepts'.
	* Integrate new argument parser from ocrad (Arg_parser).
	* Add a buffer around 'getch' to speed up pastes.
	* New function 'out_raw_string' shows @-sequences correctly.
	* Improve efficiency of 'append_record' for consecutive overwrites.
	* Improve efficiency of replaces, especially consecutive ones.
	* 'reformat paragraph' may now be interrupted with 'C-c'.
	* 'F2' and 'F3' now serve as their own abort keys.
	* Space also selects item in menus.

2006-01-28  Antonio Diaz Diaz  <ant_diaz@teleline.es>

	* Version 0.6 released.
	* Fix a memory leak when undoing and then not redoing.
	* Fix behavior when replacing an empty string with nothing.
	* Fix behavior when copying tabs to search or replace strings.
	* End of block is now updated when replacing text inside block.
	* 'append_record' merges atoms if possible (more memory efficient).
	* Add 'after' pointer to Record for better cursor behavior.
	* Infinite loop in search-replace may now be interrupted with 'C-c'.
	* New command 'show version'.
	* 'F3' no longer opens a new window for a file already loaded.
	* 'goto_matching_delimiter' seeks harder the starting delimiter.

2005-10-10  Antonio Diaz Diaz  <ant_diaz@teleline.es>

	* Version 0.5 released.
	* Non-regular files are ignored at startup. 'moe *' now works.
	* Buffer name is not set when saving if file can't be created.
	* Fix some small bugs.
	* moe.texinfo: New chapter 'Other features'.

2005-09-16  Antonio Diaz Diaz  <ant_diaz@teleline.es>

	* Version 0.4 released.
	* Add some missing #includes.
	* New commands 'save all named buffers' and
	  'copy block to search/replace history'.

2005-09-01  Antonio Diaz Diaz  <ant_diaz@teleline.es>

	* Version 0.3 released.


Copyright (C) 2005-2025 Antonio Diaz Diaz.

This file is a collection of facts, and thus it is not copyrightable, but just
in case, you have unlimited permission to copy, distribute, and modify it.
