2020-11-05  Reuben Thomas  <rrt@sc3d.org>

	version 2.4.15
	* NEWS: Record release date.

	configure.ac: bump version to 2.4.15

	tests/Makefile.am: revert LISP_TEST_OUTPUTS paths
	Use explicit $(srcdir) as before, to fix make distcheck.

	Makefile.am: distribute missing build-aux/asan-suppressions.txt

	tests/Makefile.am: add some missing %D%/ prefixes to relative paths

	NEWS: add items since 2.4.14

	.gitignore: add README-release

2020-11-03  Reuben Thomas  <rrt@sc3d.org>

	configure.ac: remove some obsolete warnings and hardening options

2020-11-03  Reuben Thomas  <rrt@sc3d.org>

	Tests: move most of the tests to parallel test harness
	This speeds up testing and gives more useful output.

	Keep the Emacs tests and tests needing a fixed screen size on the old system
	for now.

2020-10-19  Reuben Thomas  <rrt@sc3d.org>

	src/line.c: only need to call get_variable, not get_variable_bp

2020-10-16  Reuben Thomas  <rrt@sc3d.org>

	configure.ac: require autoconf 2.64 (thanks, bootstrap)

	Update bootstrap and configure it to fetch old-enough gnulib

	gl-mod/bootstrap: update to latest bootstrap

2020-10-15  Reuben Thomas  <rrt@sc3d.org>

	.gitignore: remove unused file release-notes

	.gitignore: remove defunct file README-release (it’s now HACKING)

2020-10-14  Reuben Thomas  <rrt@sc3d.org>

	bootstrap.conf: remove unused chown module

2020-10-13  Reuben Thomas  <rrt@sc3d.org>

	bind.c: simplify walk_bindings slightly

	minibuf.c: simplify minibuf_vread_completion ()
	The `test` callback parameter always had the same value,
	`minibuf_test_in_completions`, so fold the callback into
	`minibuf_vread_completion` and eliminate the argument.

	build-aux/mkvars.pl: remove redundant code and bump copyright year

	Remove trivial generation of tbl_vars.h from tbl_vars.h.in

2020-10-12  Reuben Thomas  <rrt@sc3d.org>

	eval.c, main.h: minor fix & simplification left from previous commit

2020-10-11  Reuben Thomas  <rrt@sc3d.org>

	Remove `is_uniarg' argument from Lisp calling convention
	Instead, signal that `uniarg' should be used by passing `NULL' as `arglist'.
	Hence, strictly use `leNIL' in all other cases.

	Remove remaining incorrect uses of leNIL and leT

	Make Functions return bool, as they never need to return any other result
	This removes most of the uses of Lisp values.

2020-10-10  Reuben Thomas  <rrt@sc3d.org>

	file.c: fix potential crash in create_backup_filename
	If we can’t canonicalize the backup directory path, just use the normal
	“concatenate ~ to the filename” method.

	estr.h: remove prototype for defunct const_estr_new

2020-10-09  Reuben Thomas  <rrt@sc3d.org>

	main.c: update scheme of gnu.org URL to https

	window.c: use a gender-neutral pronoun

	src/buffer.c: use gender-neutral pronoun

2020-10-08  Reuben Thomas  <rrt@sc3d.org>

	buffer.c: remove unused #include of memrmem.h

	funcs.c: in mark(), check return code of mark subroutine as Lisp value, not bool

	funcs.c: correspondingly remove a superfluous space!

	funcs.c: add a missing space (no change to meaning of code)

	lisp.c: read_token: remove an unreachable return statement

2020-10-07  Reuben Thomas  <rrt@sc3d.org>

	extern.h: move get_region_size () prototype to be with other Region functions

	file.c: slight simplification of write_buffer ()

	file.c: make exist_file static

	search.c: properly fix handling of `ok' in query-replace
	The variable had at some previous time been a bool (presumably when the code
	was in a normal C function) and was not properly converted to Lisp values.

	query-replace: don't print number of replacements on error

2020-10-06  Reuben Thomas  <rrt@sc3d.org>

	killring.c: uniarg parameter of kill_text should be long, not int

	bind.c: fix the type of a variable

	build-aux/mkbindings.pl: replace accidental use of 'say' with 'print'

	bind.c: simplify search_node slightly

2020-10-05  Reuben Thomas  <rrt@sc3d.org>

	Make uniarg long everywhere
	It was int in a few places.

	eval.c: fix execute-extended-command returning false(!) instead of leNIL
	This could have caused a crash in evaluateBranch.

	eval.c: correct the return type of get_function_interactive
	It shouldn’t really be bool, as it can return -1 (as well as true).

	main.h: remove redundant check in INT_OR_UNIARG_INIT

	src/extern.h: fix a parameter name

	Fix a test comment

2020-10-04  Reuben Thomas  <rrt@sc3d.org>

	variables.c: simplify set_variable slightly

	Remove some texinfo markup overlooked in the previous commits

	Fix bugs introduced by previous commit

2020-10-04  Reuben Thomas  <rrt@sc3d.org>

	Improve key bindings text and code generation
	Have a Perl hash of bindings in tbl_bindings.pl. Use this to generate
	tbl_bindings.h, which is #included in bind.c.

	Update some docstrings to match Emacs 27.1.

	Remove texinfo markup from docstrings.

	Add ability to expand a function name to its (first) keybinding in
	docstrings.

2020-10-03  Reuben Thomas  <rrt@sc3d.org>

	keycode.c: simplify strtokey

	src/Makefile.am: fix an incorrect variable reference

	macro.c: remove unused #includes

2020-10-03  Reuben Thomas  <rrt@sc3d.org>

	macro.c: simplify Macro type and make it private to macro.c
	Named macros were removed in 2011, so no need for `name` and `next` fields
	of the Macro struct; instead, `Macro` can just be an alias for `gl_list_t`.

	Note that keystrtovec still returns a gl_list_t, so cannot use the name
	`Macro` there.

2020-10-03  Reuben Thomas  <rrt@sc3d.org>

	bootstrap.conf: add bootstrap submodule
	Simplify the instructions for building from git accordingly.

2020-09-28  Reuben Thomas  <rrt@sc3d.org>

	Use ASAN instead of Valgrind for memory checks
	Much faster! (About 17s rather than over 2 minutes.)

2020-09-27  Reuben Thomas  <rrt@sc3d.org>

	tests: make Emacs tests optional (`make check-emacs`) (fix #49378)
	Since Zile is not being actively developed, the tests won’t be kept up to
	date with new versions of Emacs. Instead, record which is the last version
	that works in tests/Makefile.am.

	README: fix some confusion in the description of build deps

2020-08-09  Reuben Thomas  <rrt@sc3d.org>

	src/term_curses.c: ensure term.h matches [n]curses[w].h (fix #58880)
	Thanks to Jeffrey Walton for the bug report!

2019-01-08  Reuben Thomas  <rrt@sc3d.org>

	Minor updates to build system to cope with recent gnulib

	gnulib: update

2018-06-01  Reuben Thomas  <rrt@sc3d.org>

	README: add instructions for checking out git submodules
	Remove instructions for using CVS to check out the source, as that won’t
	work with git submodules (since you need git for those).

	Update bootstrap, and call gnulib library libgnu again

2018-03-28  Reuben Thomas  <rrt@sc3d.org>

	tbl_opts.h was not listed in BUILT_SOURCES (or any SOURCES)

2018-02-11  Reuben Thomas  <rrt@sc3d.org>

	file.c: remove redundant mode argument to open

2018-02-08  Reuben Thomas  <rrt@sc3d.org>

	Use AC_PATH_PROG instead of AX_WITH_PROG

2018-01-30  Reuben Thomas  <rrt@sc3d.org>

	Remove COPYING, supplied by bootstrap

2018-01-15  Reuben Thomas  <rrt@sc3d.org>

	Merge branch 'branch-2.4'

	bootstrap.conf: use https URLs for build deps

2017-10-06  Reuben Thomas  <rrt@sc3d.org>

	configure.ac: bump version to 2.4.14

	Makefile.am: fix pushing of tag in dorelease target (escape $)

	maint: post-release administrivia
	* NEWS: Add header line for next release.
	* .prev-version: Record previous version.
	* cfg.mk (old_NEWS_hash): Auto-update.

	version 2.4.14
	* NEWS: Record release date.

	Add NEWS for 2.4.14

	Makefile.am: Commit version tag as part of dorelease target

	Use gnulib's valgrind-tests module

2017-10-05  Reuben Thomas  <rrt@sc3d.org>

	Update gnulib

	Fix compiler warning over const-ness by adding cast
	This is safe, the string will never be modified.

2016-10-18  Reuben Thomas  <rrt@sc3d.org>

	Remove implication in HACKING that you have to do something extra to post the release announcement

	maint: post-release administrivia
	* NEWS: Add header line for next release.
	* .prev-version: Record previous version.
	* cfg.mk (old_NEWS_hash): Auto-update.

	version 2.4.13
	* NEWS: Record release date.

2016-10-17  Reuben Thomas  <rrt@sc3d.org>

	Add NEWS for 2.4.13

	Bump version to 2.4.13

	Document correct location of dotzile.sample (thanks, Lio Novelli)

	Bump some copyright years

	maint: post-release administrivia
	* NEWS: Add header line for next release.
	* .prev-version: Record previous version.
	* cfg.mk (old_NEWS_hash): Auto-update.

	version 2.4.12
	* NEWS: Record release date.

	Fix tests/shell-command-on-region.el for Emacs 24

	Add NEWS for 2.4.12

	Bump version to 2.4.12

	Remove no-longer-supported transient-mark-mode variable

2015-02-15  Gary V. Vaughan  <gary@gnu.org>

	maint: sync bootstrap with upstream.
	* gl/build-aux/bootstrap.in, gl/build-aux/extract-trace,
	gl/build-aux/functlib.sh, gl/build-aux/inline-source,
	gl/bulid-aux/options-parser: Sync rom upstream.
	* bootstrap: Regenerate.

2015-02-15  Gary V. Vaughan  <gary@gnu.org>

	Merge branch 'branch-2.4'

	Conflicts:
		.gitignore
		.prev-version
		Makefile.am
		NEWS
		build-aux/.gitignore
		cfg.mk
		configure.ac
		gl/top/README-release.diff
		gnulib
		m4/.gitignore
		src/.gitignore
		src/Makefile.am
		src/astr.c
		src/astr.h
		src/basic.c
		src/bind.c
		src/buffer.c
		src/buffer.h
		src/completion.c
		src/completion.h
		src/editfns.c
		src/estr.c
		src/estr.h
		src/eval.c
		src/extern.h
		src/file.c
		src/funcs.c
		src/getkey.c
		src/help.c
		src/history.c
		src/keycode.c
		src/killring.c
		src/line.c
		src/lisp.c
		src/lists.c
		src/lists.h
		src/macro.c
		src/main.c
		src/main.h
		src/marker.c
		src/marker.h
		src/minibuf.c
		src/redisplay.c
		src/registers.c
		src/search.c
		src/term_minibuf.c
		src/term_redisplay.c
		src/undo.c
		src/variables.c
		src/window.c
		src/window.h

2014-08-02  Gary V. Vaughan  <gary@gnu.org>

	slingshot: sync with upstream for upload and moonscript support.
	* slingshot: Sync with upstream.
	* .travis.yml: Manually merge improvements from slingshot.
	* bootstrap: Update from slingshot.
	* bootstrap.conf (slingshot_files): Delete removed
	ax_compare_version.m4.
	* m4/ax_compare_version.m4: New checked in copy, because Zile
	configury uses it to check that installed Emacs is new enough.
	* .gitignore: Update.

	specs: revert accidental removal of Array_spec.yaml.
	* lib/zile/specs/Array_spec.yaml: Reinstate from 996e6e0.

	maint: fix parallel make again.
	Make -j3 now works again.
	* local.mk (doc/.ldocs): Don't depend on $(srcdir)/doc, creation
	of which is already handled by this rule anyway.
	* THANKS: Add Stefan Hussman.
	Reported by Stefan Hussman

	maint: remove trailing whitespace.
	* lib/zemacs/specs/spec_helper.lua: Remove trailing whitespace.

2014-07-17  Gary V. Vaughan  <gary@gnu.org>

	maint: add a waffle.io badge to README.md.
	* README.md: Add a waffle.io badge.

2014-06-21  Reuben Thomas  <rrt@sc3d.org>

	Makefile.am: remove defunct freecode woger release type

2014-05-26  Gary V. Vaughan  <gary@gnu.org>

	specs: fix posix.spawn usage.
	* lib/zemacs/specs/spec_helper.lua (edit): Allow for spawn to be
	imported from the posix table, or from the new posix.sys table.

	zile: fix posix.euidaccess usage.
	* lib/zile/file.lua (checkwriteable): Allow for euidaccess to be
	imported from the posix table, or from the new posix.sys table.

	zile: compatibility with introduction of posix.sys.
	* lib/zile/getkey.lua (getkey): Allow for timeradd and timercmp
	to be imported from the posix table (luaposix < 32) or from
	the new posix.sys table (luaposix >= 32).

2014-05-21  Gary V. Vaughan  <gary@gnu.org>

	slingshot: sync with upstream.
	* slingshot: Sync with upsteram for grep GNUism fix.
	* bootstrap.conf (buildreq): Don't set a git version number, or
	else `GIT=true ./bootstrap` doesn't work!

2014-05-18  Gary V. Vaughan  <gary@gnu.org>

	syntax: use zile.Array for color attribute stacks.
	* lib/zile/syntax.lua (state.colors, state.highlight): Use
	zile.Array instead of general lib.stacks here, because we dealing
	entirely with integers.

	fixup

	MutableString: rename set_len method to realloc.
	* lib/zile/MutableString.lua (set_len): Rename from this...
	(realloc): ...to this, for consistency with alien.buffer and
	zile.Array.
	Adjust all callers.

	Array: add a set method.
	* lib/zile/specs/Array_spec.yaml (set): Specify a new method to
	set a contiguous block of elements to a given value.
	* lib/zile/Array.lua (set): Implementation to meet specs.

	Array: ensure cloning existing arrays works correctly.
	* lib/zile/specs/Array_spec.yaml (__call): Redo the specifications
	to ensure cloning an existing array copies elements correctly.
	Use a more `alien.array` like API for instantiating new arrays.
	(realloc): Add missing specifications.
	* lib/zile/Array.lua (_init): Implement new API to meet new
	specifications. Use lib.argcheck to check argument types.
	(copy, setzero): New private helper functions.
	(setlen): Rename from this...
	(realloc): ...to this, for consistency with alien.array APIs.
	Manage array.used field from here.  Use lib.argcheck.
	(push): Simplify. Use lib.argscheck.
	(pop, __index, __newindex): Simplify.
	(__tostring): New function. Return a string that will recreate the
	array if passed to Lua load().

	lib: Add Lua API for argument checking.
	* lib/zile/lib.lua (argerror): New function. Equivalent to
	luaL_argerror.
	(argcheck): New function. Equivalent to luaL_argcheck.
	(argcheck): New function. This is where the heavy lifting
	happens, and mismatches between expected and actual argument
	types are found and diagnosed.
	(iscallable, recase, stack): Add LDocs.
	* build-aux/config.ld.in (file): Add lib.lua.
	* local.mk (dist_modules_DATA): Add generated zile.lib.html.

	configury: fix a typo in local.mk.
	* local.mk (doc/.ldocs): Move misplaced close paren to the
	correct position.

2014-05-16  Gary V. Vaughan  <gary@gnu.org>

	Array: new class module.
	* lib/zile/spec/Array_spec.yaml: New file. Specify behaviour of
	a new Array class module.
	* lib/zile/specs/specs.mk (specl_SPECS): Add it.
	* lib/zile/Array.lua: New file. Object based alien arrays.
	* lib/zile/zile.mk (dist_pkgdata_DATA): Add it.
	* build-aux/config.ld.in (file): Add lib/zile/Array.lua.
	* local.mk (dist_classes_DATA): Add generated Array LDocs.

	MutableString: fix byte length calculation in remove method.
	* lib/zile/MutableString.lua (remove): When removing a chunk, we
	shift down the bytes between the end of the removed chunk and the
	end of the buffer; most definitely not the same number of bytes
	we happen to be overwriting!

	MutableString: fix missing object method reference.
	* lib/zile/MutableString.lua (_functions): Add missing reference
	to remove method.

	lib: encapsulate zile/lib module functions properly.
	* lib/zile/lib.lua (iscallable, recase, stack): Declare local.
	(stack.new, stack:push, stack:pop, stack:top): Move definitions
	into stack table.
	Return exported function table.
	Adjust all callers.

	symbol: tostring returns symbol name, not value.
	Previously, printing symbol lists for debugging purposes was
	peculiarly unhelpful, just to save a little code when evaluating
	a symbol from ZLisp.  We don't use the evaluation short-cut any
	more, so let's print the symbol name from tostring so that
	symbol lists work as expected.
	* lib/zile/Symbol.lua (display_variable_value): Remove.
	(metatable.__tostring): Return symbol name.

2014-05-15  Gary V. Vaughan  <gary@gnu.org>

	zlisp: propagate error messages back up the call stack.
	* lib/zemacs/specs/zlisp_lisp_spec.yaml (eval-expression):
	Specify behaviour when called interactively with any input type.
	(eval-buffer): Specify errors that are caught.
	* lib/zemacs/callbacks.lua (get_and_run_command): Display error
	messages that precolate up to here.
	* lib/zemacs/eval.lua (execute_function): Return early with
	diagnostics when called with a void or invalid function name.
	Otherwise, be sure to propagote any error from subroutines.
	(call_command): Propagate any error from execute_function.
	(eval_command): Propagate any error from call_command.
	(eval_string): Return early with diagnostics for evaluating a
	void variable.
	Propagate any error from eval_command.
	* lib/zemacs/zlisp/lisp.zl (execute-extended-command): Propagate
	any error from execute_function above.
	(eval-expression): Remove FIXME. Transform boolean return values
	correctly for display by caller.
	* lib/zemacs/main.lua (main): Display reason for lisp file load
	failure.
	* lib/zemacs/zlisp/move.zl (backward-char, forward-char): Always
	return `nil`, like Emacs.

	specs: add a checklist, apply it to zlisp_move_spec.yaml.
	* lib/zemacs/specs/README: New file.  A checklist of what needs
	to be specified for each ZLisp built-in command.
	* lib/zemacs/specs/zlisp_move_spec.yaml (beginning-of-line)
	(end-of-line, backward-char, forward-char): Adjust specifications
	to satisfy checklist.

	specs: fix a comment typo.
	* lib/zemacs/specs/zlisp_move_spec.yaml (forward-line): Fix
	comment to refer to forward-line correctly.

	zlisp: return correct value from `goto-char`.
	* lib/zemacs/specs/zlisp_move_spec.yaml (goto-char): Specify
	return values.
	* lib/zile/buffer.lua (goto_offset): Return actual position
	moved to.  This is not what Emacs does, but is more useful as a
	Zile API this way.
	* lib/zemacs/zlisp/move.zl (goto-char): Ignore goto_offset
	return value, and simply return the value of the position
	parameter as Emacs does.

	zlisp: make 't => true and 'nil => false mapping explicit.
	* lib/zemacs/eval.lua (marshaller): Insert false into Lua
	argument list when evaluation returns 'nil.
	Return Lua subr call result unmolested.
	(call_command, eval_string, execute_function): Name the result
	holding variable `value` rather than `ok` so as not to hint that
	it is a boolean.
	* lib/zemacs/zlisp/minibuf.zl (message): Convert Lua internal
	values (false, true, Symbol table) back to Zlisp write syntax
	representation ('nil, 't, symbol name) before display.
	* lib/zemacs/specs/zlisp_lisp_spec.yaml (progn): Remove pending
	call from newly passing examples.

2014-05-13  Gary V. Vaughan  <gary@gnu.org>

	zlisp: add implementation of `progn` special form.
	* lib/zemacs/specs/zlisp_lisp_spec.yaml (progn): Specify correct
	behaviour.
	* lib/zemacs/zlisp/lisp.zl (progn): Implementation to satisfy
	specifications.

2014-05-12  Gary V. Vaughan  <gary@gnu.org>

	syntax: support embedding one language grammar in another.
	Proof of concept, which provides an excellent environment for
	editing Specl spec-files - yaml structure with Lua examples.
	* lib/zile/bundle.lua (compile_pattern): Done strip include
	string here.
	* lib/zile/syntax.lua (leftmost_match): Add repo parameter.
	(parse): Adjust accordingly.
	(leftmost_match): If include names another grammar, switch to
	that grammar's repo and patterns before recursing, otherwise
	strip leading '#' and look up in the current repo as before.
	* lib/zile/grammar/yaml-bundle.lua (lua): Adjust to use the
	`source.lua` grammar for highlighting embedded lua examples.

	grammar: reorder rules for better YAML rendering.
	* lib/zile/grammar/yaml-bundle.lua (invalid_trailing_whitespace):
	Match only trailing spaces and tabs; new-lines are fine!
	(comment): Match comments first.
	(unquoted_block): Allow multiple words in an entity tag.
	Make flow style character optional, and add a capture scope.
	(unquoted_string): Allow multiple words in an entity tag.
	* lib/zz/default-color-bundle.lua: Adjust colors accordingly.

2014-05-11  Gary V. Vaughan  <gary@gnu.org>

	grammar: move all YAML patterns into YAML repository.
	* lib/zile/grammar/yaml-bundle.lua: Instead of verbatim pattern
	matching rules, move everything into the repository, and include
	from there.
	(unquoted_block): Allow nesting of blocks by also including all
	pattern matching rules again.

	syntax: convert TextMate YAML grammar.
	* lib/zile/grammar/yaml-bundle.lua: New grammar, mostly converted
	from TextMate YAML grammar.
	* lib/zz/default-color-bundle.lua: Add some additional colors for
	the YAML grammar.

	zemacs: new `query-replace-regexp' function.
	* lib/zemacs/zlisp/search.zl (do_query_replace): New function,
	factored out of query-replace.
	(query-replace): Simplify accordingly.  Improve docstring.
	(query-replace-regexp): Same as `query-replace', but search
	string is treated as a regular expression.
	* lib/zz/commands/search.lua (do_query_replace, query_replace,
	query_replace_regexp): Keep feature parity in Zz too.
	* NEWS: Update.

	grammars: include recent lua grammar patches from TextMate.
	* lib/zile/grammar/lua-bundle.lua: Apply upstream improvements;
	mostly to fix comment blocks following only whitespace.
	* lib/zz/default-color-bundle.lua (support.function.library)
	(support.function.any-method, variable.language)
	(variable.parameter): New color styles for new scopes.

	syntax: push matched pattern begin color before subexpressions.
	* lib/zile/syntax.lua (parse): push the initial color for the
	full pattern match before subexpressions, because the first
	capture offset can be later in the character stream than the
	containing expression match.

	syntax: fix a crash when dereferencing unmatched captures.
	* lib/zile/syntax.lua (expand): skip expansions of unmatched
	captures.

	syntax: don't preclude single character captures.
	* lib/zile/syntax.lua (parse): Fix an off-by-one error When
	eliding zero length matches from onig that was preventing single
	character captures from being colored.

2014-05-10  Gary V. Vaughan  <gary@gnu.org>

	syntax: don't abort execution for unloadable grammar.
	* lib/zile/bundle.lua (load_grammar): Use pcall, in case a
	syntax error prevents loading correctly.

	zz: fix undefined call of table.clone.
	* lib/zz/commands/buffer.lua: Store std.table.clone in localvar.
	(write_buffers_list): Call clone directly.

	zz: restore sandbox function labelling for undo, killring etc.
	The maintenance of runtime labels that functions such as undo use
	to determine whether they are being called consecutively was
	accidentally removed with c908ad8.
	This changeset restores the missing functionality, so undo and
	other functions that rely on it work properly again.
	* lib/zz/eval.lua (labelfn): New function, return a wrapper
	function that when called manages labels correctly.
	(Defun): Ensure new symbol value and __call metatable entries
	call the label managing wrapper function.

2014-05-09  Gary V. Vaughan  <gary@gnu.org>

	syntax: support multi-line syntax matches.
	* lib/zile/syntax.c (state.init): Store the initial state for the
	parser in the first line of the file when first called.
	(state.new): Copy the stored parser state for this line into the
	new state table.
	(metatable.store): After highlighting, save the current state to
	the next line in the buffer so that we can pick up highlighting
	from there without re-parsing the entire file.
	* NEWS: Update.

	syntax: only recalculate edited line and onwards.
	Keep track of the currently edited line, and only recalculate
	highlighting for that line and those following.
	* lib/zile/buffer.lua (replace_estr): Mark newly edited line as
	dirty.
	* lib/zile/syntax.lua (state.new): Bump dirty.  Store bp and lnum.
	(metadata.get_lnum): New accessor method.
	(syntax_attrs): Unless this line has been edited since the last
	time it was displayed, or comes after the last edited line, just
	return the highlighting calculated last time.

	syntax: support grammar repository and include references.
	* lib/zile/grammar/lua-bundle.lua (string.quoted.single.lua)
	(string.quoted.double.lua): Use repository to reduce repetition
	of escaped character patterns.
	(string.quoted.single.lua, string.quoted.double.lua): Add
	repository pattern for % placeholders in format strings.
	* lib/zile/bundle.lua (compile_pattern): Factored out from the
	inner loop of compile_patterns.
	(load_grammar): Use compile_patterns on repository entries
	too.
	* lib/zile/syntax.lua (leftmost_match): Look-up include
	references in the grammar repository, and perform matches against
	any expressions or pattern list found there.

	syntax: support back-references in grammar end expressions.
	Somewhat trickier than expected because we do want to match the
	likes of \2, while not accidentally expanding \\2 (not a back-
	reference, just an escaped backslash followed by a plain 2):
	* lib/zile/bundle.lua (compile_rex): Now a global function.
	(has_backrefs): New function to check for back-references, being
	careful of unbalanced escapes.
	(compile_grammar): Don't precompile `end' expressions with un-
	resolved back-references.
	* lib/zile/syntax.lua (expand): New function to expand back-
	references in expressions using a reference string and capture
	offsets, and then compile on demand; again being careful of
	unbalanced escapes.
	(parse): Pass capture offsets to expression matches, and use
	them to expand back-references on demand.

	syntax: support begin and end expressions on a single line.
	* lib/zile/bundle.lua (capturestoattr): Call scopetoattr for each
	element of captures.
	(load_grammar): Factor out pattern compilation from here...
	(compile_patterns): New function.  ...to here.
	(compile_rex): Precompile onig regular expressions.
	* lib/zile/syntax.lua (leftmost_match): Account for matching
	against expressions in .rex and .finish.
	(parse): keep a pattern stack so that we can push a new pattern
	list onto the stack for matching subexpressions, and then pop
	back to the original when the finish expression is matched.
	Similarly, save the active color to a color stack when a new
	pattern list is pushed, and use that to color the whole begin/
	end pair when the finish expression is matched.

	syntax: support colored capture expressions.
	* lib/zile/syntax.lua (state:push_op): Don't push nil valued
	operations.
	(rex_exec): Adjust 1-based onig capture indices to 0-based
	zile buffer offsets.
	(leftmost_match): Return capture indices of matched pattern.
	(parse): Between beginning and end of a matched pattern, queue
	operations to set attributes for captured sub-expressions.

	syntax: calculate attributes for grammar capture expressions.
	* lib/zile/bundle.lua (scopetoattr): Search for most complete
	dot-delimited scope name match in colors table.
	(load_grammar): Simplify calculation of match expression
	attribute calculations using scopetoattr.
	Also add capture expression attributes to loaded grammar table.

	refactor: add parser state metamethods and simplify.
	* lib/zile/syntax.lua (push_op): Moved from here...
	(metatable.push_op): ...to here.  Adjust all callers.
	(state.new): Set the metatable on the new parser state.
	(highlight): Cache parser attrs and ops in locals for faster
	access.

	refactor: centralise parser state in a table.
	* lib/zile/syntax.lua (state.new): New function. Return a new
	parser state...
	(syntax_attrs): ...refactored from here.
	(highlight): Change to accept a single state table parameter.
	(parse): Likewise, but save long derefrence chains into locals
	for better access speed.

	syntax: select the appropriate mode according to file extension
	* lib/zile/grammar/diff-bundle.lua: New file, with the syntax
	grammar for diff and patch files.
	* lib/zile/zile.mk (dist_pkgdata_DATA): Add diff-bundle.lua.
	* lib/zz/default-color-bundle.lua: Set highlight styles for new
	diff grammar.
	* lib/zile/bundle.lua (load_file_associations): Load a map of
	file extension to grammar basename using the fileTypes key in
	each grammar file.
	* lib/zile/term_redisplay.lua (draw_status_line): Display the
	name of the loaded grammar for the current buffer in its mode-
	line.
	* NEWS: Update.

	syntax: add support for basic syntax highlighting.
	* lib/zile/grammar/lua-bundle.lua: New syntax grammar for Lua
	language.
	* lib/zile/syntax.lua: New file. Return a sparse array of
	attributes for a line of text according to that buffer's grammar.
	* build-aux/config.ld.in (file): Add lib/zile/syntax.lua.
	* local.mk (dist_modules_DATA): Add doc/modules/zile.syntax.html.
	* lib/zile/bundle.lua: Use lrex onigurama engine for easier
	porting of TextMate grammar files.
	(load_grammar): Initial massaging of a grammar file for fast
	access to attributes.
	* lib/zile/zile.mk (dist_pkgdata_DATA): Add lib/zile/syntax.lua
	and lib/zile/grammar/lua-bundle.lua.
	* lib/zile/buffer.lua (buffer_new): Initialise syntax member.
	* lib/zile/file.lua (find_file): Load the grammar when opening a
	new file.
	* lib/zz/main.lua (main): Highlight the scratch buffer correctly.
	* lib/zile/term_redisplay.lua (draw_line): Use it to set
	attributes as the line is displayed.
	* lib/zile/lib.lua (stack): Stack object place holder.
	* rockspec.conf (dependencies): Add lrexlib-oniguruma.
	* travis.yml.in (install): Install libonig-dev package for Travis
	CI.
	* .travis.yml: Regenerate.
	* NEWS: Update.

	luarocks: bump stdlib requirement to v40.
	* rockspec.conf (dependencies): Bump stdlib requirement to v40.

2014-05-07  Gary V. Vaughan  <gary@gnu.org>

	zlisp: requires stdlib monkey-patched string metatable.
	* lib/zile/zlisp.lua: When required by zlc (which does not
	otherwise rely on monkey-patched string metatable), bin/zemacs
	is not seen, so we must monkey-patch from here too.

	refactor: make sure string metatable is monkey_patched by stdlib.
	* lib/zile/zlisp.lua: Don't monkey-patch here...
	* bin/zz, bin/zemacs: ...do it here where it is executed before
	any other substantial code.

	maint: remove trailing whitespace.
	* lib/zile/default-color-bundle.lua: Remove trailing whitespace.

	maint: add NEWS and LDoc installation from last commit.
	* local.mk (dist_modules_DATA): Add doc/modules/zile.bundle.html.
	* NEWS: Update.

	zile: add support for basic color theming.
	* lib/zile/bundle.lua: New file. Load a bundle from a file with
	a "-bundle.lua" suffix to a Lua table using 'require'.
	* lib/zile/default-color-bundle.lua: New file. Standard non-
	olor terminal colors equivalent to before this changeset.
	* lib/zemacs/main.lua (main): Load default colors.
	* lib/zz/default-color-bundle.lua: New file. More colorful
	defaults for Zz, including many settings which are not
	implemented yet.
	* lib/zz/main.lua (main): Load Zz default colors.
	* lib/zile/term_redisplay (term_tidy, draw_line)
	(draw_status_line): Use loaded colors instead of hard-coded
	curses defaults.
	* lib/zile/zile.mk (dist_pkgdata_DATA), lib/zz/zz.mk
	(dist_zzdata_DATA): Add new files accordingly.
	* lib/zile/term_curses (init_pair): Assign a bg/fg color pair
	to a reusable pair id.
	(term_get_attribute): Convert a bundle style and color table
	into a curses attribute.

	refactor: use stdlib case throughout, instead of local function.
	* lib/zile/lib.lua (case): Remove function.
	* lib/zile/FileString.lua, lib/zile/MutableString.lua (case):
	Import and use stdlib case function.

	specs: move legacy {beginning,end}-of-line tests to specl.
	* tests/beginning-of-line.el, tests/beginning-of-line.output,
	tests/end-of-line.el, tests/end-of-line.output: Remove.
	* lib/zemacs/specs/zlisp_move_spec.yaml (beginning-of-line)
	(end-of-line): More comprehensive examples to specify behaviour
	of these lisp functions.
	* lib/zemacs/zlisp/move.zl (beginning-of-line, end-of-line):
	Use `(interactive "p")` for argument checking, and rewrite as
	clients of new lib/zile/buffer.lua:forward_line () to satisfy
	specified behaviours.
	* lib/zemacs/zlisp/lisp.zl (evaluate-expression): Until all lisp
	calls have correct return values, temporarily treat `true` return
	as equivalent to `nil` to match Emacs.
	Add FIXME comment to come back and fix this later.
	* NEWS: Update.

2014-05-06  Gary V. Vaughan  <gary@gnu.org>

	zlisp: improve `forward-line` implementation.
	* lib/zemacs/specs/zlisp_move_spec.yaml (forward-line): Specify
	complete behaviour of `forward-line`.
	* lib/zile/buffer.lua (forward_line): Implement specified
	behaviours.
	* lib/zemacs/zlisp/move.zl (forward-line): Rewrite over
	forward_line. Update docstring from Emacs.
	* NEWS: Update.

	maint: update NEWS.
	* NEWS: Update.  Mention a raft of recent changes that were not
	mentioned in NEWS at the time.

	specs: don't automatically add final newline to tmp files.
	While some UNIX utilities require source files to end every line
	with a '\n', Emacs and Zemacs do not.  And we might like to have
	examples that specify behaviour with non-'\n' ending files.
	* lib/zemacs/specs/spec_helper.lua (mktmpfile): Don't append
	a newline to temporary file contents.
	* lib/zemacs/specs/zlisp_buffer_spec.yaml,
	lib/zemacs/specs/zlisp_move_spec.yaml: Adjust accordingly.

	zlc: isolate namespaces with 'do ... end' blocks.
	When compiling several zlisp files, we don't want locals from one
	compiled file to be visible in another compiled file output to
	the same object.
	* lib/zemacs/zlc: Wrap the results of each compiled file in a
	'do ... end' block, and add a header comment naming the original
	source it came from.

	specs: add place-holders for unspecified zlisp functions.
	To help provide positive feedback for progress with legacy test
	migration...
	* lib/zemacs/specs/zlisp_bind_spec.yaml,
	lib/zemacs/specs/zlisp_buffer_spec.yaml,
	lib/zemacs/specs/zlisp_move_spec.yaml: Add pending examples for
	unspecified zlisp functions.
	* lib/zemacs/specs/zlisp_edit_spec.yaml,
	lib/zemacs/specs/zlisp_file_spec.yaml,
	lib/zemacs/specs/zlisp_help_spec.yaml,
	lib/zemacs/specs/zlisp_killring_spec.yaml,
	lib/zemacs/specs/zlisp_line_spec.yaml,
	lib/zemacs/specs/zlisp_lisp_spec.yaml,
	lib/zemacs/specs/zlisp_macro_spec.yaml,
	lib/zemacs/specs/zlisp_marker_spec.yaml,
	lib/zemacs/specs/zlisp_registers_spec.yaml,
	lib/zemacs/specs/zlisp_search_spec.yaml,
	lib/zemacs/specs/zlisp_undo_spec.yaml,
	lib/zemacs/specs/zlisp_variables_spec.yaml,
	lib/zemacs/specs/zlisp_window_spec.yaml: New spec-files with
	pending examples for unspecified zlisp functions:
	* lib/zemacs/zpecs/specs.mk (specl_SPECS): Add all of the above.

2014-05-05  Gary V. Vaughan  <gary@gnu.org>

	specs: move legacy forward-char tests to specl.
	Close #2
	* tests/forward-char.el, tests/forward-char.output,
	tests/interactive/backward-char.el,
	tests/interactive/backward-char.output,
	tests/regression/forward-char_at_end.el,
	tests/regressino/forward-char_at_end.output: Move from here...
	* lib/zmacs/specs/zlisp_move_spec.yaml (forward-char): ...to
	here, and improve in line with backward-char specifications.
	* lib/zemacs/zlisp/move.zl (forward-char): Use (interactive "p")
	to check argument type, and output the correct diagnostic for
	moving beyond the boundaries of the buffer.

	MutableString: set have_memmem and have_memrchr correctly.
	* lib/zile/MutableString.lua (have_memmem): Use alien.default
	in loadstring call, because (local!) libc is out of scope here.
	(have_memrchr): Likewise.

	MutableString: fix an off-by-one preventing final character results.
	* lib/zile/specs/MutableString_spec.yaml (chr, find, rchr, rfind):
	Add specifications for returning last checked position when
	starting seach from the last checked position.
	* lib/zile/MutableString.lua (find): Fix an off-by-one error to
	meet new specifications.

	MutableString: fix infinite loop in rfind implementation.
	Unfortunately, there remains an off-by-one issue in one or
	more callers. For now, marked as "issue #3" and we continue
	to accept the out-of-bounds argument.
	* lib/zile/specs/MutableString_spec.yaml (rchr, rfind): Specify
	behaviour of rchr and rfind methods.
	* lib/zile/MutableString.lua (rchr, rfind): Don't engage the
	search loop if the initial positions are out-of-bounds.
	(rfind): Decrement index position when restarting find after
	an unsuccessful match, to avoid an infinite loop!

	MutableString: fix infinite loop in fallback find implementation.
	Begin adding specs for core functions, and fix any bugs shaken
	out as we go.
	* lib/zile/specs/MutableString_spec.yaml: Specify behaviour
	of `chr` and `find` methods.
	* lib/zile/specs/spec_helper.lua: Set paths for new spec-file.
	* local.mk (SPECL_ENV, specl_SPECS): Declare here.
	* lib/zile/specs/specs.mk: New file. Ensure new spec-files are
	checked.
	* lib/zemacs/specs/specs.mk: Adjust for clashes with new
	`lib/zile/specs/specs.mk`.
	* local.mk: Include new `.mk` files.
	* lib/zile/MutableString.lua (find): Don't forget to start
	subsequent calls to `chr` from 1 character *after* a previously
	successful search that didn't match the whole needle.

2014-05-04  Gary V. Vaughan  <gary@gnu.org>

	specs: capture stdio streams and check batch mode against them.
	This is not only a major improvement to the `zemacs:edit`
	helper for more precise expectation matching, but also stops
	all the annoying flashing when curses was sending the
	alternate screen control codes directly to the terminal.
	* lib/zemacs/specs/spec_helper.lua (Editor): Add output and
	errout fields.  Remove `_type` and derive from
	`specl.shell.Process` so existing Process matchers will work on
	output and errout.
	Adjust matcher `actual_type` values accordingly.
	(edit): Capture subprocess stdout and stderr to Editor output
	and errout fields.
	* lib/zile/minibuf.lua (minibuf_out): Factored out of
	minibuf_echo.
	(minibuf_echo): Adjust.
	* lib/zemacs/zlisp/minibuf.zl (message): Output message content
	to stderr in batch mode, as described in docstring.
	* lib/zemacs/specs/zlisp_bind_spec.yaml,
	lib/zemacs/specs/zlisp_buffer_spec.yaml,
	lib/zemacs/specs/zlisp_minibuf_spec.yaml,
	lib/zemacs/specs/zlisp_move_spec.yaml: Strictly check stderr
	contents against `message` output in batch mode; and use format
	argument of `message` for more accurate expectation matching.

	zlisp: display `eval-expression` result in minibuf.
	* lib/zemacs/eval.lua (eval_string): Return result of most
	recently evaluated expression.
	* lib/zile/zlisp.lua (eval_string): Likewise.
	* lib/zemaacs/zlisp/lisp.zl (eval-expression): Display result of
	evaluation in minibuffer.
	* lib/zemacs/specs/zlisp_buffer_spec.yaml (point): Remove pending
	call from newly passing pending examples.
	* lib/zemacs/specs/spec_helper.lua (edit): Allow leading white-
	space before lisp code.
	* lib/zemacs/specs/zlisp_buffer_spec.yaml (point): Add white-
	space to lisp code for legibility.

	zlisp: improve `message` subr to work more like Emacs.
	* lib/zemacs/specs/zlisp_minibuf_spec.yaml (message): Specify
	behaviour of `(message)` subr.
	* lib/zemacs/specs/spec_helper.lua (mkmacro): Support quote marks
	in keyboard macros.
	* lib/zemacs/zlc (render_params): Translate zlisp `&rest`
	parameter as Lua `...` varags.
	(defsubr): Use it.
	* lib/zemacs/zlisp/minibuf.zl (message): Require format string
	and optional additional arguments, just like Emacs' `message`!
	* lib/zile/minibuf.lua (minibuf_echo): Return echoed string.

	zlisp: support "escaped \" in lisp strings".
	* lib/zile/zlisp.lua (lex): Adjust string reading loop to add
	`"` character to lisp strings when `\"` is encountered.

	zlc: support `(interactive "p")`.
	Our implementation of always passing the prefix arg as a
	marshalled argument makes this a bit of a misnomer, but for
	compatibility with Elisp, use this to ensure non-integer args
	are diagnosed.
	* lib/zemacs/specs/zlisp_move_spec.yaml (backward-char): Remove
	pending markers in argument checking examples.
	* lib/zemacs/zlisp/move.zl (backward-char): Use `(interactive "p")`
	in subr declaration.
	* lib/zemacs/zlc (defsubr): When `(interactive "p")` is
	encountered, emit code to ensure argument is an integer, while
	being careful of `&optional` markers.
	(integerp): Allow negative integers.

	specs: use escaping matcher for invalid argument examples.
	* lib/zemacs/specs/zlisp_move_spec.yaml (goto-char): Use
	`write_to_minibuf` to avoid having to manually escape error
	string results.

2014-05-03  Gary V. Vaughan  <gary@gnu.org>

	zlc: support `(interactive "Nprompt: ")`.
	Minimum working implementation for integer parameters in
	interactive subr declarations.
	* lib/zemacs/zlc: Add an integerp function definition to the
	preamble of a generated file.
	(defsubr): Add code for type checking and argument fetching when
	`(interactive "Nprompt: ")` is encountered.
	* lib/zemacs/zlisp/move.zl (goto-char): Use `(interactive "N")`
	and remove manual argument fetching code.
	* lib/zemacs/specs/zlisp_move_spec.yaml (goto-char): Remove
	pending markers from argument checking examples.

	specs: move legacy goto-char tests to specl.
	* lib/zemacs/specs/zlisp_move_spec.yaml (goto-char): New
	comprehensive specification for goto-char.
	* tests/goto-char.el, tests/goto-char.output,
	tests/regression/goto-char_large.el,
	tests/regression/goto-char_large.output: Remove obsoleted legacy
	test cases.

	refactor: revert to std.set over zile.Set.
	Recent std.container based stdlib sets are now just as fast as,
	and more featureful than the custom zile Set objects.
	* lib/zile/Set.lua: Remove.
	* lib/zile/zile.mk (dist_pkgdata_DATA): Remove lib/zile/Set.lua.
	* local.mk (dist_classes_DATA): Likewise.
	* build-aux/config.ld.in (file): Likewise.
	* lib/zile/Symbol.lua, lib/zile/zlisp.lua: Adjust `require`s.

	specl: clean-up now that Specl 12 is in the wild.
	* bootstrap.conf (buildreq): Cite release url for Specl 12
	rockspec.
	* .travis.yml: Regenerate.

	eval: require stdlib explicitly.
	* lib/zemacs/eval.lua, lib/zz/eval.lua: Don't rely on a global
	`std` symbol from bin/zemacs or bin/zz, because we need to run
	eval functions separately.  Add explicit `require "std"`.
	* lib/zemacs/keymaps.lua, lib/zemacs/mkdotzemacs.lua,
	lib/zemacs/zlisp/file.zl, lib/zemacs/zlisp/search.zl,
	lib/zile/FileString.lua, lib/zile/file.lua,
	lib/zile/keycode.lua, lib/zile/macro.lua,
	lib/zile/term_curses.lua, lib/zile/term_minibuf.lua,
	lib/zile/window.lua, lib/zz/commands/buffer.lua,
	lib/zz/commands/search.lua, lib/zz/commands/window.lua,
	lib/zz/eval.lua, lib/zz/keymaps.lua, lib/zz/mkdotzz.lua: Don't
	rely on global std having been set.

	refactor: upgrade to lua-stdlib v40 APIs.
	Lua-stdlib is moving strongly towards proper interface hygiene,
	preventing Zile from relying on stdlib entrypoints being
	scattered across the global namespace and core libraries simply
	by virtue of calling `require "std"`.
	* bin/zemacs, bin/zz (std): Bump requirement to 40.
	* lib/zile/keycode.lua (keycode_mt): Set metatable _type field,
	to prevent elements being folded as if a multi-element tree key.
	* lib/zemacs/eval.lua, lib/zemacs/keymaps.lua,
	lib/zemacs/zlisp/buffer.zl, lib/zemacs/zlisp/search.zl,
	lib/zemacs/zlisp/window.zl, lib/zile/file.lua,
	lib/zile/keycode.lua, lib/zile/macro.lua, lib/zile/minibuf.lua,
	lib/zile/term_curses.lua, lib/zile/term_minibuf.lua,
	lib/zile/tree.lua, lib/zile/window.lua, lib/zile/zlisp.lua,
	lib/zz/commands/buffer.lua, lib/zz/commands/search.lua,
	lib/zz/commands/window.lua, lib/zz/eval.lua, lib/zz/keymaps.lua,
	tests/run-lisp-tests.lua: Import stdlib APIs idiomatically.

2014-04-06  Gary V. Vaughan  <gary@gnu.org>

	specs: add specifications for point, point-max and point-min.
	* lib/zeemacs/specs/zlisp_buffer_spec.yaml: Specify behaviour of
	`point`, `point-max` and `point-min` lisp functions.
	* lib/zemacs/specs/specs.mk (specl_SPECS): Add
	lib/zeemacs/specs/zlisp_buffer_spec.yaml.
	* lib/zeemacs/default-bindings-el.lua (global-set-key): Add
	missing \M-gc binding for goto-char, required by new specs.

	specs: be sure to set batch_mode flag before first use.
	* lib/zemacs/specs/spec_helper.lua (edit): Be sure to set the
	batch_mode flag before calling mkmacro/mklisp functions that
	require it.

	travis: adjust .travis.yml for zemacs name change.
	* .travis.yml (script): use zemacs throughout.

2014-04-05  Gary V. Vaughan  <gary@gnu.org>

	refactor: zmacs is an existing editor project; rename ours to zemacs.
	Substitute all occurrences of zmacs, Zmacs and ZMACS with zemacs,
	Zemacs and ZEMACS respectively.
	* bin/zmacs, lib/zmacs, lib/zmacs/mkdotzmacs.lua,
	lib/zmacs/zmacs.mk: Move from here...
	* bin/zemacs, lib/zemacs, lib/zemacs/mkdotzemacs.lua,
	lib/zemacs/zemacs.mk: ...to here.
	Adjust all clients.

	configury: bump bootstrap specl build requirement to master.
	* bootstrap.conf (buildreq): Bump specl requirement to 'git'
	revision, which will eventually be release 12.

	travis: set SPECL correctly.
	* .travis.yml (script): Set SPECL correctly.

	travis: we rely on bugfixes from unreleased specl master.
	* .travis.yml (script): Install specl git master directly from
	github.

	slingshot: sync with upstream.
	* slingshot: Sync with upstream for github raw url changes.

	reformat: remove trailing whitespace.
	* lib/zile/FileString.lua: Remove trailing whitespace.

	maint: improve comment clarity for zargs.
	* lib/zmacs/main.lua: Improve comment clarity.

	travis: display the travis badge only for master builds.
	* README.md (travis-ci status): Only master (Lua Zile) is setup
	for travis builds, so don't show failures from other branches.

2014-03-22  Gary V. Vaughan  <gary@gnu.org>

	specs: upgrade to Specl 11 custom matcher API.
	* lib/zmacs/specs/spec_helper.lua (format_actual, match_minibuf)
	(match_buffer, write_to_minibuf, write_to_buffer): Add missing
	`self` parameter.

2014-03-21  Gary V. Vaughan  <gary@gnu.org>

	specs: move legacy backward-char tests to specl.
	* tests/backward-char.el, tests/backward-char.output: Remove.
	* tests/zile-only/interactive/backward-char.el,
	tests/zile-only/interactive/backward-char.output: Remove.
	* lib/zmacs/specs/zlisp_move_spec.yaml: New file, with improved
	specs for backward-char behaviour.
	* lib/zmacs/zpecs/specs.mk (specl_SPECS): Add
	lib/zmacs/specs/zlisp_move_spec.yaml.
	* lib/zile/minibuf.lua (trim_messages): Accept a new, optional,
	`msg` parameter, defaulting to `minibuf_contents`.
	(minibuf_error): Report interactive errors to *Messages* buffer,
	prefixed with 'call-interactively: ', like Emacs. This is reqd
	for new specs above to pass.

2014-03-06  Reuben Thomas  <rrt@sc3d.org>
	    Gary V. Vaughan  <gary@gnu.org>

	search: improve buffer search efficiency.
	* lib/zile/search.lua (find_substr): Always search from point to
	one end of the buffer in the direction given by the `forward`
	parameter.
	(search): Remove `o` parameter; searches begin at point.  Remove
	concatenation and `tostring` bottleneck when composing search
	string.
	Adjust all callers.

2014-03-06  Gary V. Vaughan  <gary@gnu.org>

	refactor: unroll insert_newline() in callers.
	* lib/zile/line.lua (insert_newline): Remove.
	Adjust all callers.

2014-02-28  Reuben Thomas  <rrt@sc3d.org>

	main.h: only one name for gc.h now

2014-02-27  Reuben Thomas  <rrt@sc3d.org>

	configure.ac: remove unusable debugging option for libgc

2014-02-26  Reuben Thomas  <rrt@sc3d.org>

	maint: post-release administrivia
	* NEWS: Add header line for next release.
	* .prev-version: Record previous version.
	* cfg.mk (old_NEWS_hash): Auto-update.

	version 2.4.11
	* NEWS: Record release date.

	NEWS and version bump for 2.4.11

	getkey.c: fix to timeradd macro (thanks, Craig Phillips)

2014-02-25  Reuben Thomas  <rrt@sc3d.org>

	maint: post-release administrivia
	* NEWS: Add header line for next release.
	* .prev-version: Record previous version.
	* cfg.mk (old_NEWS_hash): Auto-update.

	version 2.4.10
	* NEWS: Record release date.

	Add a FIXME

	Add a FIXME

	Fix list-buffers, which was not displaying ANY normal buffers

	Fix FIXME: reorganise number parsing to signal errors

2014-02-24  Reuben Thomas  <rrt@sc3d.org>

	Remove get_variable_number
	Only one caller left, so call get_variable_number_bp instead

	Remove a check on all calls of fill_break_line already carried out in the function itself

	funcs.c: give more accurate feedback when fill-column is set
	If its previous value was not a number, it will now be shown correctly.

	funcs.c: make width condition for calling fill_break_line always the same
	There was a +1 in this case.

	Simplify to a single caller of undo_start_sequence and undo_end_sequence

2014-02-16  Reuben Thomas  <rrt@sc3d.org>

	Use enums more intelligently

	variables.c: fix a wrong-size allocation

	Fix FIXME: make all struct types opaque pointer types

2014-02-15  Reuben Thomas  <rrt@sc3d.org>

	NEWS: add more for 2.4.10

	Use bool everywhere a boolean is meant, not int

	Remove references to freeing memory

	Fix some warnings when building the astr test program

2014-02-14  Reuben Thomas  <rrt@sc3d.org>

	Add a const_estr type, analogous to const_astr
	There's no function that creates them, but it makes it possible to
	annotate functions that don't modify estr arguments.

	Fix all but one remaining warnings, and some bugs
	Most of the warnings and all of the bugs are to do with printf formats.
	Hooray for GCC's attributes that allow user functions' formats to be
	checked!

	configure.ac: remove test for -fmudflap, removed in GCC 4.9

	region.c: fix incorrect attribute

	Rename castr to const_astr for clarity

	Update and compress copyright ranges.

	Fix FIXME: make estr opaque
	A few other minor clarifications

	astr.c: add missing call to GC_init

	m4/.gitignore: update from gnulib

	Update gnulib

2014-02-13  Reuben Thomas  <rrt@sc3d.org>

	configure.ac: insist on libgc >= 7.2, for the sake of sanity (debuggability, in particular)

2014-02-12  Reuben Thomas  <rrt@sc3d.org>

	NEWS: add recent changes

	Fold minibuf_read_yn into write_buffer, and make the latter more Emacs-like

	Update query-replace prompt handling to be closer to Emacs (copy Lua Zile)

	Simplify in_region, and make it more method-like, region_contains

	Fix a FIXME: make Region opaque

	NEWS: add news for 2.4.10

	Fix FIXME: copy search speed-up from Zee

	basic.c: fix a compiler warning

	src/Makefile.am: use pkgconfig-generated flags for libgc

	configure.ac: fix FIXME: use pkgconfig to find libgc
	Other minor tidy-ups

	Note Lua Zile's solution to a FIXME

	configure.ac: quote first argument of AC_DEFINE

	src/gc_veneer.c: zero memory returned by calloc veneer

	build-aux/.gitignore: fix no newline at end of file

	.gitignore: add test-suite.log

	src/.gitignore: add patterns for test files generated by recent autotools

	Various fixes to get GC working, plus re-add --enable-debug to configure options

	.gitignore: allow TAGS in any directory, and remove a redundant pattern

2014-02-11  Reuben Thomas  <rrt@sc3d.org>

	Use libgc symbols that can be switched between debug and normal.

	configure.ac: always build with libgc, we can debug it now
	Remove unused LIBGC_CPPFLAGS

	main.c: bump copyright year in startup message

	bind.c: bump copyright year to 2012

	configure.ac: bump version to 2.4.10

	README-release.diff: whitespace fix

	README-release.diff: update

	HACKING: fix up diff, don't check in the file. Oops.

	Mention release branch, rather than explicitly "master"

	Change prerelease target to work on current branch, not master

2014-02-07  Reuben Thomas  <rrt@sc3d.org>

	Fix it so we really are using libgc.

	Remove reference to non-existent WERROR_CFLAGS

2014-02-06  Reuben Thomas  <rrt@sc3d.org>

	build-aux/.gitignore: add test-driver

	configure.ac: change a FIXME

2014-02-06  Gary V. Vaughan  <gary@gnu.org>

	configury: use a sentinel file for multi-target rules.
	Be nice to parallel make.
	* local.mk ($(srcdir)/doc/.ldocs): Factor out of...
	($(dist_doc_DATA) $(dist_classes_DATA) $(dist_modules_DATA):
	...here.

	configury: fix location of config.ld in Makefiles.
	* local.mk (EXTRA_DIST): config.ld moved to build-aux several
	commits ago, so fix the location here too.
	* .gitignore: Update.

2014-01-22  Gary V. Vaughan  <gary@gnu.org>

	FileString: new name for EStr, now with LDocs.
	* bin/zmacs, bin/zz: Remove `require "zile.estr"`.
	Adjust all callers.
	* lib/zile/estr.lua: Moved from here...
	* lib/zile/FileString.lua: ...to here.
	Adjust all callers.
	* lib/zile/zile.mk (dist_pkgdata_DATA): Adjust.
	* lib/zile/FileString.lua: Move object methods into shared
	metatable to reduce object size, and speed up cloning.
	Add LDocs.
	* build_aux/config.ld (file): Add lib/zile/FileString.lua.
	* local.mk (dist_classes_DATA): Add doc/zile.FileString.html.

	MutableString: fix speelong mistake.
	lib/zile/MutableString.lua: s/An (MutableString)/A \1/

	MutableString: support [] for per-character references by offset.
	* lib/zile/MutableString.lua (__index): Move methods from here...
	(methods): ...to here.
	(__index): If argument is a number, return the character at that
	offset, otherwise try the method table.
	* lib/zile/estr.lua (__index): Defer to MutableString.__index.
	* lib/zile/buffer.lua (get_buffer_char): Fetch a character
	directly from the buffer without an intermediate tostring().

	MutableString: Add topointer method.
	* lib/zile/MutableString.lua (topointer): Call topointer() on
	self.buf.buffer.
	(MutableString.__index): Move table of methods from here...
	(_functions): ...to here.
	(MutableString.__index): Merge topointer to make method table.
	(move, replace, set): Use topointer.
	(_init): Allow initialisation from another MutableString, or a
	byte count as well as a Lua string.

	MutableString: make sub `to` argument optional.
	* lib/zile/MutableString.lua (sub): Default `to` to end of string.

	lib: nice helper function for writing `case` statments.
	* lib/zile/lib.lua (case): New function. Instead of a cascade
	of elseifs that recalculate the same comparison, this function
	calculates it one and looks up a dispatch function in the
	passed table.

	maint: fix comment bitrot in lib/zile/lib.lua.
	* lib/zile/lib.lua (iscallable): Correct bitrot in comment.

	estr: simplify EStr.lines a little.
	* lib/zile/estr.lua (EStr.lines): Simplify slightly.

	EStr: optimise searches when using single-char eol.
	* lib/zile/estr.lua (EStr._init): Set default search functions to
	MutableString.find and MutableString.rfind, optimising to
	MutableString.chr and MutableString.rchr for 1-char eols, falling
	back to whatever find/rfind functions are provided by the `s`
	argument.
	(start_of_line, end_of_line, lines): Use the saved search
	functions.

	MutableString: minimise repeated table lookups.
	* MutableString (cstring, libc, memmove, memset): Save references
	to fields in `alien`.
	Adjust all callers.
	(move, set_len): Cache self.buf.buffer references in a local.

	MutableString: fix multichar find/rfind searches.
	* lib/zile/MutableString.lua (find, rfind): Rename from these...
	(chr, rchr): ...to these.  Remove FIXME comments.
	(find, rfind): Rewritten to call chr/rchr respectively, but to
	keep searching if a full length match does not start at the
	returned position.

	MutableString: use memmem (3) for find when available.
	* lib/zile/MutableString (find): Use the multi-char search string
	capable memmem for fast buffer searches if possible.

	astr: rename AStr to MutableString.
	* lib/zile/astr.lua: Move from here...
	* lib/zile/MutableString.lua: ...to here.
	Adjust internal references to astr and AStr accordingly.
	* bin/zmacs, bin/zz: Remove `require "zile.astr"`.
	* lib/zile/estr.lua, lib/zile/buffer.lua: Add
	`require "zile.MutableString"`.
	* build/aux/config.ld.in, local.mk (dist_classes_DATA)
	lib/zile/zile.mk (dist_pkgdata_DATA): Adjust.

	doc: add the package name and version to html doc page titles.
	* build-aux/config.ld: Move from here...
	* build-aux/config.ld.in: ...to here.
	(title, project): Substitute @VERSION@.
	* .gitignore: Add build-aux/config.ld.

	doc: keep config.ld out of doc/ for LuaRocks docdir install.
	* doc/config.ld: Move from here...
	* build-aux/config.ld: ...to here.
	* local.mk ($(dist_doc_DATA): Adjust.
	* .gitignore: Update.
	* NEWS: Update.

	refactor: reformat and add LDocs to astr.lua.
	* lib/zile/astr.lua: Reformat to match other object modules.
	Return a table instead of perturbing the global namespace.
	Add LDocs.
	* lib/zile/estr.lua, lib/zile/buffer.lua: Adjust all callers.
	* doc/config.ld (file): Add lib/zile/astr.lua.
	* local.mk (dist_classes_DATA): Add lib/zile/astr.lua.

2014-01-21  Gary V. Vaughan  <gary@gnu.org>

	maint: move `require "alien"` to locality of only use.
	* bin/zmacs, bin/zz: Remove `require "alien"`.
	* lib/zile/astr.lua: Add `require "alien"`.

	configury: update rockspecs in buildreq.
	* bootstrap.conf (buildreq): LDoc and Specl are now available in
	the required versions upstream.

	travis: remove workarounds for unreleased rocks.
	* travis.yml.in (LDOC_ROCKSPEC, SPECL_ROCKSPEC): Remove.
	* .travis.yml: Regenerate. Also removes STDLIB_ROCKSPEC pre-
	release installation.

	astr: alien api cleanup.
	It turns out that we can write code that references nonexisting
	alien symbols, provided it isn't executed.
	* lib/zile/astr.lua (have_memrchr): Just try to types method
	to detect failure.
	(rfind): Move out of loadstring.
	Reported by Reuben Thomas

	astr: return nil from find/rfind with out-of-bounds arguments.
	Respect the earlier calling convention of AStr.{r,}find, and
	return `nil` for an out-of-bounds access.
	* lib/zile/astr.lua (memchr, memrchr): Move from here...
	(AStr.find, AStr.rfind): ...to here. They may call
	alien.default.memrchr/memrchr, but have entirely different
	semantics, so don't misname it.
	(AStr.find, rfind): Use #self for buffer length, not
	`\0`).
	If called with `from` outside of #self.buf, return nil before
	calling `memchr`.

2014-01-19  Gary V. Vaughan  <gary@gnu.org>

	astr: use libc memrchr if available.
	Trickier than it should be, because alien throws an error as
	soon as Lua reads `alien.default.memrchr` before giving us a
	chance to catch it and fallback to the brute force array search.
	* lib/zile.astr.lua (memrchr): Use pcall and loadstring to safely
	evaluate the alien interface to libc `memrchr`, but silently fall
	back to the brute force reverse search if that fails.

	refactor: adjust to different std.set membership syntax in v37.
	Now that `std.set` is a `std.container` derived object, there
	are no object methods.
	* lib/zile/file.lua, lib/zile/keycode.lua, lib/zile/minibuf.lua,
	lib/zile/term_minibuf.lua, lib/zmacs/zlisp/search.zl,
	lib/zz/commands/search.lua: Use `set.member (s, e)` in place of
	`s:member (e)`.

	stdlib: require lua-stdlib 37.
	Move to latest stdlib in preparation for using it's better
	object system.
	* rockspec.conf (dependencies): Bump stdlib to 37.
	* bin/zz, bin/zmacs (require_version): Likewise.
	* lib/zmacs/zlc: Rewrite option parsing around std.optparse,
	instead of std.getopt.
	* lib/zmacs/zlc, lib/zile/zlisp.lua: Require "io", instead of
	obsolete "io_ext".
	* lib/zile/lib.lua (iscallable): Now that all std.container and
	std.object based tables have __call metamethods, be more careful
	about detecting callable symbols.
	* .travis.yml (script): Add another temporary github rockspec
	while waiting for stdlib 37 to reach the LuaRocks repo.

2014-01-18  Gary V. Vaughan  <gary@gnu.org>

	astr: use alien instead find/find_substr to speed up cursor movement.
	This gives a good order of magnitude speed up on moderate to large
	size files, making zmacs usable again :)
	* lib/zile/astr.lua (memchr): New function to wrap
	`alien.default.memchr`.
	(memrchr): New function to simulate GNU memrchr over an alien
	array.
	(AStr:find, AStr:rfind): Use them.

2014-01-15  Gary V. Vaughan  <gary@gnu.org>

	specl: start adding specl specifications for zlisp.
	Start with the previously untested (previously untestable!)
	`where-is` command.
	* configure.ac (AC_PATH_PROG): Probe for a specl command.
	* bootstrap.conf (buildreq): Add specl.  Note, we need bugfixes
	from an unreleased Specl at the moment.
	(slingshot_files): Add bulid-aux/specl.mk.
	* lib/zmacs/specs/spec_helper.lua: New file. Matchers and helpers
	for running zmacs and checking buffer and minibuf results.
	* lib/zmacs/specs/zlisp_bind_spec.yaml (where-is): Specify
	behaviour of `where-is` command.
	* lib/zmacs/specs/specs.mk: New file. Declare specl spec files.
	* local.mk: Include it.
	* travis.yml.in (script): Check specs.
	* .travis.yml: Regenerate.

	zlisp: support optional insert argument to `where-is`.
	* lib/zmacs/zlisp/bind.zl (where-is): Support optional insert
	parameter.  Use the some output format as Emacs when insert is
	non-nil.
	* NEWS: Update.

	zile: fix assert in switch_to_buffer, for after set-buffer.
	If a ZLisp program changes the buffer_stack with `set-buffer` or
	otherwise, and `switch_to_buffer` is called before reaching the
	command read loop, handle the stack correctly.
	* lib/zile/buffer.lua (switch_to_buffer): Don't fail the initial
	assert if the current window still holds the buffer on the bottom
	of the stack.
	If the buffer for the current window is successfully changed,
	then switch the buffer on the bottom of the stack too so that
	when the stack unwinds, the buffer doesn't change back again.

	zlisp: save-buffers-kill-emacs saves without prompting with ARG.
	* lib/zile/file.lua (save_some_buffers): New `noask` parameter.
	* lib/zmacs/zlisp/file.zl (save-buffers-kill-emacs): Accept an
	optional prefix arg, and pass to `save_some_buffers`.
	* NEWS: Update.

	zile: when resetting a path following "//", start back at root.
	* lib/zile/file.lua (canonicalize_filename): When encountering
	a double / in a path, and resetting to root, don't forget to
	mark the root directory with an initial "" in ncomp.

2014-01-14  Gary V. Vaughan  <gary@gnu.org>

	zlisp: copy-region-as-kill now interprets parameters.
	* lib/zmacs/zlisp/buffer.zl (point-min, point-max, buffer-size):
	New lisp functions.
	* lib/zmacs/zlisp/killring.zl (copy-region-as-kill): Interpret
	arguments as describing region offsets.
	* NEWS: Update.

	zlisp: don't crash when passing non-strings to (message).
	* lib/zmacs/zlisp/minibuf.zl (message): Coerce argument to a
	string before echoing.

	zlisp: a fully functional reader and evaluator!
	* lib/zile/zlisp.lua (parse): When pushing a quoted node onto
	the AST, it goes at the front of the cons list!
	* lib/zmacs/eval.lua (marshaller): Except for special forms, now
	marked with "UNEVAL" in defsubr max parameter, evaluate each
	parameter before calling the subr.
	(eval_expression): Rewrite. Get values of variable symbols, call
	function symbols at the head of a cons list, and handle `quote`
	specially until special-forms support is complete.
	* lib/zmacs/zlisp/variables.zl (set-variable): No need to tease
	out the variable symbol from a quoted cons list any more.
	* NEWS: Update.

	zlisp: add proper (point) and (mark) support.
	* lib/zmacs/zlisp/buffer.zl (point): New function. Returns the
	byte offset of point in the current buffer.
	* lib/zmacs/zlisp/marker.zl (mark): New function. Returs the
	byte offset of mark in the current buffer, if any.
	* NEWS: Update.

	symbol: use a shared metatable for all Symbol objects.
	* lib/zile/Symbol.lua (metatable): Factor out of `make_symbol`.
	(metatable.__index): Do plist lookups using `self` rather than an
	upvalue.
	(metatable.__newindex): Lazily initialise `plist` rather than
	adding and emply plist to every symbol unconditionally.
	(keynames): Set of `__newindex` keys that work directly on the
	symbol object.
	(metatable.__newindex): Use it, to avoid falling through to the
	`plist` unnecessarily.

	zlisp: add symbolp function.
	* lib/zile/Symbol.lua (symbolp): New function, for detecting
	Symbol objects.
	(methods): Export it.
	* lib/zile/zlisp.lua (symbolp): Re-export it.

	maint: bump copyright year in `--version` output.
	* lib/zile/version.lua.in (COPYRIGHT_STRING): Set copyright year
	to 2014.

	zlc: improve defsubr syntax and generation.
	* lib/zile/zlisp.lua (consp): Re-export Cons.consp.
	* lib/zmacs/zlc (defsubr): Generate a min/max argument pair by
	scanning the initial lisp parameter list. Output a defsubr
	call with min/max arguments instead of unused argument types
	list.
	* lib/zmacs/eval.lua (defsubr): Replace unused argtypes
	parameter with new min and max parameters.
	Don't store "marshall-argtypes" property on function symbol.
	(marshaller): Remove remaining argtypes cruft.
	* lib/zmacs/zlisp/bind.zl, lib/zmacs/zlisp/buffer.zl,
	lib/zmacs/zlisp/edit.zl, lib/zmacs/zlisp/file.zl,
	lib/zmacs/zlisp/help.zl, lib/zmacs/zlisp/killring.zl,
	lib/zmacs/zlisp/line.zl, lib/zmacs/zlisp/lisp.zl,
	lib/zmacs/zlisp/macro.zl, lib/zmacs/zlisp/marker.zl,
	lib/zmacs/zlisp/minibuf.zl, lib/zmacs/zlisp/move.zl,
	lib/zmacs/zlisp/registers.zl, lib/zmacs/zlisp/search.zl,
	lib/zmacs/zlisp/undo.zl, lib/zmacs/zlisp/variables.zl,
	lib/zmacs/zlisp/window.zl: Simplify all defsubr definitions by
	replacing typelist with parameter spec argument from lambda
	statement, and then remove lambdas.
	* lib/zmacs/zlc (lambda): Remove.

	refactor: reorganise zlisp import symbols for cleaner LDocs.
	* lib/zile/zlisp.lua (Cons, Symbol, intern, intern_soft)
	(mapatoms): Put declarations and documentation together.

	zlisp: remove undefined `define` symbol.
	* lib/zile/zlisp.lua (define): Remove.

2014-01-13  Gary V. Vaughan  <gary@gnu.org>

	zlc: don't record source files for symbols defined in Lua.
	* lib/zmacs/zlc (defsubr, defvar): Omit source parameter from
	output.
	(cur_file): Factored away.
	* lib/zmacs/eval.lua (defsubr, defvar): Remove source parameter.
	Don't store source in symbol plist.

	zmacs: use `defsubr` to define built-in function written in Lua.
	* lib/zmacs/eval.lua (Defun, Defvar): Rename from these...
	(defsubr, defvar): ...to these.
	* lib/zmacs/zlc (defvar): Generate a call to Lua's defvar.
	(defun): Rename from this...
	(defsubr): ...to this.  Generate a call te Lua's defsubr.
	Adjust all callers.

	zile: add missing `string` qualifier to unqualified `gsub`.
	* lib/zile/file.lua (create_backup_filename): Add missing
	`string.` qualifier.

	symbol: stringification always returns a symbol's value.
	* lib/zmacs/eval.lua: Remove FIXME.
	* lib/zile/Symbol.lua (display_variable_value): New function.
	If the variable value is a string, then wrap in double quotes
	for display.
	(symbol.__tostring): Use it.
	Adjust all callers that require symbol name to specify exactly
	`symbol.name`.

	Symbol: LDoc improvements.
	* lib/zile/Symbol.lua: Assorted LDoc improvements.
	(@table symbol): Empty block to document the layout of a symbol.
	Adjust all references.

	refactor: move `define` from lib/zile/Symbol.lua to lib/zmacs/zlc.
	* lib/zile/Symbol.lua (define): Move from here...
	* lib/zmacs/zlc (define): ...to here.
	* lib/zile/Symbol.lua (methods): Remove define.

	cons: add nice stringification, with '.' notation.
	* lib/zile/Cons.lua: Reorganise somewhat for better LDocs, and
	overall readability.
	(stringify): New function. Return a short string representation
	of a cons list, eliding nested parentheses for cons lists, and
	using '.' notation for non-cons cdr cells.
	(metatable.__tostring): Wrap `stringify` results in parentheses
	and return.
	(metatable._type): Set this to "Cons" for all objects constructed
	by this file.
	(consp): New function. Recognise cons objects by value of the
	metatable._type value.

	refactor: remove get_variable_bool and get_variable_number stubs.
	* lib/zmacs/eval.lua (get_variable_bool, get_variable_number):
	Remove.  Adjust all callers to use `get_variable` directly.
	* lib/zz/eval.lua (get_variable_bool, get_variable_number):
	Likewise.

	zlisp: pass around real values instead of string representations.
	* lib/zile/zlisp.lua (lex): Change token type of word to symbol,
	and token value from string to interned zile.Symbol object.
	Don't recognize "t" and "nil" as literals, but fall through to
	symbol token type.
	(parse): Make the AST from Consed token values, instead of an
	adhoc table with `kind` and `value` fields.
	Represent a quoted node as a Cons list with the symbol "quote"
	as the first element, instead of adding an adhoc `quoted` field.
	(call_command): First argument is now an already interned
	symbol.
	(eval_command): Pass the symbol in list.car directly to
	call_command.
	(eval_string): Pass the command list in list.car directly to
	eval_command.
	* lib/zile/minibuf.lua (trim_messages): `message_log_max` value
	is now an actual number.
	* lib/zmacs/zlc (make-variable-buffer-local, isname, defun)
	(lambda, localfun, localvar): Adjust to using Cons lists of
	actual objects rather than {kind/value/quoted} parse nodes.
	(defvar): Emit actual Lua values, not string representations.
	* lib/zmacs/eval.lua (marshaller): Simplify type coercion now
	that we already get actual objects.
	(set-variable): Change first parameter name to symbol_or_name,
	and intern to a symbol object when passed a name.
	(execute_function): Don't fake a {kind/token/quoted} parse node,
	just propagate uniarg object as is.
	(eval_command): Pass the symbol in list.car directly to
	call_command.
	(eval_expression): Simplify.
	(eval_string): Pass the command list in list.car directly to
	eval_command.
	(display_variable_value): New function.  Return a string
	representation of a variable value.
	(Defvar, set_variable): Use it as the __string metamethod on new
	variable symbols.
	* lib/zmacs/zlisp/help.zl (write_variable_description): Use it
	to display a variable's value correctly.
	(describe-variable-string): Unwrap quoted symbol names correctly
	when called non-interactively.
	* lib/zmacs/eval.lua (Defvar):
	* lib/zmacs/zlisp/list.zl (setq): Adjust for actual objects as
	value arguments instead of {kind/token/quoted} parse nodes.
	* lib/zmacs/zlisp/variables.zl (parse): Import the parser
	function from "zile.zlisp".
	(set-variable): Use it to turn an interactive value string into
	an object to store in the value field of variable symbol.
	Unwrap quoted symbol names correctly when called
	non-interactively.

	zz: remove command argument type-checking wrapper.
	* lib/zz/eval.lua (marshaller): Remove.
	(Defun): Remove "marshall-argtypes" symbol property. Set __call
	metamethod to call function directly rather than through the
	marshaller wrapper.
	(Defun): Remove argtypes parameter.  Adjust all callers.

	refactor: remove unused get_function_by_keys parameter.
	* lib/zile/bind.lua (get_function_by_keys): Remove unused
	`fetch` parameter.
	Adjust all callers.

	refactor: rename fetch wrappers to intern_soft.
	* lib/zmacs/eval.lua, lib/zz/eval.lua (fetch): Rename from
	this...
	* lib/zmacs/eval.lua, lib/zz/eval.lua (intern_soft): ...to this.
	Adjust all callers.

	refactor: factor symbol management into a new Symbol.lua module.
	* lib/zile/Symbol.lua: New file. Centralize symbol creation and
	management here.
	* lib/zile/zlisp.lua: Adjust accordingly.
	* lib/zmacs/eval.lua: Simplify.  Adjust all callers.
	* lib/zz/eval.lua: Likewise.
	* lib/zile/zile.mk (dist_pkgdata_DATA): Add lib/zile/Symbol.lua.
	* local.mk (dist_doc_DATA): Add doc/classes/zile.Symbol.html.
	* doc/config.ld (file): Add lib/zile/Symbol.lua.

	zmacs: show buffer-local details in describe-variable output.
	* lib/zmacs/zlisp/help.zl (write_variable_description): If this
	is a buffer-local variable, output a notice to that effect.  If
	it has a different local value to the original default, also show
	the original value.
	* NEWS: Update.

	configury: remove spurious `FORCE:` rule.
	* local.mk (FORCE): Remove.  No longer used.

	configury: use explicit lists instead of $(wildcard ...).
	* local.mk (dist_classes_DATA, dist_modules_DATA): Only GNU make
	supports $(wildcard ...) expressions, and Automake complains
	every time it sees one.  List files explicitly.
	($(dist_doc_DATA)): Add $(dist_classes_DATA) and
	$(dist_modules_DATA) to LHS of this rule so that make knows it
	has to run LDoc to create those files.

	zlisp: correct module name.
	* lib/zile/zlisp.lua (@module): Update to zile.zlisp to reflect
	new location.
	* lib/zmacs/eval.lua (eval_expression): Correct reference.

	refactor: use `eval_string', `eval_expression' etc. for consistency.
	* lib/zile/zlisp.lua (evaluate_command, evaluate_string)
	(evaluate_file): Rename from these...
	(eval_command, eval_string, eval_file): ...to these. Adjust all
	callers.
	* lib/zmacs/eval.lua (evaluate_command, evaluate_expression)
	(evaluate_string, evaluate_file): Rename from these...
	(eval_command, eval_expression, eval_string, eval_file): ...to
	these. Adjust all callers.
	(loadfile, loadstring): Remove from export table.
	(eval_file, eval_string): Add to export table.  Adjust all
	callers.
	* lib/zz/eval.lua (evaluate_command, evaluate_expression)
	(evaluate_string, evaluate_file): Rename from these...
	(eval_command, eval_expression, eval_string, eval_file): ...to
	these. Adjust all callers.

	zmacs: improve setq special-form.
	* lib/zile/zlisp.lua (lex): Rename the "string" token type to
	"literal".  Also recognise numbers, t and nil, and return those
	as "literal" tokens too.
	* lib/zmacs/eval.lua (evaluate_expression): Work properly when
	evaluating literals, quoted nodes, variable references and
	function calls.

	zmacs: add `set-buffer`.
	* lib/zile/buffer.lua (push_buffer): New function. Temporarily
	change the current buffer.
	(with_current_buffer): Use it.
	(unwind_buffer_stack): New function. Unwind back to the original
	current buffer.
	* lib/zmacs/callbacks.lua (get_and_run_command): Unwind the
	buffer stack after every command.
	* lib/zmacs/zlisp/buffer.zl (set-buffer): New command to
	invisibly switch buffers until zmacs returns to the top-level
	command loop without updating the interface.

	refactor: add get_buffer_create and simplify accordingly.
	* lib/zile/buffer.lua (get_buffer_create): New function. Return
	an existing buffer, or create one if necessary.
	* lib/zile/minibuf.lua (messages_bp): Remove.  Recreate the
	"*Messages*" buffer on demand with get_buffer_create.
	(trim_messages): New function.  Factored out of...
	(minibuf_echo): ...here.
	* lib/zmacs/main.lua (main): "*Messages*" is not created until
	required, so revert to counting only "*scratch*" as an additional
	buffer when deciding how to split windows at startup.

	refactor: rename find_buffer to get_buffer.
	* lib/zile/buffer.lua, lib/zile/funcs.lua,
	lib/zmacs/zlisp/buffer.zl, lib/zmacs/zlisp/file.zl,
	lib/zmacs/zlisp/help.zl, lib/zmacs/zlisp/lisp.zl,
	lib/zz/commands/buffer.lua, lib/zz/commands/file.lua,
	lib/zz/commands/help.lua (find_buffer): Rename to
	get_buffer.

	zmacs: support message-log-max for *Messages* trimming.
	* lib/zmacs/zlisp/minibuf.zl (message-log-max): Declare a new
	variable for the maximum number of messages to keep in the
	*Messages* buffer.
	* lib/zile/minibuf.lua (minibuf_echo): Only add messages if
	`message-log-max` is non-nil, and if it is a number then delete
	the oldest messages until no more than that number remain.
	* NEWS: Update.

	zmacs: export get_variable function.
	* lib/zmacs/eval.lua: Add get_variable to returned table of
	functions.

	zile: support *Messages* buffer.
	* lib/zile/buffer.lua (with_current_buffer): New function.
	Quickly make a temporary buffer change, for the duration of
	one callback function.
	* lib/zile/minibuf.lua (messages_bp): New *Messages* buffer.
	(minibuf_echo): Add a copy of minibuf messages to *Messages*.
	* lib/zmacs/main.lua (main): Adjust buffer count when deciding
	how to display windows on startup, now that we have an additional
	*Messages* buffer.
	* NEWS: Update.

	zmacs: use new minibuf_echo for non-error information in minibuf.
	* lib/zile/minibuf (minibuf_echo): New function. Write message
	to minibuf, or stdout in batch mode.
	(minibuf_error): Adjust to write to stderr in batch mode.
	(minibuf_refresh): remove batch mode code, and simplify.
	* lib/zile/term_minibuf.lua (term_minibuf_write): Likewise.
	Adjust `minibuf_write` calls to use `minibuf_echo` when
	appropriate.

	travis: incorporate slingshot's travis.yam.in improvements.
	* travis.yml.in: Tidy up and simplify according to recent
	improvements in slingshot's travis.yml.in.
	* .travis.yml: Regenerate.

	slingshot: sync with upstream.
	* slingshot: Sync with upstream.
	* bootstrap: Sync with slingshot.

2014-01-09  Gary V. Vaughan  <gary@gnu.org>

	zmacs: move zlisp variable declarations to an appropriate file.
	* lib/zmacs/zlisp/variables.zl (auto-fill-mode): Move from here...
	* lib/zmacs/zlisp/buffer.zl (auto-fill-mode): ...to here.
	* lib/zmacs/zlisp/variables.zl (ring-bell): Move from here...
	* lib/zmacs/zlisp/edit.zl (ring-bell): ...to here.
	* lib/zmacs/zlisp/variables.zl (make-backup-files)
	(backup-directory): Move from here...
	* lib/zmacs/zlisp/file.zl (make-backup-files, backup-directory):
	...to here.
	* lib/zmacs/zlisp/variables.zl (kill-whole-line): Move from
	here...
	* lib/zmacs/zlisp/killring.zl (kill-whole-line): ...to here.
	* lib/zmacs/zlisp/variables.zl (indent-tabs-mode)
	(tab-always-indent, tab-width, standard-indent, fill-column):
	Move from here...
	* lib/zmacs/zlisp/line.zl (indent-tabs-mode, tab-always-indent)
	(tab-width, standard-indent, fill-column): ...to here.
	* lib/zmacs/zlisp/variables.zl (case-fold-search, case-replace):
	Move from here...
	* lib/zmacs/zlisp/search.zl (case-fold-search, case-replace):
	...to here.
	* lib/zmacs/zlisp/variables.zl (highlight-nonselected-windows)
	(transient-mark-mode): Move from here...
	* lib/zmacs/zlisp/window.zl (highlight-nonselected-windows)
	(transient-mark-mode): ...to here.

	tests: remove unused Autotest source.
	* lib/zmacs/test/write-file.at: Remove. No longer used.

2014-01-08  Gary V. Vaughan  <gary@gnu.org>

	travis: simplify custom travis build script.
	* travis.yml.in: Simplify custom travis build script.
	* .travis.yml: Regenerate.

	configury: don't conflate *_DATA and _DEPS.
	* lib/zmacs/zmacs.mk (dist_zmacsdata_DATA): Remove
	$(dist_smacscmds_DATA).
	(doc/zmacs.1, ldoc_DEPS): Replace dist_zmacsdata_DATA with
	zmacs_zmacs_DEPS.
	* lib/zz/zz.mk: And again!

	zmacs: don't require removed zile.registers module.
	Forgot to remove these in changeset e6e89ee.
	* bin/zmacs: Remove `require "zile.registers"`.
	* bin/zz: Likewise.

2014-01-07  Gary V. Vaughan  <gary@gnu.org>

	configury: require a specific LDoc, to match doc-comments.
	* bootstrap.conf (buildreq): Add gvvaughan/ldoc-next-1.

	slingshot: sync with upstream, for rockspecs in $buildreq.
	* slingshot: Sync with upstream.
	* bootstrap: Sync with slingshot.

	zmacs: expand \\[command-name] references in docstrings.
	* lib/zmacs/zlisp/help.zl (expand_kbd_refs): Replace and
	\\[command-name] with the first key-binding found that invokes
	command-name when displaying docstrings.
	(write_function_description, write_key_description)
	(write_variable_description): Use it.
	* NEWS: Update.

2014-01-06  Gary V. Vaughan  <gary@gnu.org>

	zmacs: report source file in describe-* function output.
	* lib/zmacs/eval (Defun, Defvar): Add a new 'source' parameter,
	and record it in the symbol plist.
	* lib/zmacs/zlc (defun, defvar): Generate the additional 'source'
	parameter.
	* lib/zmacs/zlisp/help.zl (describe-function, describe-key)
	(describe-variable): Report the source file when present in the
	appropriate symbol plist.
	* tests/describe-function.el, tests/describe-function.output,
	tests/describe-key.el, tests/describe-key.output,
	tests/describe-variable.el, tests/describe-variable.output,
	tests/interactive/describe-function.el,
	tests/interactive/describe-function.output,
	tests/interactive/describe-key.el,
	tests/interactive/describe-key.output,
	tests/interactive/describe-variable.el,
	tests/interactive/describe-variable.output: Adjust.

	zmacs: show current bindings in describe-function output.
	* lib/zmacs/zlisp/help.zl (write_function_description): If there
	are any current key bindings for this function, list them.
	* lib/zz/commands/help.lua: And again!
	* NEWS: Update.

	zmacs: factor out where_is helper function.
	* lib/zmacs/zlisp/bind.zl (gather_bindings, where-is): Move
	binding collection from here...
	* lib/zmacs/bind.lua: New file.  ...to here.
	* lib/zmacs/zmacs.mk (dist_zmacsdata_DATA): Adjust.
	* lib/zz/commnads/bind.lua, lib/zz/bind.lua, lib/zz/zz.mk: And
	again!

	zile: factor out `texi()` function.
	* lib/zmacs/eval.lua (Defun, Defvar): Now that we have no texi
	markup in docstrings, no need to call texi() any more.
	* lib/zile/lib.lua (texi): Move from here...
	* lib/zz/eval.lua (texi): ...to here.  It's not used anywhere
	else now.

	registers: factor out of zile and into individual editors.
	The shared register helper functions in zile are too tightly
	coupled with the editor functions to be useful alone.
	* lib/zile/registers.lua (regs, register_isempty, register_store)
	(regnum, write_registers_list): Move from here...
	* lib/zz/commands/registers.lua, lib/zmacs/zlisp/registers.zl:
	...to here.
	* lib/zile/registers.lua: Remove.
	* lib/zile/zile.mk (dist_pkgdata_DATA): Adjust.

2014-01-05  Gary V. Vaughan  <gary@gnu.org>

	zmacs: spell keyboard_quite correctly!
	* lib/zmacs/zlisp/registers.zl (copy-to-register)
	(insert-register): s/keyboard_quite/keyboard_quit/.
	* lib/zz/commands/registers.lua (copy_to_register)
	(insert_register): Likewise.

	zmacs: add command signatures to describe-function output.
	* lib/zile/Cons.lua (Cons:mapconcat): New method. Apply a
	function to each element of a Cons list.
	(Cons:filter): New method. Filter a Cons list with a predicate
	function.
	* lib/zmacs/zlc (isname): Predicate function to recognise valid
	argument names.
	(lambda): Support '&optional' and the like in argument lists,
	by filtering using isname() as the Lua arguments are generated.
	(defun): If a command signature does not start the existing
	docstring text, then use the full full lamba argument list to
	generate one, using isname() to choose which elements need to
	be upper-cased.
	* lib/zmacs/zlisp/bind.zl, lib/zmacs/zlisp/buffer.zl,
	lib/zmacs/zlisp/edit.zl, lib/zmacs/zlisp/file.zl,
	lib/zmacs/zlisp/help.zl, lib/zmacs/zlisp/killring.zl,
	lib/zmacs/zlisp/line.zl, lib/zmacs/zlisp/lisp.zl,
	lib/zmacs/zlisp/macro.zl, lib/zmacs/zlisp/marker.zl,
	lib/zmacs/zlisp/minibuf.zl, lib/zmacs/zlisp/move.zl,
	lib/zmacs/zlisp/registers.zl, lib/zmacs/zlisp/search.zl,
	lib/zmacs/zlisp/variables.zl, lib/zmacs/zlisp/window.zl:
	Ensure parameter names in `(lambda (args)` match docstring
	references.  Correct out-dated docstrings, and remove
	texinfo style markup in favour of Emacs docstring syntax.
	* lib/zmacs/zmacs.mk (lib/zmacs/commands.lua): Also regenerate
	if zlc has been changed.
	* NEWS: Update.

	zile: display minibuf errors correctly in batch mode.
	* lib/zile/minibuf.lua (minibuf_refresh): In batch mode, still
	pass the minibuf contents to term_minibuf_write, even though
	there is no cur_wp.
	* lib/zmacs/main.lua (process_args): Don't try to display in
	the minibuf area before we know whether we'll be in batch mode
	at the end of arguments.  Instead pass back any error message
	to the caller.
	(main): Action error message from process_args once
	term_minibuf_write knows whether there is a window to display
	in or not.
	* lib/zz/zz.lua (process_args, main): And again!

	travis: check `make install` mode works.
	* travis.yml.in: Re-`configure --prefix=...` before local install.
	* .travis.yml: Regenerate.

	configury: re-enable './configure; make; sudo make install` mode.
	* bin/zmacs, bin/zz: Reset LUA_INIT and LUA_INIT_5_2 before
	re-execing with $LUA.
	Also, if @datadir@ has been substituted with a real filepath,
	add it to LUA_PATH before re-execing.
	* lib/zmacs/zmacs.mk (lib/zmacs/commands.lua): Reset LUA_INIT
	and LUA_INIT_5_2 before running zlc.
	* local.mk (install_exec_hook, install-exec-hook): Support per-
	editor install-exec-hook rules.
	* lib/zmacs/zmacs.mk (zmacs-install-exec-hook): Substitute
	for @datadir@ after 'make install' so that zmacs can find its
	Lua sources.
	* lib/zz/zz.mk (zz-install-exec-hook): Likewise.
	* lib/zmacs/zmacs.in, lib/zz/zz.in: Improve wrapper comment.

	configury: remove write bit on generated files.
	* configure.ac (AC_CONFIG_FILES): In addition to adding an
	execute bit to lib/zmacs/zmacs and lib/zz/zz, remove the write
	bit from all generated files to prevent accidental editing.

	maint: be consistent with 'Written by' attributions.
	* bin/zmacs, bin/zz: Attribute Reuben.
	* lib/zmacs/zmacs.in, lib/zz/zz.in: Move 'Written by' to top in
	line with other files' layout.

	slingshot: sync with upstream.
	Fix the annoying contest.sed file dropping bug.
	* slingshot: Sync with upstream.
	* bootstrap: Sync with slingshot.

	doc: start LDoc based api documentation.
	* configure.ac (AC_PATH_PROG): Find a suitable ldoc.
	(SS_CONFIG_TRAVIS): Add ldoc rock dependency.
	* doc/config.ld: New file. List LDoc commented sources.
	* local.mk (EXTRA_DIST): Add doc/config.ld.
	(dist_doc_DATA, dist_classes_DATA, dist_modules_DATA): Distribute
	and install LDoc documentation.
	* .gitignore: Adjust.
	* .travis.yml: Regenerate.

	travis: use a custom travis.yml script.
	Slingshot travis.yml is for testing with various Lua versions,
	but Zile is Lua5.2 only, and needs to install with both LuaRocks
	and with `make install`.
	* bootstrap.conf (slingshot_files): Remove travis.yml.in.
	* .gitignore: Remove travis.yml.in.
	* travis.yml.in: New file, customised from slingshot version.
	* .travis.yml: Regenerate.

	maint: add a travis badge to README.
	* README.md: Add a travis badge to show build status at github.
	Also add a few missing links references.

	configury: AC_CONFIG_MACRO_DIRS is not available in older autotools.
	* configure.ac (AC_CONFIG_MACRO_DIRS): Rename from this...
	(AC_CONFIG_MACRO_DIR): ...to this.

	maint: update README.
	* README: Move from here...
	* README.md: ...to here.
	Rewrite in standard markdown, and fix out-of-date text.
	* .gitignore: Add README.

	maint: set next release number to 3.1.
	* configure.ac (AC_INIT): Set next release number to 3.1.

2014-01-04  Gary V. Vaughan  <gary@gnu.org>

	slingshot: activate travis support.
	* bootstrap.conf (slingshot_files): Add m4/slingshot.m4 and
	travis.yml.in.
	* configure.ac (SS_CONFIG_TRAVIS): Generate .travis.yml.
	* .gitignore: Update.
	* .travis.yml: Regenerate.

2014-01-04  Gary V. Vaughan  <gary@gnu.org>

	Revert "configury: add Autotest support."
	This reverts commit 0c6e0ddf5ef7589a47172c3aa025ea6faa4a374b.

	Autotests were a blind alley.  I'll write Specl checks in due course.

2014-01-04  Gary V. Vaughan  <gary@gnu.org>

	slingshot: sync with upstream, and simplify accordingly.
	* slingshot: Sync with upstream.
	* bootstrap: Update from slingshot.
	* bootstrap.slingshot: Remove. No longer required.
	* bootstrap.conf: Remove bootstrap slingshot source boilerplate.
	(func_ensure_changelog): Remove. Automated by slingshot now.

2014-01-02  Gary V. Vaughan  <gary@gnu.org>

	maint: update copyright notices to include 2014.
	* .x-update-copyright: Exclude additional files not owned by this
	project.
	* FAQ, README, bin/zmacs, bin/zz, bootstrap.conf,
	build-aux/sanity-cfg.mk, configure.ac, lib/zile/Cons.lua,
	lib/zile/Set.lua, lib/zile/astr.lua, lib/zile/bind.lua,
	lib/zile/buffer.lua, lib/zile/completion.lua,
	lib/zile/editfns.lua, lib/zile/estr.lua, lib/zile/file.lua,
	lib/zile/funcs.lua, lib/zile/getkey.lua, lib/zile/history.lua,
	lib/zile/keycode.lua, lib/zile/killring.lua, lib/zile/lib.lua,
	lib/zile/line.lua, lib/zile/macro.lua, lib/zile/marker.lua,
	lib/zile/minibuf.lua, lib/zile/redisplay.lua,
	lib/zile/registers.lua, lib/zile/search.lua,
	lib/zile/term_curses.lua, lib/zile/term_minibuf.lua,
	lib/zile/term_redisplay.lua, lib/zile/undo.lua,
	lib/zile/version.lua.in, lib/zile/window.lua, lib/zile/zile.mk,
	lib/zile/zlisp.lua, lib/zmacs/callbacks.lua, lib/zmacs/eval.lua,
	lib/zmacs/help2man-wrapper, lib/zmacs/keymaps.lua,
	lib/zmacs/main.lua, lib/zmacs/mkdotzmacs.lua,
	lib/zmacs/tests/message.at, lib/zmacs/tests/testsuite.at,
	lib/zmacs/tests/write-file.at, lib/zmacs/zlc,
	lib/zmacs/zlisp/bind.zl, lib/zmacs/zlisp/buffer.zl,
	lib/zmacs/zlisp/edit.zl, lib/zmacs/zlisp/file.zl,
	lib/zmacs/zlisp/help.zl, lib/zmacs/zlisp/killring.zl,
	lib/zmacs/zlisp/line.zl, lib/zmacs/zlisp/lisp.zl,
	lib/zmacs/zlisp/macro.zl, lib/zmacs/zlisp/marker.zl,
	lib/zmacs/zlisp/minibuf.zl, lib/zmacs/zlisp/move.zl,
	lib/zmacs/zlisp/registers.zl, lib/zmacs/zlisp/search.zl,
	lib/zmacs/zlisp/undo.zl, lib/zmacs/zlisp/variables.zl,
	lib/zmacs/zlisp/window.zl, lib/zmacs/zmacs.in,
	lib/zmacs/zmacs.mk, lib/zz/callbacks.lua,
	lib/zz/commands/bind.lua, lib/zz/commands/buffer.lua,
	lib/zz/commands/edit.lua, lib/zz/commands/file.lua,
	lib/zz/commands/help.lua, lib/zz/commands/killring.lua,
	lib/zz/commands/line.lua, lib/zz/commands/lua.lua,
	lib/zz/commands/macro.lua, lib/zz/commands/marker.lua,
	lib/zz/commands/minibuf.lua, lib/zz/commands/move.lua,
	lib/zz/commands/registers.lua, lib/zz/commands/search.lua,
	lib/zz/commands/undo.lua, lib/zz/commands/variables.lua,
	lib/zz/commands/window.lua, lib/zz/default-bindings.lua,
	lib/zz/eval.lua, lib/zz/keymaps.lua, lib/zz/main.lua,
	lib/zz/mkdotzz.lua, lib/zz/tests/message.at,
	lib/zz/tests/testsuite.at, lib/zz/tests/write-file.at,
	lib/zz/zz.in, lib/zz/zz.mk, local.mk, tests/run-lisp-tests.lua,
	tests/tests.mk: Bump copyright year.

	slingshot: sync with upstream.
	* slingshot: Update from upstream master, for update-copyright
	support.
	* bootstrap, bootstrap.slingshot: Update.

	zlisp: promote from zmacs to zile library module.
	Now that it's nicely encapsulated, move the zlisp implementation
	out of zmacs and into core where future editors can make use of
	it.
	* lib/zmacs/zlisp.lua: Move from here...
	* lib/zile/zlisp.lua: ...to here.
	* lib/zmacs/eval.lua: Adjust require statment.
	* lib/zmacs/zmacs.mk (dist_zmacsdata_DATA): Remove zlisp.lua.
	* lib/zile/zile.mk (dist_pkgdata_DATA): Add zlisp.lua.

2013-12-31  Gary V. Vaughan  <gary@gnu.org>

	refactor: use lua flow control for zz default bindings.
	* lib/zz/default-bindings.lua: Simplify by calling global_set_key
	in a loop over a table of bindings.

	zz: export useful Lua functions to zz evaluation sandbox.
	* lib/zz/eval.lua (sandbox): Add iterators, type access and
	data structure manipulation functions.

	where-is: fix root_bindings entry matching.
	* lib/zile/bind.lua (gather_bindings): Move from here...
	* lib/zmacs/zlisp/bind.zl (gather_bindings): ...to here, and
	simplify.
	(where-is): Match against what we store in root_bindings tree,
	command symbols, so it works again.
	* lib/zz/commands/bind.lua: And again!  Note this one is subtly
	different, because we store the raw functions in root_bindings
	for zz.

	zz: remove setq, use 'var = value' instead.
	Lua doesn't keep variables and functions in separate namespaces,
	so we throw everything in the 'sandbox', but keep symbols with
	metadata in 'symdef', along with some metamethod magic to let
	'sandbox' access the value fields of 'symdef' symbols.
	* lib/zz/commands/lua.lua (setq): Remove.
	* lib/zz/commands/variables.lua: Use real Lua values for Defvar
	calls, rather than zlisp read-syntax strings.  Adjust docstrings
	accordingly.
	* lib/zmacs/zlisp/variables.zl: Reflect docstring improvements.
	* lib/zz/eval.lua (symdef): New table for symbols.
	(sandbox): Add __index and __newindex metamethods.
	(Defun): Remove separate 'func' slot, use 'value' instead.
	Change 'function-documentation' plist key to just 'documentation'.
	Store new symbols in symdef table.
	Adjust all callers.
	(main_vars, metadata): Remove. Adjust callers to use sandbox or
	symdef instead.
	(Defvar): Assign a Defun like symbol to symdef, without __call
	metamethod, and 'interactive-form' and 'marshall-argtypes' plist
	entries.
	Adjust all callers.
	(init_buffer): Remove.
	* lib/zz/mkdotzz.lua: Output 'var = value' assignments.
	Use a mapatoms loop over non-callable symdef symbols.

	zmacs: encapsulate eval.lua implementation properly.
	* lib/zmacs/eval.lua (fetch_variable, get_variable): Mark local.
	(get_variable_number, get_variable_bool, set_variable)
	(set_variable_buffer_local): Mark local; add to export table.
	Adjust all callers.
	(init_buffer): Move from here...
	* lib/zile/buffer.lua (init_buffer): ...to here.
	* bin/zmacs (eval): Set this before requiring any zile modules,
	so that symbols can be resolved at compile time.
	* lib/zz/eval.lua: And again!

	zlisp: support functions and values in the same symbol.
	* lib/zmacs/zlisp.lua (deepmerge): New function to carefully
	merge symbols without triggering metamethods.
	(define): When a symbol is already set, merge fields from the
	new one in.

	zmacs: abstract out name-mangling, and apply consistently.
	* lib/zmacs/eval.lua (name_to_key): Rename from this...
	(mangle): ...to this.
	(Defun, Defvar): Use it.
	(fetch): Wrap lisp.fetch in name mangling function.
	(set_variable_buffer_local, fetch_variable, set_variable)
	(get_variable_doc): Use it.

	zmacs: use zlisp obarray for zmacs variables.
	Remodel variable storage after the way Emacs symbols hold
	function and variable values simultaneously.
	* lib/zmacs/eval.lua (metadata, main_vars): Remove.
	(Defvar): Construct a symbol and pass to lisp.define for handling
	in the main zlisp obarray.
	(set_variable_buffer_local): Adjust accordingly.
	(set_variable): Manage buffer-local variables in separate per-
	buffer obarrays, and falling back to global defaults.
	(init_buffer): Simplify accordingly.
	(name_to_key): Simplify.
	(fetch_variable): New function. Handle name mangling for fetching
	with canonical variable names, when fetching symbol from zlisp
	obarray.
	(get_variable): Simplify accordingly.
	* lib/zile/completion.lua (minibuf_read_variable_name): Move from
	here...
	* lib/zz/callbacks.lua (minibuf_read_variable_name): ..to here.
	* lib/zmacs/callbacks.lua (minibuf_read_variable_name): ...and
	here. Model after minibuf_read_function_name's use of mapatoms
	instead of get_variable_table.
	* lib/zmacs/eval.lua (get_variable_table): Remove.
	* lib/zmacs/zlisp/help.zl (write_variable_description): Use new
	symbol plists for docstring.
	(describe-variable): Pass symbol instead of symbol name.
	* lib/zmacs/zlisp/variables.zl (set-variable): Simplify.
	* lib/zmacs/mkdotzmacs.lua: Rewrite main loop with mapatoms.

	refactor: set universal-argument keys in default-bindings file.
	* lib/zile/bind.lua (get_function_by_keys): Don't treat Meta-
	digit keys specially...
	* lib/zmacs/default-bindings-el.lua: ...set them from here like
	everything else.
	* lib/zz/default-bindings.lua: Likewise.

	eval: replace awkward symbol table iterator with mapatoms api.
	* lib/zmacs/zlisp.lua (symbols): Remove.
	(mapatoms): New function to call a callback function for every
	symbol in obarray.
	* lib/zmacs/callbacks.lua (minibuf_read_function_name): Use it.
	* lib/zmacs/eval.lua: Adjust re-export symbols.
	* lib/zz/eval.lua, lib/zz/callbacks.lua: And again!

	refactor: remove symbol-table export.
	* lib/zmacs/zlisp.lua (sandbox): Rename from this...
	(obarray): ...to this.  Adjust all callers.
	(symbol): Remove from export table.

	eval: change structure of command symbol to match Emacs.
	In preparation for storing functions and variables in the same
	symbol structure:
	* lib/zmacs/eval.lua (Defun): Create and intern an Emacs-like
	symbol with name, func and plist slots; and move argtypes, doc
	and interactive to equivalent plist fields.
	Adjust all callers to new table structure.
	(setter): New function. Set a property list element on a symbol.
	* lib/zz/eval.lua: And again!

2013-12-31  Gary V. Vaughan  <gary@gnu.org>

	refactor: don't expose zlisp symbol table, use an accessor function.
	* lib/zmacs/eval.lua (command): Don't export this table...
	(fetch): ...but do export this accessor function.
	Adjust all callers.
	(get_function_by_name): Remove.
	Adjust all callers to use fetch instead.
	* lib/zile/bind.lua (get_function_by_keys): Take a new accessor
	argument, instead of the whole symbol table.
	Adjust all callers.


	Conflicts:
		lib/zmacs/zlisp/bind.zl

2013-12-31  Gary V. Vaughan  <gary@gnu.org>

	refactor: refine interfaces between zmacs.zlisp and zmacs.eval.
	* lib/zmacs/zlisp.lua (cons): Rename from this...
	(Cons): ...to this.  Add LDoc comments.
	* lib/zmacs/eval.lua: Adjust.
	(evalfile, evalstring, evaluate_expression): Rename from these...
	(evaluate_file, evaluate_string, evaluate_command): ...to these.
	Adjust all callers.
	(symbol_value): New function. Return symbol's value, given its
	name.
	* lib/zmacs/eval.lua: Reorganize & modernize to use an export
	table, and add LDoc comments to everything.
	(get_function_by_name): Remove duplicate,
	just re-export lisp.symbol_value in its place.
	(function_exists): Remove. Adjust one caller to use
	lisp.symbol_value instead.
	* lib/zz/eval.lua: And again.

	refactor: modernize zmacs/zlisp.lua source.
	* lib/zmacs/zlisp.lua: Add LDoc comments to all APIs.
	Declare everything as local, and then return a table of exported
	APIs at the end.
	Rationalize naming somewhat, but retain old names in export table.

	refactor: split Cons implementation from zlisp into its own file.
	* lib/zile/Cons.lua: New file. Implement Cons class.
	* lib/zile/zile.mk (dist_pkgdata_DATA): Add it.
	* lib/zmacs/zlisp.lua: Use it.
	(cons, metatable, Cons, Cons:nth, Cons:concat, Cons:reverse):
	Remove.

	refactor: split mini-Set container from zlisp into its own file.
	* lib/zile/Set.lua: New file. Implement Set container class.
	* lib/zile/zile.mk (dist_pkgdata_DATA): Add it.
	* lib/zmacs/zlisp.lua: Use it.
	(_mt, Set): Remove.

	refactor: remove get_function_interactive and simplify.
	* lib/zmacs/eval.lua (get_function_interactive): Remove.
	* lib/zmacs/zlisp/help.zl (write_key_description): Take symbol-
	functable argument instead of symbol-name, and simplify.
	(describe-key): Adjust.
	* lib/zz/eval.lua, lib/zz/commands/help.lua: Likewise.

	refactor: pass symbol-functables around instead of symbol-names.
	In zz, there's no need for symbol-names in general, we can
	just pass the Lua function itself around.  That lends itself
	to a nice refactor to minimise use of symbol-names internally
	in zmacs and zz, instead passing the symbol-functables.
	* lib/zz/default-bindings.lua: Change second argument from
	symbol-name to Lua function name.
	* lib/zz/commands/bind.zl (global_set_key): Change second
	parameter to accept a Lua function and bind it in the keymap.
	* lib/zz/callbacks.lua: Likewise.
	* lib/zmacs/eval.lua (get_function_doc): Remove unused function.
	* lib/zz/eval.lua (function_exists, get_function_by_name)
	(get_function_doc): Remove unused functions.

2013-12-29  Gary V. Vaughan  <gary@gnu.org>

	zz: use lua compatible variable name symbols, and simplify.
	* lib/zz/commands/variables.lua: Use '_' separator in multi-word
	variable names instead of '-'.
	* lib/zz/eval.lua (name_to_key): Remove, no need to transform
	between '_' and '-' delimitted variable names. Adjust all callers.


	Conflicts:
		lib/zz/commands/variables.lua

2013-12-29  Gary V. Vaughan  <gary@gnu.org>

	zz: use lua comments in initial scratch buffer header.
	* main.lua (main): In order for eval_buffer to work correctly in
	the *scratch* buffer, uses `--' lua comment prefix instead of
	`;;' elisp prefix.

	zz: output dotzz.sample in lua syntax.
	* build-aux/mkdotzz.lua: Update so that the generated file can be
	evaluated with Lua if moved to $HOME/.zz.

	zz: remove lisp interpreter.
	* lib/zz/zlisp.lua: Remove.
	* lib/zz/main.lua (options): Rewrite usage help to refer to Lua
	instead of Lisp.
	* lib/zz/eval.lua (usercmd): Rename from this...
	(sandbox): ...to this.
	* lib/zz/default-bindings-el.lua: Remove.
	* lib/zz/default-bindings.lua: Rewritten in Lua for sandboxed
	evaluation.
	* lib/zz/keymaps.lua (init_default_bindings): Evaluate
	default-bindings.lua instead of default-bindings-el.lua.
	(call_command): Allow variable number of arguments.  Do
	overwrite `thisflag' here, so that calling commands from inside
	the editor (as opposed to sandbox evaluation) will work
	properly.
	* lib/zz/callbacks.lua (get_and_run_command): Manage `thisflag'
	from here, where it will only affect sandbox evaluated commands;
	and in the middle of that lookup and run the named command.
	* lib/zz/zz.mk (src_zi_LUA): Adjust.

2013-12-28  Gary V. Vaughan  <gary@gnu.org>

	zz: eliminate zlc (zile lisp compiler).
	* lib/zz/zlisp/bind.zl, lib/zz/zlisp/buffer.zl,
	lib/zz/zlisp/edit.zl, lib/zz/zlisp/file.zl,
	lib/zz/zlisp/help.zl, lib/zz/zlisp/killring.zl,
	lib/zz/zlisp/line.zl, lib/zz/zlisp/lisp.zl,
	lib/zz/zlisp/macro.zl, lib/zz/zlisp/marker.zl,
	lib/zz/zlisp/minibuf.zl, lib/zz/zlisp/move.zl,
	lib/zz/zlisp/registers.zl, lib/zz/zlisp/undo.zl,
	lib/zz/zlisp/variables.zl, lib/zz/zlisp/window.zl: Rename
	from these...
	* lib/zz/commands/bind.lua, lib/zz/commands/buffer.lua,
	lib/zz/commands/edit.lua, lib/zz/commands/file.lua,
	lib/zz/commands/help.lua, lib/zz/commands/killring.lua,
	lib/zz/commands/line.lua, lib/zz/commands/lisp.lua,
	lib/zz/commands/macro.lua, lib/zz/commands/marker.lua,
	lib/zz/commands/minibuf.lua, lib/zz/commands/move.lua,
	lib/zz/commands/registers.lua, lib/zz/commands/undo.lua,
	lib/zz/commands/variables.lua, lib/zz/commands/window.lua: ...to
	these, and pre-compile from zlisp to Lua.
	* lib/zz/commands.lua: New file, requires all precompiled
	Lua sources above.
	* lib/zz/zlc: Remove.
	* lib/zz/zz.mk (dist_zzcmds_DATA, dist_zzdata_DATA): Adjust.
	(ZZ_V_ZLC, zz__v_ZLC, zz__v_ZLC_0, zz__v_ZLC_1)
	(lib/zz/commands.lua): Remove.

	zz: eliminate help2man-wrapper.
	* lib/zz/main.lua (process_args): Use gnu style indented option
	formatting.
	* lib/zz/zz.mk (doc/zz.1): Call lib/zz/zz binary directly.
	* lib/zz/help2man-wrapper: Remove.

	zz: rename lisp symbols to be valid lua symbol names.
	Use function names compatible with Lua symbols in preparation
	for removing the lisp interpreter.
	* lib/zz/commands/basic.zl (beginning-of-line, end-of-line)
	(backward-char, forward-char, goto-char, goto-line)
	(previous-line, next-line, beginning-of-buffer, end-of-buffer)
	(scroll-down, scroll-up): Rename from these...
	(beginning_of_line, end_of_line, backward_char, forward_char)
	(goto_char, goto_line, previous_line, next_line)
	(beginning_of_buffer, end_of_buffer, scroll_down, scroll_up):
	...to these resp. Adjust all callers.
	* lib/zz/commands/bind.zl (self-insert-command, where-is)
	(describe-bindings, global-set-key): Rename from these...
	(self_insert_command, where_is, describe_bindings)
	(global_set_key): ...to these, resp. Adjust all callers.
	* lib/zz/commands/buffer.zl (kill-buffer, switch-to-buffer):
	Rename from these...
	(kill_buffer, switch_to_buffer): ...to these, resp. Adjust all
	callers.
	* lib/zz/commands/file.zl (find-file, find-file-read-only)
	(find-alternate-file, insert-file, save-buffer, write-file)
	(save-some-buffers, save-buffers-kill-zi, insert-buffer):
	Rename from these...
	(find_file, find_file_read_only, find_alternate_file)
	(insert_file, save_buffer, write_file, save_some_buffers)
	(save_buffers_kill_zi, insert_buffer): ...to these, resp.  Adjust
	all callers.
	* lib/zz/commands/funcs.zl (keyboard-quit, suspend-zi)
	(toggle-read-only, auto-fill-mode, exchange-point-and-mark)
	(universal-argument, list-buffers, set-mark, set-mark-command
	( set-fill-column, quoted-insert, fill-paragraph, shell-command)
	(shell-command-on-region, delete-region, delete-blank-lines)
	(forward-line, backward-paragraph, forward-paragraph)
	(forward-sexp, backward-sexp, mark-word, mark-sexp)
	(mark-paragraph, mark-whole-buffer, back-to-indentation)
	(forward-word, backward-word, downcase-word, upcase-word)
	(capitalize-word, upcase-region, downcase-region)
	(transpose-chars, transpose-words, transpose-sexps)
	(transpose-lines): Rename from these...
	(keyboard_quit, suspend_zi, toggle_read_only, auto_fill_mode)
	(exchange_point_and_mark, universal_argument, list_buffers)
	(set_mark, set_mark_command, set_fill_column, quoted_insert)
	(fill_paragraph, shell_command, shell_command_on_region)
	(delete_region, delete_blank_lines, forward_line)
	(backward_paragraph, forward_paragraph, forward_sexp)
	(backward_sexp, mark_word, mark_sexp, mark_paragraph)
	(mark_whole_buffer, back_to_indentation, forward_word)
	(backward_word, downcase_word, upcase_word, capitalize_word)
	(upcase_region, downcase_region, transpose_chars)
	(transpose_words, transpose_sexps, transpose_lines): ...to these,
	resp. Adjust all callers.
	* src/help (describe-function, describe-key, describe-variable):
	Rename from these...
	(describe-function, describe-key, describe-variable): ...to
	these, resp. Adjust all callers.
	* lib/zz/commands/kill-ring.zl (kill-word, backward-kill-word)
	(kill-sexp, kill-region, copy-region-as-kill, kill-line): Rename
	from these...
	(kill_word, backward_kill_word, kill_sexp, kill_region)
	(copy_region_as_kill, kill_line): ...to these, resp. Adjust all
	callers.
	* lib/zz/commands/line.zl (indent-for-tab-command)
	(indent-relative, newline-and-indent, delet-char)
	(backward-delete-char, delete-horizontal-space, just-one-space)
	(tab-to-tab-stop, open-line): Rename from these...
	(indent_for_tab_command, indent_relative, newline_and_indent)
	(delet_char, backward_delete_char, delete_horizontal_space)
	(just_one_space, tab_to_tab_stop, open_line): ...to these.
	Adjust all callers.
	* lib/zz/commands/lisp.zl (execute-extended-command)
	(eval-buffer): Rename from these...
	(execute_extended_command, eval_buffer): ...to these, resp.
	Adjust all callers.
	* lib/zz/commands/macro.zl (start-kbd-macro, end-kbd-macro)
	(call-last-kbd-macro, execute-kbd-macro): Rename from these...
	(start_kbd_macro, end_kbd_macro, call_last_kbd_macro)
	(execute_kbd_macro): ...to these, resp. Adjust all callers.
	* lib/zz/commands/registers.zl (copy-to-register)
	(insert-register, list-registers): Rename from these...
	(copy_to_register, insert_register, list_registers): ...to
	these, resp. Adjust all callers.
	* lib/zz/commands/search.zl (search-forward, search-backward)
	(search-forward-regexp, search-backward-regexp)
	(isearch-forward, isearch-backward, isearch-forward-regex)
	(isearch-backward-regexp, query-replace): Rename from these...
	(search_forward, search_backward, search_forward_regexp)
	(search_backward_regexp, isearch_forward, isearch_backward)
	(isearch_forward_regex, isearch_backward_regexp, query_replace):
	...to these, resp. Adjust all callers.
	* lib/zz/commands/tbl_vars.zl (inhibit-splash-screen)
	(standard-indent, tab-width, tab-always-indent, indent-tabs-mode)
	(fill-column, auto-fill-mode, kill-whole-line, case-fold-search)
	(case-replace, ring-bell, highlight-nonselected-windows)
	(make-backup-files, backup-directory): Rename from these...
	(inhibit_splash_screen, standard_indent, tab_width)
	(tab_always_indent, indent_tabs_mode, fill_column)
	(auto_fill_mode, kill_whole_line, case_fold_search, case_replace)
	(ring_bell, highlight_nonselected_windows, make_backup_files)
	(backup_directory): ...to these, resp. Adjust all references.
	* lib/zz/commands/variables.zl (set-variable): Rename from this...
	(set_variable): ...to this. Adjust all callers.
	* lib/zz/commands/window.zl (delete-window, enlarge-window)
	(shrink-window, delete-other-window, other-window, split-window):
	Rename from these...
	(delete_window, enlarge_window, shrink_window)
	(delete_other_window, other_window, split_window): ...to these,
	resp. Adjust all callers.

	zz: remove last mention of Emacs from source.
	* lib/zz/main.lua: Remove Emacs from comments.

	zz: update usage message.
	* lib/zz/main.lua (process_args): Don't mention Emacs in usage message.

	zz: edit man text to reflect Zz rather than Zile.
	* lib/zz/man-extras (description): Reference Zile ancestry as
	opposed to Emacs.
	(author): Update to reflect Zz authorship.
	(see also): Remove Emacs. Add Zmacs.

	zz: rename save-buffers-kill-emacs to save-buffers-kill-zz.
	* lib/zz/zlisp/file.zl (save-buffers-kill-emacs): Rename from this...
	(save-buffers-kill-zz): ...to this.  Adjust all callers.

	zz: rename suspend-emacs to suspend-zz.
	* lib/zz/zlisp/bind.zl (suspend-emacs): Rename from this...
	(suspend-zz): ...to this.  Adjust all callers.

	zz: clone the zmacs editor as a foundation for zz.
	* local.mk (clean_local): New list of rules to run for `make
	clean'.
	(clean-local): Depends on the new $(clean_local) list.
	* lib/zmacs/zmacs.mk (clean-local): Rename from this...
	(zmacs-clean-local): ...to this.  Add it to clean_local list.
	* .gitignore: Move lib/zmacs ignores from here...
	* lib/zmacs/.gitignore: ...to here.
	* bin/zz: New file.  A copy of bin/zmacs with zz substituted for
	zmacs throughout.
	* lib/zz: New directory. Likewise.
	* local.mk: Include new lib/zz/zz.mk fragment.
	* configure.ac (AC_CONFIG_FILES): Add lib/zz/zz.
	* FAQ: New Zz Q&A.
	* NEWS: Update.

	zmacs: hardcode prog.name to "zmacs".
	* lib/zmacs/main.lua: Unconditionally set prog.name to zmacs, because
	we use it to determine the user resource file name, and to display
	error messages, so don't want it to be messed up when zmacs is called
	from a soft-link or a shell alias.
	Reported by Reuben Thomas

	zmacs: fix typos in indent-tabs-mode docstring.
	* lib/zmacs/zlisp/variables.zl (indent-tabs-mode): Escape
	nested quotes and wrap TAB key in @kbd markup.

	refactor: decouple zile completion functions from main_vars.
	* lib/zmacs/eval.lua (get_variable_table): New function. Return
	main_vars.
	* lib/zile/completion.lua (minibuf_read_variable_name): Rather
	than assuming main_vars will be set and available, use the new
	get_variable_table().

	eval: use func-tables for symbol values.
	By sharing a metatable with a __string metamethod that returns
	a symbol-value's associated name, and a __call metamethod for
	marshalling arguments, many accessors can be removed.
	* lib/zmacs/eval.lua (symbol_mt): New metatable for symbol
	values.
	(Defun): Save 'argtypes' and 'func', but return a simpler table
	with symbol_mt as a metatable.
	(get_function_by_name, execute_function): Simplify.
	(name_map): Remove. Remove all callers.
	* lib/zile/lib.lua (iscallable): New function to detect functions
	and objects with a __call metamethod.
	* lib/zile/bind.lua (walk_bindings, get_key_sequence)
	(get_function_by_keys): Use it.
	(get_function_name_by_keys): Remove. Use __tostring instead;
	adjust all callers.
	* lib/zmacs/keymaps.lua (init_default_bindings): Simplify.
	* lib/zmacs/zlisp/help.zl (describe-key): Likewise.

	bind: store actual function (not function names) in key bindings.
	* lib/zile/bind.lua (walk_bindings): Return functions not
	function names.
	(get_function_by_keys, get_function_name_by_keys): Add a
	symtab argument for looking up functions.
	* lib/zmacs/keymaps.lua (init_default_binidings): Store actual
	functions in root_bindings.
	* lib/zmacs/eval.lua (name_map): New table, for looking up the
	name of a function.
	(Defun): Create a name_map entryp
	(get_function_by_name): Return the named function.
	(get_function_name): Return the name of a given function.
	(execute_function): Lookup a named function as before, but also
	allow passing a function directly.
	* lib/zmacs/zlisp/bind.zl (print_binding): Use get_function_name.
	(write_bindings_list): Use get_function_by_name.
	* lib/zmacs/zlisp/help.zl (describe_key): Use
	get_function_name_by_keys to lookup a binding.
	* lib/zmacs/callbacks.lua (get_and_run_command): Adjust.

2013-12-27  Gary V. Vaughan  <gary@gnu.org>

	zmacs: upgrade shell-command-on-region to match Emacs 24.
	* tests/shell-command-on-region-2.el: New test for Emacs 24
	four argument semantics.
	* tests/shell-command-on-region-2.output: Expected output.
	* tests/shell-command-on-region.el: The fourth 't' argument now
	means 'output to the current buffer', and we need a new fifth
	't' argument to specify replacement of the region.
	* lib/zile/buffer.lua (replace_estr, warn_if_readonly_buffer)
	(warn_if_no_mark, calculate_the_region, goto_offset): Add an
	optional final bp parameter to override default use of current
	buffer.
	* lib/zile/funcs.lua (pipe_command): Reflect Emacs 24 semantics
	by taking output parameter to specify output-buffer, and new
	input parameter containing optional command input string.
	* lib/zmacs/zlisp/edit.zl (shell-command, shell-command-on-region):
	Improve docstrings in line with changes to Emacs 24, and simplify
	implementation around improved pipe_command.
	* NEWS: Update.

	zmacs: simplify mkdotzmacs.lua variable lookup.
	* lib/zmacs/mkdotzmacs.lua: Don't require deleted zile.variables
	module.
	* bin/zmacs: Likewise.
	* lib/zmacs/mkdotzmacs.lua: Use get_variable_doc to lookup
	function doc-strings, and reference defaults directly rather than
	unused val field.

2013-12-26  Gary V. Vaughan  <gary@gnu.org>

	zmacs: simplify variable get/set interfaces.
	Mantain a consistent abstraction between internally tabulated
	"_" variables and zlisp "-" delimited equivalents, by way of
	an internal API.
	* lib/zile/variables.lua: Remove.
	* lib/zile/zile.mk (dist_pkgdata_DATA): Remove
	lib/zile/variables.lua.
	* lib/zmacs/eval.lua (varname_map): Remove.
	(main_vars): Rewrite as a proxy table manager to automatically
	convert between zlisp "-" delimited and zile "_" delimited
	variable names.
	(Defvar, est_variable_buffer_local, get_variable)
	(get_variable_bool, set_variable): Rewrite accordingly.
	(get_variable_doc): New function, return variable doc-strings.
	* lib/zmacs/zlisp/help.zl (describe-variable): Use
	get_variable_doc() to abstract access to variable metadata.
	* lib/zile/buffer.lua (init_buffer): Move from here...
	* lib/zmacs/eval.lua (init_buffer): ...to here, and add buffer-
	local variable table.

	tests: use zmacs wrapper script to set paths correctly.
	* tests/run-lisp-tests.lua (zile_cmd): Use lib/zmacs/zmacs path-
	setting bin/zmacs wrapper.

	maint: reflect recent file renames in README.
	* README: Version dependencies are now in bin/zmacs.
	Reported by Reuben Thomas.

	zlisp: t and nil are special forms, not variable references.
	* lib/zmacs/eval.lua (evalexpr): Intercept nil and t expressions
	before trying to find their valuas.

	configury: don't generate zmacs.1 before zmacs itself is ready.
	* lib/zmacs/zmacs.mk (doc/zmacs.1): Depend on dist_zmacsdata_DATA
	to make sure all zmacs sources are available before running
	help2man.
	(zmacs_zmacs_DEPS): Remove unused nodist_zmacsdata_DATA reference.

	rockspecs: lua-stdlib 35 was renamed back to stdlib in LR repo.
	* rockspec.conf (dependencies): Rename lua-stdlib back to stdlib
	to match LuaRocks repo renaming.

2013-12-24  Gary V. Vaughan  <gary@gnu.org>

	zmacs: less cryptic message when no suitable LUA is available.
	* bin/zmacs: When the shell header tries and fails to find a
	LUA interpreter to re-exec with, list the commands that were
	not found, and how to solve it.

	zmacs: generate variable initialisation code with zlc.
	* bin/zmacs: Remove zmacs.variable requirement.
	* lib/zmacs/zlc: Output Defvar import code.
	(writef): New function. Short-cut for io.write +
	string.format.
	(defvar): New zlisp handler for variable definitions.
	(make-variable-buffer-local): New zlisp handler for tagging
	buffer local variables.
	(local, var): Rename from this...
	(localfun, localvar): ...to this. Adjust all callers.
	* lib/zmacs/commands/: Move from here...
	* lib/zmacs/zlisp/: ...to here.
	* lib/zile/variables.lua (set_variable_buffer_local): New function
	used by 'make-variable-buffer-local' output from zlc.
	* lib/zmacs/variables.zl (Defun): Move from here...
	* lib/zmacs/eval.zl (M.Defun): ...to here.
	* lib/zmacs/variables.zl: Remove...
	* lib/zmacs/zlisp/variables.zl: ...and rewrite here in zlisp.
	* lib/zmacs/zmacs.mk (zmacscmdsdir, dist_zmacscmds_DATA): Adjust.

2013-09-28  Gary V. Vaughan  <gary@gnu.org>

	maint: update the FAQ.
	* FAQ: Update the questions and answers to reflect the change of
	direction in the Zile project.

	maint: update the AUTHORS file.
	* AUTHORS: updated.

	zile: supply canonical variable names for lookup.
	* lib/zmacs/tbl_vars.lua: Remove.
	* lib/zmacs/variables.lua (Defvar): Define a function to
	populate main_vars using canonical variable names, and a new
	table 'varname_map' to convert between editor specific naming
	conventions and canonical names.
	Rewrite all variable definitions from tbl_vars.lua using Defvar.
	* bin/zmacs, lib/zmacs/mkdotzmacs.lua: require zmacs.variables
	not zmacs.tbl_vars.
	* lib/zmacs/zmacs.mk (dist_zmacsdata_DATA): Remove tbl_vars.lua.
	Add variables.lua.
	(doc/dotzmacs.sample): Likewise.
	* lib/zile/variables.lua (get_variable_bp, set_variable):
	Canonicalise editor-specific variable names.
	* lib/zile/completion.lua (minibuf_read_variable_name): Get list
	of completions from varname_map.
	* lib/zile/buffer.lua (init_buffer, tab_width): Lookup using
	canonical variable names.
	* lib/zile/editfns.lua (ding): Likewise.
	* lib/zile/file.lua (backup_and_write): Likewise.
	* lib/zile/line.lua (fill_break_line, insert_tab): Likewise.
	* lib/zile/search.lua (search): Likewise.
	* lib/zile/term_redisplay.lua (calculate_highlight_region):
	Likewise.

	zmacs: fix a char-out-of-range crash in (universal-argument).
	Fix a zmacs crash on key sequences such as "\M-35\RIGHT".
	* lib/zmacs/commands/bind.zl (universal-argument): Guard against
	non-ASCII key presses before passing to string.char.
	* NEWS: Updated.

	zmacs: separate copyright notices for manual and splash screen.
	* lib/zile/version.lua.in (M.COPYRIGHT_NOTICE): Move content
	from here...
	* lib/zmacs/main.lua (splash_str): ...to here.
	* lib/zile/version.lua.in (M.COPYRIGHT_NOTICE): Revert to
	previous text, so that manual page doesn't reference key chords.

2013-09-27  Gary V. Vaughan  <gary@gnu.org>

	Merge branch 'lua'
	Move lua branch onto master.
	Support for C Zile 2.4.x can be made on branch-2.4.


	Conflicts:
		Makefile.am
		build-aux/Zile.pm
		build-aux/mkfuncs.pl
		build-aux/mkvars.pl
		build-aux/zile-help2man-wrapper
		cfg.mk
		doc/man-extras
		gl/lib/regcomp.c.diff
		gl/lib/regex.h.diff
		m4/.gitignore
		m4/ax_with_curses.m4
		src/.gitignore
		src/Makefile.am
		src/astr.c
		src/astr.h
		src/basic.c
		src/bind.c
		src/buffer.c
		src/buffer.h
		src/completion.c
		src/editfns.c
		src/eval.c
		src/extern.h
		src/file.c
		src/funcs.c
		src/getkey.c
		src/help.c
		src/history.c
		src/keycode.c
		src/killring.c
		src/line.c
		src/lisp-tests/delete_horizontal_space.el
		src/lisp-tests/describe_variable.output
		src/lisp-tests/disabled/scroll_up.el
		src/lisp-tests/global_set_key.output
		src/lisp-tests/insert_char.output
		src/lisp.c
		src/lists.c
		src/lists.h
		src/macro.c
		src/main.c
		src/main.h
		src/marker.c
		src/marker.h
		src/memrmem.c
		src/memrmem.h
		src/minibuf.c
		src/redisplay.c
		src/registers.c
		src/search.c
		src/term_curses.c
		src/term_minibuf.c
		src/term_redisplay.c
		src/undo.c
		src/variables.c
		src/window.c
		src/window.h
		tests/.gitignore
		tests/capitalize-word.el
		tests/delete-horizontal-space.el
		tests/describe-function.output
		tests/describe-variable.output
		tests/downcase-word.el
		tests/forward-word.el
		tests/insert-buffer.el
		tests/insert-file.el
		tests/interactive/backward-delete-char.output
		tests/interactive/describe-key.output
		tests/interactive/disabled/backward-delete-char.output
		tests/interactive/global-set-key.el
		tests/interactive/global-set-key.output
		tests/mark-sexp.el
		tests/newline.el
		tests/open-line.el
		tests/previous-line.el
		tests/upcase-word.el
		tests/zile-only/fixed-screen/scroll-up.el
		tests/zile-only/global-set-key.output
		tests/zile-only/goal-column.el

2013-09-27  Gary V. Vaughan  <gary@gnu.org>

	zmacs: set help resource buffers to unmodified.
	* lib/zmacs/commands/help.zl (find_or_create_buffer_from_module):
	Set current buffer modified flag to false after inserting module
	text content.

	maint: note Zile direction changes in NEWS.
	* NEWS (Miscellaneous): Note changes to Zile.
	(Zmacs): Note zmacs provides functionality formerly known as zile.

	maint: mention configure free installs in NEWS.
	* NEWS (Build-related): Note configure-free installation support.

	docs: support \C-c\C-n for in editor NEWS browsing.
	* lib/zmacs/commands/help.zl (view-emacs-news): Display NEWS in a
	read-only buffer.
	* lib/zmacs/default-bindings-el.lua: Bind \C-c\C-n and variants
	to view-emacs-news.
	* NEWS: Update.

2013-09-26  Gary V. Vaughan  <gary@gnu.org>

	configury: make sure to always use the zmacs wrapper in-tree.
	* lib/zmacs/help2man-wrapper: Call the zmacs wrapper.
	* lib/zmacs/zmacs.mk: Likewise.
	Avoid breaking VPATH builds while we're here.

2013-09-26  Gary V. Vaughan  <gary@gnu.org>

	zmacs: distribute all luarocks install files.
	* lib/zmacs/zmacs.in: Move from here...
	* bin/zmacs: ...to here.  Remove all configure substitutions.
	Dynamically search for a suitable Lua binary and re-execute.
	* lib/zmacs/zmacs.in: A new wrapper script to set local LUA_PATH
	directories so that zmacs can be run from the build tree.
	* configure.ac (AC_CONFIG_FILES): Generate lib/zmacs/zmacs.
	* local.mk, lib/zmacs/zmacs.mk: Simplify accordingly.

	* .gitignore: Adjust.

2013-09-26  Gary V. Vaughan  <gary@gnu.org>

	maint: install rockspec with module rule.
	By renaming any non-lua files with a .lua extension, we can avoid
	running configure or make install, and use LuaRocks module list
	to copy the prebuilt files into place.  This also allows removing
	the last barrier to being fully relocatable.
	* lib/zmacs/default-bindings.el: Rename from this...
	* lib/zmacs/default-bindings-el.lua: ...to this.
	* lib/zmacs/keymaps.lua (init_default_bindings): Adjust.
	* lib/zmacs/zmacs.mk (dist_zmacsdata_DATA): Likewise.
	* lib/zmacs/zmacs.in (PATH_DOCDIR): Remove.
	* local.mk (mkrockspecs_args): Switch to LuaRocks module build.
	* rockspec.conf (copy_directories): Remove docs.
	* slingshot: Sync with upstream for sorted rockspec module list
	* lib/zmacs/zmacs.mk (zmacsdocdatadir): Install location for doc
	resource files.
	(dist_zmacsdocdata_DATA): Resources to generate, and a rule to
	generate from the raw text files they represent.
	(EXTRA_DIST): Add lib/zmacs/command.lua.
	(DISTCLEANFILES): Move lib/zmacs/commands.lua from here...
	(MAINTAINERCLEANFILES): ...to here.
	Add the generated doc resources.
	* lib/zmacs/commands/help.zl (describe-copying)
	(describe-no-warranty, view-emacs-FAQ): New interactive functions
	for fetching and displaying help resources.
	* lib/zmacs/default-bindings-el.lua: Bind \C-h and F1 keymaps to
	the new functions.
	* lib/zile/version.lua.in (M.COPYRIGHT_NOTICE): Update to mention
	new help key-chords.
	* lib/zmacs/main.lua (splash_str): Likewise.
	* .gitignore: Add lib/zmacs/doc.

	maint: commit COPYING license.
	* COPYING: Check in to avoid a warning from Automake.

	configury: make rules cleanup.
	* lib/zmacs/zmacs.mk (lib/zmacs/zmacs.1.in): Use the sed and
	$(MKDIR_P) idiom to make a lib/zmacs directory if necessary.
	(clean-local): Append `|| :' to avoid an ignored error output
	from the rule.

	maint: bump release version to 4.
	* configure.ac (AC_INIT): Bump release version to 4.

2013-09-25  Gary V. Vaughan  <gary@gnu.org>

	maint: post-release administrivia.
	* NEWS: Add header line for next release.
	* .prev-version: Record previous version.
	* ./local.mk (old_NEWS_hash): Auto-update.

	Release version 3
	* NEWS: Record release date.

	bindings: search default-bindings.el along package.path.
	For zmacs to be location independent, it mustn't hardcode the
	path to default-bindings.el.
	* lib/zmacs/zmacs.in (PATH_DATA): Remove.
	* lib/zmacs/keymaps.lua (init_default_bindings): Use the standard
	package.path directories to look for default-bindings.el.

	dist: make sure generated version.lua is distributed.
	* src/Makefile.am (EXTRA_DIST): Add src/version.lua

	configury: run AC_PROG_SED and AC_PROG_EGREP for release.mk et. al.
	* configure.ac: Add AC_PROG_SED and AC_PROG_EGREP.

	maint: refactor gnulib cfg.mk for slingshot.
	* cfg.mk: Move from here...
	* build-aux/sanity-cfg.mk: ...to here.
	(update-copyright-env, old_NEWS_hash): Move from here...
	* local.mk (update_copyright_env, old_NEWS_hash): ...to here.

	tests: require 'make tests-check-local' for old zile testsuite.
	* tests/Makefile.am (check_local): Comment out addition of
	tests-check-local.

	refactor: make zmacs location independent for luarocks install.
	LuaRocks requires that installed files work independently of
	their install location.
	* rockspec.conf (build): Copy bin and doc directories.
	* zmacs/Makefile.am (zmacs_install_edit, zmacs_inplace_edit):
	Adjust path substitutions.
	(zmacs/zmacs, zmacs/dotzmacs.sample, zmacs/zmacs.1): Move frome
	here...
	(bin/zmacs, doc/dotzmacs.sample, doc/zmacs.1): ...to here.
	(doc_DATA, man_MANS): Install from $(builddir)/doc.
	(bin_SCRIPTS): Install from $(builddir)/bin.
	* zmacs/callbacks.lua, zmacs/eval.lua, zmacs/keymaps.lua,
	zmacs/main.lua, zmacs/zlc, zmacs/zmacs.in: Add zile or zmacs
	prefix to require statements as required.
	* tests/Makeflie.am (tests-check-local): Refer to new zmacs path.
	* tests/run-lisp-tests.lua (zile_cmd): Likewise.
	* src/, zmacs/: Move from here...
	* lib/zile, lib/zmacs: ...to here. Adjust all callers.
	* build-aux/.gitignore, m4/.gitignore, src/.gitignore,
	tests/.gitignore, zmacs/.gitignore, zmacs/tests/.gitignore:
	Consolidate from here...
	* .gitignore: ...to here.

	maint: remove unused gl/top/maint.mk.diff.
	* gl/top/maint.mk.diff: Remove.

	slingshot: sync with upstream.
	* slingshot: Update from upstream master, for gitlog_args
	support.
	* local.mk (git_log_fix, git_log_args): Rename from this...
	(gitlog_fix, gitlog_args): ...to this, for compatibility with
	slingshot.

	maint: fix another luaposix.getopt API incompatibility.
	* zmacs/main.lua (process_args): optind and optarg have swapped
	positions in the return values from getopt.
	Make sure to convert 'c' back to an integer before checking for
	non-option arguments.

2013-09-24  Gary V. Vaughan  <gary@gnu.org>

	luarocks: initial rockspec support with slingshot.
	* configure.ac (AC_INIT): Use a single digit release number.
	* rockspec.conf: New file. Input for mkrockspecs.
	* .gitignore: ignore generated rockspecs.

	slingshot: move from gnulib to slingshot.
	We only use build-scripts from gnulib, so remove it and get the
	scripts from slingshot instead.
	* slingshot: Added as a new subproject.
	* bootstrap.slingshot: New file.
	* bootstrap: Update from slingshot.
	* .gitmodules, gnulib, gl/build-aux/bootstrap.in,
	gl/build-aux/do-release-commit-and-tag.diff,
	gl/build-aux/extract-trace, gl/build-aux/funclib.sh,
	gl/build-aux/inline-source, gl/build-aux/options-parser,
	gl/doc/bootstrap.texi, gl/modules/bootstrap,
	gl/modules/extract-trace, gl/modules/funclib.sh,
	gl/modules/inline-source, gl/build-aux/options-parser,
	m4/ax_compare_versions, m4/ax_lua.m4, m4/ax_with_prog.m4: Remove.
	* Makefile.am: Remove duplicates of slingshot/Makefile.am, and
	then move the rest from here...
	* local.mk: ...to here.
	* configure.ac: Simplify accordingly.
	* bootstrap.conf: Likewise.
	* .gitignore: Update to match.

	maint: update to latest luaposix getopt API.
	Since v29, luaposix.getopt_long has been replaced by posix.getopt,
	which returns arguments in a different order, and uses strings
	instead of bytes for character returns.
	* zmacs/main.lua (process_args): Update to luaposix >= 29 getopt
	API.
	* zmacs/zmacs.in: Require at least luaposix 29.

	maint: update README to reflect zmacs split.
	* README: Update in light of new "Zile Implements Lua Editors"
	direction.

2013-05-01  Reuben Thomas  <rrt@sc3d.org>

	configury: don't pass -Werror to AM_INIT_AUTOMAKE.
	Makefile.am (AM_INIT_AUTOMAKE): Bleeding-edge automake emits
	warnings for features required to build with automake <= 1.12.x.

	Makefile.am: don't pass -Werror to AM_INIT_AUTOMAKE
	Bleeding-edge automake emits warnings for features required to build
	with automake <= 1.12.x.

2013-04-12  Gary V. Vaughan  <gary@gnu.org>

	completion: fix TAB completion to shortest common prefix (savannah #35112)
	* src/completion.lua (completion_try): When building the list of
	potential completions, only insert matches that are at least as
	long as the search string.  Previously, a search that has both a
	longer and a shorter match on the common substring of all three,
	would be truncated to the shortest of all!

	Fix-Bug: https://savannah.gnu.org/bugs/index.php?35112

2013-04-11  Gary V. Vaughan  <gary@gnu.org>

	eval: be sure to load the eval module before calling its methods.
	* zmacs/callbacks.lua, zmacs/main.lua: Require the eval module
	into a local table, `lisp`, to provide the methods used elsewhere
	in these files.
	* src/minibuf.lua (functions_history, minibuf_read_function_name):
	Move from here...
	* zmacs/callbacks.lua: ...to here, where access to the lisp table
	makes sense.

2013-04-11  Reuben Thomas  <rrt@sc3d.org>

	tests/run-lisp-tests.lua: update posix.system calls to new API and name (posix.spawn)

2013-04-11  Gary V. Vaughan  <gary@gnu.org>

	zmacs: upgrade to latest upstream stdlib and luaposix.
	* zmacs/zmacs.in: Updrade dependency versions.
	* src/estr.lua, src/estr.lua: Load std.object to a local table.
	* zmacs/keymaps.lua: Likewise for posix and eval modules.
	* zmacs/zlc: Likewise for assorted local and stdlib modules.
	* zmacs/zlisp.lua: Likewise for stdlib io_ext module.

2013-02-07  Gary V. Vaughan  <gary@gnu.org>

	Revert "zlisp: add a cons list iterator."
	This reverts commit 2364d990561992460a0a17e414600e4fe1bc45cd.

	Conflicts:
		zmacs/eval.lua
		zmacs/zlisp.lua

2013-02-07  Gary V. Vaughan  <gary@gnu.org>

	zmacs: fix write-file command to accept filename argument.
	* zmacs/commands/file.zl (write-file): Accept a string-type
	filename argument in non-interactive mode, and write to that file
	without prompting when given.
	* zmacs/tests/write-file.at: New test to make sure it stays fixed!
	* zmacs/Makefile.am (TESTSUITE_AT): Add new write-file.at test.

	configury: add Autotest support.
	* configure.ac (AC_CONFIG_TESTDIR): Declare the Autotest testsuite.
	(AUTOM4TE, AUTOTEST): Substitute these for zmacs/Makeflie.
	* zmacs/Makefile.am: New rules to build and run an Autotest
	testsuite.
	(check_local): Add zmacs-check-local.
	* zmacs/tests/testsuite.at: New file. Testsuite preamble.
	* zmacs/tests/message.at: New test to check message works correctly
	in batch mode.

	configury: prepare for multiple tests suites.
	* Makefile.am (check_local): New make variable for included
	Makefiles to add their local checks rules to.
	(check-local): Depend on any rules listed in $(check_local).
	* tests/Makefile.am (check-local): Rename from this...
	(tests-check-local): ...to this.
	(check_local): Add tests-check-local.

	zmacs: add --batch support.
	* zmacs/main.lua (options): Add new --batch option.
	(bflag): New global flag to record whether --batch was passed.
	(process_args): Adjust.
	(main): Do not initialise terminal in batch mode, and then
	return before entering the command loop.
	(term_minibuf_write): Write directly to stdout in --batch mode.

	zlisp: implement message primitive.
	* zmacs/commands/minibuf.zl (message): New command.
	* zmacs/Makefile.am (dist_zmacscmds_DATA): Add new minibuf.zl
	file.

	zlisp: leverage lua error/pcall for parse errors.
	* zmacs/zlisp.lua (lex): Use error () to raise incomplete string
	error...
	(M.parse): ...so no need to propagate it here.
	Use error () to raise unmatched parentheses errors.
	(evalstring): Use pcall () to convert errors back to nil,errmsg
	format.
	* zmacs/eval.lua (M.loadstring): Likewise.
	(M.loadfile): Propagate parse errors caught by M.loadstring () or
	raised by io.slurp to caller.

	zlisp: use sets instead of equality tests to speed up the lexer.
	* zmacs/zlisp.lua (Set, _mt): New set type and metatable for
	creating stdilb "strict"-proof sets.
	(isskipped, isoperator, isdelimiter): New character sets.
	(lex): Use the sets instead of a sequence of equality tests.

	zlisp: collect and report basic parse errors.
	* zmacs/zlisp.zl (iton): New function to calculate file line
	number for a given index into the file contents.
	(M.parse::read): Capture and report on mismatched open or close
	parens, and incomplete strings at EOF.
	(M.evalstring, M.evalfile): Propagate errors correctly.
	* zmacs/commands/window.zl (screen-width, set-screen-height): Fix
	missing parens caught by error reporting.

	zlisp: disallow string delimiter in word tokens.
	To make detection of mismatched quotes easier, don't slurp stray
	`"' characters into a word token.
	* zmacs/zlisp.lua (lex): Stop collecting a "word" also upon reading
	a `"'.

	maint: remove bogus `,' from comment.
	* zmacs/zlisp.lua (lex): Remove a bogus `,' from a comment.

2013-02-03  Reuben Thomas  <rrt@sc3d.org>

	src/astr.c: remove no-longer unused zile_exit function.

2013-02-02  Gary V. Vaughan  <gary@gnu.org>

	maint: improve a comment by quoting parameter name.
	* zmacs/zlisp.lua (lex): Put quote marks around reference to the
	`kind' parameter for legibility.

2013-01-17  Gary V. Vaughan  <gary@gnu.org>

	zlc: new 'zlisp compiler', commands in zlisp now compile to lua.
	* zmacs/zlisp.lua (Cons:nth, Cons:concat): New methods for Cons
	cells.
	* zmacs/zlc: Use them to implement this new program, which
	* translates a command definition file in ZLisp into a Lua
	* implementation of the same.
	* zmacs/Makefile.am (EXTRA_DIST): Add zmacs/zlc.
	* zmacs/commands/lisp.lua (minibuf_read_function): Move from
	here...
	* zmacs/minibuf.lua: ...to here.
	* zmacs/commands/bind.lua, zmacs/commands/buffer.lua,
	zmacs/commands/edit.lua, zmacs/commands/file.lua,
	zmacs/commands/help.lua, zmacs/commands/killring.lua,
	zmacs/commands/line.lua, zmacs/commands/lisp.lua,
	zmacs/commands/macro.lua, zmacs/commands/marker.lua,
	zmacs/commands/move.lua, zmacs/commands/registers.lua,
	zmacs/commands/search.lua, zmacs/commands/undo.lua,
	zmacs/commands/variables.lua, zmacs/commands/window.lua: Remove.
	Factored into...
	* zmacs/commands/bind.zl, zmacs/commands/buffer.zl,
	zmacs/commands/edit.zl, zmacs/commands/file.zl,
	zmacs/commands/help.zl, zmacs/commands/killring.zl,
	zmacs/commands/line.zl, zmacs/commands/lisp.zl,
	zmacs/commands/macro.zl, zmacs/commands/marker.zl,
	zmacs/commands/move.zl, zmacs/commands/registers.zl,
	zmacs/commands/search.zl, zmacs/commands/undo.zl,
	zmacs/commands/variables.zl, zmacs/commands/window.zl: ...these,
	and rewritten in zlisp.
	* zmacs/Makefile.am (ZMACS_PATH): Add builddir to search path
	now that we generate zmacs/commands.lua instead of shipping
	it.
	* zmacs/zmacs.in: Remove old command includes.  Add new
	generated commands file.
	(package.path): Add builddir.
	* zmacs/Makefile.am (zmacs_install_edit, zmacs_inplace_edit):
	* Substitute builddir during macro expansion.
	(zmacscmdsdir): Installation directory for zlisp command
	definitions.
	(dist_zmacsdata_DATA): Remove old lua command definitions.
	(dist_zmacscmds_DATA): List zlisp command definition files.
	(nodist_zmacsdata_DATA): List zlc generated sources.
	(zmacs_zmacs_DEPS): Full list of file changes that zmacs depends
	upon.
	(zmacs/zmacs): Use it.
	(ZM_V_ZLC, zm__v_ZLC_, zm__v_ZLC_0, zm__v_ZLC_1): AM_V_GEN
	like implementation that echoes ZLC instead of GEN in silent
	mode.
	(zmacs/commands.lua): New rule describing how to build it.
	(DISTCLEANFILES): Include zmacs/commands.lua.
	* zmacs/.gitignore: Add commands.lua.

	zlisp: add a cons list iterator.
	* zmacs/zlisp.lua (Cons:cars): Iterator function for cons lists.
	(Cons:reverse): Simplified accordingly.
	(M.evalstring): Likewise.
	* zmacs/eval.lua (M.loadstring): Likewise.

	zlisp: split the base interpreter out into its own module.
	* zmacs/eval.lua (cons, parse, symbols): Move from here...
	* zmacs/zlisp.lua: New file. ...to here, along with supporting
	code.
	(define, evalfile, evalstring, evalexpr, call_command):
	Simplified versions of the eval.lua implementations.
	* zmacs/Makefile.am (dist_zmacsdata_DATA): Add zmacs/zlisp.lua.

	zlisp: use proper cons cells to simplify list handling.
	* zmacs/eval.lua (Cons.reverse): Class method to non-destructively
	reverse a cons list.
	(metatable): Metamethods for Cons.
	(M.cons): Constructor.
	(parse, M.Defun, M.execute_function, M.call_command): Simplify.
	(evaluateBranch, leEval, evaluateNode): Rename...
	(evalcommand, evalexpr, eval): ...to this.
	* zmacs/commands/lisp.lua (setq): Adjust.

	zlisp: rewrite the string tokenizer.
	* zmacs/eval.lua (read_char): Rename...
	(nextch): ...to this, and simplify.  The `i' parameter is now the
	index of the next unparsed character in `s', with an imaginary
	EOF character at index `#s + 1', so the returned index doesn't need
	a special condition anymore.
	(read_token): Rename...
	(lex): ...to this. Rewritten to accomodate the `i' invariant above,
	but also returning "string" and "incomplete string" token kinds
	for better diagnostics.  Several other improvements, including
	discarding multiple consecutive comments and whitespace on a single
	call.
	(lisp_read): Rename...
	(parse): ...to this. Adjust to work with improved lex above.

	refactor: zmacs/eval.lua cosmetic makeover.
	* zmacs/eval.lua: Put the declarations into a more logical order,
	and add spacers and comments to make it easier to understand what
	is going on.

	refactor: rename usercmd to symbol.
	* zmacs/eval.lua (usercmd): Rename...
	(symbol): ...to this. Adjust all callers.

	configury: no need for config.status built zmacs/zmacs.lua.
	* Makefile.am (install_edit, inplace_edit): Substitute @LUA@.
	* configure.ac (AC_CONFIG_FILES): Remove zmacs/zmacs.lua).
	* zmacs/zmacs.lua.in: Rename...
	* zmacs/zmacs.in: ...to this.
	* zmacs/Makefile.am (zmacs/zmacs): Simplify accordingly.
	(DISTCLEANFILES, MAINTAINERCLEANFILES): Likewise.
	(install-zmacs-hook): Adjust.

	refactor: move configured Lua strings into version.lua.
	* zmacs/zmacs.lua.in (PACKAGE, PACKAGE_NAME, PACKAGE_BUGREPORT)
	(VERSION, COPYRIGHT_STRING, COPYRIGHT_NOTICE): Move from here...
	* src/version.lua.in: ...to here.
	* src/.gitignore: Ignore version.lua.
	* zmacs/main.lua: Adjust.
	* configure.ac (AC_CONFIG_FILES): Add src/version.lua.
	* src/Makefile.am (dist_pkgdata_DATA): Add src/version.lua.

	zmacs: add screen size management commands.
	* zmacs/zmacs.lua.in (posix): Require at least 5.1.26 for
	curses.resizeterm command support.
	* zmacs/commands/window.lua (screen-height, screen-width):
	Display the current screen dimensions in the minibuffer.
	(set-screen-height, set-screen-size, set-screen-width): Change
	the current screen dimensions, one at a time, or both at once.

	curses: support resizeterm in latest luaposix.
	* term_curses.lua (term_resize): New function.

	lisp: bind \M-: to new eval-expression command.
	* zmacs/commands/lis..lua (eval-expression): Read a string from
	the minibuffer and evaluated it as lisp.
	* zmacs/default-bindings.el: Call it when \M-: is pressed.

	refactor: rename lisp-eval.lua to eval.lua.
	Enable some primitive future overloading with the lua loader;
	putting the lisp evaluator in zmacs/eval.lua in anticipation of
	a future Lua evaluator in src/eval.lua that the lisp evaluator
	will be an interface-compatible replacement for.
	* zmacs/lisp-eval.lua: Rename from this...
	* zmacs/eval.lua: ...to this.
	* zmacs/commands/bind.lua, zmacs/commands/buffer.lua,
	zmacs/commands/edit.lua, zmacs/commands/file.lua,
	zmacs/commands/help.lua, zmacs/commands/killring.lua,
	zmacs/commands/line.lua, zmacs/commands/lisp.lua,
	zmacs/commands/macro.lua, zmacs/commands/marker.lua,
	zmacs/commands/move.lua, zmacs/commands/registers.lua,
	zmacs/commands/search.lua, zmacs/commands/undo.lua,
	zmacs/commands/variables.lua, zmacs/keymaps.lua: Adjust.

2013-01-17  Reuben Thomas  <rrt@sc3d.org>

	maint: rewrite rationale for skipping sc_error_message_uppercase

	maint: remove unnecessary syntax-check suppressions.
	* cfg.mk (local-checks-to-skip): Remove sc_bindtextdomain and
	sc_error_message_period.  Update rationales comment below.

2013-01-17  Gary V. Vaughan  <gary@gnu.org>

	maint: start using git-version-gen.
	* .gitignore: Ignore new fallback .version file.
	* bootstrap.conf (gnulib_modules): Add git-version-gen.
	* configure.ac (AC_INIT): Use it.
	Also, show banner with version number at the top of configure
	runs.

	configury: correct {,DIST,MAINTAINER}CLEANFILES.
	* zmacs/Makefile.am (CLEANFILES): Only remove files that can
	be replaced immediately by rerunning 'make'.
	(DISTCLEANFILES): Only remove files added by running make in a
	freshly unpacked tarball.
	(MAINTAINERCLEANFILES): Add zmacs.lua.in.

	refactor: Makefile.am cosmetic make-over.
	* Makefile.am, zmacs/Makefile.am: Label sections and keep related
	items together.
	(NOTHING_ELSE): Use this at the end of file lists to make list
	changes easier and produce fewer merge conflicts.

	refactor: minimize lisp.execute_function() calls.
	When a direct function implementation is available, use it to avoid
	the extra stack frames involved in a nested lisp evaluation.
	* zmacs/commands.lua (goto-line, kill-buffer, switch-to-buffer)
	(find-file, find-alternate-file, insert-file)
	(save-buffers-kill-emacs, cd, insert-buffer, universal-argument)
	(fill-paragraph, delete-blark-lines, forward-line)
	(move-paragraph, mark-whole-buffer, just-one-space)
	(copy-to-register, insert-register, query-replace)
	(set-variable): Simplify and speed up with direct calls where
	available.

	zmacs: move lisp evaluator into zmacs directory.
	* src/lisp.lua: Move from here...
	* zmacs/lisp.lua: ...to here.
	* src/Makefile.am (src_zile_LUA): Remove src/lisp.lua.
	* zmacs/Makefile.am (zmacs_zmacs_LUA): Add zmacs/lisp-eval.lua.

	zmacs: remove mention of zile from zmacs docstring.
	* zmacs/commands/bind.lua (suspend-emacs): Remove mention of
	Zile.
	* zmacs/commands/file.lua (save-buffers-kill-emacs: Likewise.
	* Zmacs/commands/killring.lua (kill-region): Remove mention of
	Zile, and rewrap.

	lisp: don't hardcode dependency on particular lisp commands.
	Rearrange the code to call implementation functions directly,
	rather than using lisp.execute_function which assumes prior
	knowledge of what those functions are named.
	* src/buffer.lua (delete_region): Return false if no region is
	passed, otherwise call deactivate_mark() before returning.
	* src/funcs.lua (transpose_region): Call delete_region directly.
	* zmacs/commands/edit.lua (delete-region): Simplify.
	* zmacs/commands/bind.lua ((keyboard-quit): Simplify this...
	* zmacs/commands/move.lua  beginning-of-line, end-of-line):
	...and this, by factoring implementation...
	* src/minibuf.lua (keyboard_quit, beginning_of_line)
	(end_of_line): ...to here.
	* src/buffer.lua (check_modified_buffer): Call keyboard_quit
	directly.
	* src/file.lua (write_buffer): Ditto.
	* src/funcs.lua (minibuf_read_shell_command): Ditto.
	* src/minibuf.lua (minibuf_vread_completion, minibuf_read_key)
	(minibuf_read_number): Ditto.
	* src/search.lua (do_search, isearch): Ditto.
	* src/buffer.lua (move_char): Call beginning_of_line and
	end_of_line directly.
	* src/funcs.lua (move_sexp): Ditto.
	* src/line.lua (previous_line_indent): Call end_of_line
	directly.
	* src/funcs.lua (transpose_subr): Ditto.
	(write_temp_buffer): Call goto_offset directly instead of
	execute_function ("beginning-of-buffer").
	* src/windows.lua (completion_scroll_up): Ditto.
	* src/funcs.lua (transpose_subr): Call insert_newline directly
	instead of execute_function ("newline").
	Call delete_region directly.
	* src/killring.lua (kill_line): Call delete_char directly.
	* zmacs/commands/line.lua (delete-horizontal-space): Simplify
	by moving implementation...
	* src/line.lua (delete_horizontal_space): ...to here.
	(fill_break_line): Call delete_horizontal_space directly.
	(previous_nonblank_goalc): Call move_line directly.
	* src/marker.lua (push_mark): Call functions directly.
	* src/commands/window.lua (recenter): Simplify by moving
	implementation...
	* src/redisplay (interactive_recenter): ...to here.
	(resize_windows): Call interactive_recenter directly.
	* src/term_minibuf.lua (maybe_close_popup): Call delete_window
	directly.
	* zmacs/commands/bind.lua (suspend-emacs): Move implementation...
	* src/term_minibuf.lua (suspend): ...to here.
	(term_minibuf_read): Call it directly.
	* zmacs/commands/window.lua (split-window, scroll-down)
	(scroll-up): Move implementation...
	* src/window.lua (split_window, scroll_down, scroll_up): ...to
	here.
	(completion_scroll_up): Call scroll_up directly.
	(completion_scroll_down): Call scroll_down directly.
	(popup_window): Call split-window directly.

	zmacs: move move_paragraph into zmacs.
	* src/funcs.lua (move_paragraph): Move from here...
	* zmacs/zmacs.lua.in: ...to here, and make local since it isn't
	called from anywhere else.

	zmacs: move get_and_run_command into zmacs.
	This function (i) calls into the lisp module and (ii) directly
	interacts with the user from a non-"viewer" function. Neither of
	these should happen in Zile's (eventually) clean src directory.
	* src/bind.lua (get_and_run_command): Move from here...
	* zmacs/callbacks.lua: New file. ...to here.
	* zmacs/Makefile.am (zmacs_zmacs_LUA): Add zmacs/callbacks.lue.
	* zmacs/zmacs.lua.in: Load callbacks.

	refactor: rewrite lisp.lua as a self-contained lua module.
	Unfortunately, the C ancestry of Zile's code means that everything
	relies on being in the global namespace, but for a few file-local
	variables and functions.  Teasing lisp.lua out into a self-
	contained module is no mean feat... this first patch only removes
	lisp.lua's dependencies on any other Zile modules. This patch
	still leaves plenty of calls into lisp.lua all over the Zile
	sources, although some of the mechanisms to reduce that problem
	somewhat arrive with this patch already.
	* src/lisp.lua (prefix_arg, current_prefix_arg)
	(execute_with_uniarg, move_with_uniarg): Move from here...
	* src/bind.lua: ...to here.
	(_last_command, _this_command, _interactive): Rename from this...
	(prev_label, this_label, _interactive): ...to this.
	(command): New table with function closures to access the
	above. Adjust all callers.
	Now wrap everything in a module table and return it for require.
	(lisp.commands): New iterator function for access to private
	usercmds table.  Adjust all callers.
	(command.attach_label, command.was_labelled): New
	access functions for a simplified replacement to the old
	_this_command & _last_command API.
	* src/buffer.lua (move_line): Use command.attach_label() and
	command.was_labelled()  to maintain goal column during consecutive
	move_line calls.
	* src/killring.lua (kill_ring_push, maybe_free_kill_ring): And
	similarly for extending the current killring buffer with
	consecutive kill commands.
	(kill_text): Move from here...
	* zmacs/commands/killring.lua: ...to here.
	* src/lisp.lua (lisp.interactive): New access function for
	reentrant _interactive API.
	* zmacs/commands/bind.lua, zmacs/commands/buffer.lua,
	zmacs/commands/edit.lua, zmacs/commands/file.lua,
	zmacs/commands/help.lua, zmacs/commands/killring.lua,
	zmacs/commands/line.lua, zmacs/commands/lisp.lua,
	zmacs/commands/macro.lua, zmacs/commands/marker.lua,
	zmacs/commands/move.lua, zmacs/commands/registers.lua,
	zmacs/commands/search.lua, zmacs/commands/undo.lua,
	zmacs/commands/variables.lua, zmacs/commands/window.lua: require
	newly modularised lisp.lua and save lisp.Defun in a local.
	* src/bind.lua (root_bindings, init_default_bindings): Move from
	here...
	* zmacs/keymaps.lua: ...to here.
	* zmacs/Makefile.am (zmacs_zmacs_LUA): Add zmacs/keymaps.lua.
	* zmacs/zmacs.lua.in: Don't require lisp, but do require new
	keymaps.lua.

	refactor: rearrange zmacs/commands more logically.
	* zmacs/commands/basic.lua: Rename from this...
	* zmacs/commands/move.lua: ...to this.
	* zmacs/commands/funcs.lua (backward-paragraph)
	(forward-paragraph, forward-sexp, backward-sexp)
	(back-to-indentation, forward-word, backward-word) Move from
	here...
	* zmacs/commands/move.lua: ...to here.
	* zmacs/commands/funcs.lua (universal-argument, keyboard-quit)
	(suspend-emacs): Move from here...
	* zmacs/commands/bind.lua: ...to here.
	* zmacs/commands/funcs.lua (toggle-read-only, auto-fill-mode)
	(write_buffers_list, list-buffers): Move from here...
	* zmacs/commands/buffer.lua: ...to here.
	* zmacs/commands/funcs.lua (exchange-point-and-mark, set-mark)
	(set-mark-command, mark, mark-word, mark-sexp, mark-paragraph)
	(mark-whole-buffer): Move from here...
	* zmacs/commands/marker.lua: ...to here.
	* zmacs/commands/funcs.lua: Rename remainder of this file...
	* zmacs/commands/edit.lua: ...to this.
	* zmacs/commands/window.lua (recenter): Move to here...
	* zmacs/commands/redisplay.lua: ...from here. Delete this file.
	* zmacs/zmacs.lua.in: Adjust require statements.
	* zmacs/Makefile.am (dist_zmacsdata_DATA): Adjust.

	refactor: fold src/basic.lua into src/funcs.lua.
	After removing the Defuns from basic.lua, there's almost nothing
	left, so fold it into one of the other files that uses the few
	remaining functions.
	* src/funcs.lua (next_line, previous_line): Move to here...
	* src/basic.lua: ...from here. Remove file.
	* src/Makefile.am (dist_pkgdata_DATA): Remove basic.lua.
	* zmacs/zmacs.lua.in: Don't require basic module.

	zmacs: very rough first cut separation between zmacs and zile.
	Somewhere between the commands available to be bound by zmacs,
	and the implementation of the framework lies an API.  The API
	won't become clear until we try to implement an entirely
	different editor with Zile, but since we know we'll need one
	make a rough first cut by moving all the Defuns into zmacs
	implementation, and changing visibility of symbols in what
	remains in src so that everything still works.
	* src/help.lua: Move from here...
	* zmacs/commands/help.lua: ...to here.
	* src/Makeflie.am (dist_src_DATA): Remove src/help.lua.
	* zmacs/zmacs.lua.in: Remove `require "help"' call.
	* src/basic.lua, src/bind.lua, src/buffer.lua, src/file.lua,
	src/funcs.lua, src/killring.lua, src/line.lua, src/lisp.lua,
	src/macro.lua, src/redisplay.lua, src/registers.lua,
	src/search.lua, src/undo.lua, src/variables.lua, src/window.lua:
	Move all Defun and local helper function calls from here...
	* zmacs/commands/basic.lua, zmacs/commands/bind.lua,
	zmacs/commands/buffer.lua, zmacs/commands/file.lua,
	zmacs/commands/funcs.lua, zmacs/commands/killring.lua,
	zmacs/commands/line.lua, zmacs/commands/lisp.lua,
	zmacs/commands/macro.lua, zmacs/commands/redisplay.lua,
	zmacs/commands/registers.lua, zmacs/commands/search.lua,
	zmacs/commands/undo.lua, zmacs/commands/variables.lua,
	zmacs/commands/window.lua: ...to here.A
	* zmacs/Makefile.am (dist_zmacsdata_DATA): Add new files.
	* zmacs/zmacs.lua.in: Require new command files.

	zmacs: move main.lua into zmacs directory.
	* zmacs/zmacs.lua.in (PROGRAM, PROGRAM_NAME, PROGRAM_STRING):
	New constants to make distinguishing between the program (zmacs)
	and the package (zile) easier.
	* src/main.lua: Move from here...
	* zmacs/main.lua: ...to here.
	(ZILE_VERSION_STRING, ZILE_COPYRIGHT_STRING)
	(ZILE_COPYRIGHT_NOTICE, longopts, options, process_args, qflag)
	(zarg): Moved from here...
	* zmacs/main.lua (VERSION_STRING, COPYRIGHT_STRING)
	(COPYRIGHT_NOTICE, longopts, options, process_args, qflag, zarg):
	...to here.
	* src/Makefile.am (src_zile_LUA): Remove src/main.lua.
	* zmacs/Makefile.am (dist_zmacs_DATA): Add zmacs/main.lua.

	zmacs: move default-bindings.el into zmacs directory.
	* src/default-bindings.el: Move from here...
	* zmacs/default-bindings.el: ...to here.
	* zmacs/zmacs.lua.in (PATH_DATA): Adjust - bind.lua uses this
	value to find default-bindings.el.
	* src/Makefile.am (dist_pkgdata_DATA): Remove
	default-bindings.el.
	* zmacs/Makefile.am (dist_zmacsdata_DATA): Add
	default-bindings.el.

	zmacs: move tbl_vars.lua into zmacs directory.
	* src/Makefile.am (src_zile_LUA): Remove tbl_vars.lua.
	* zmacs/Makefile.am (zmacs_zmacs_LUA): Add tbl_vars.luA
	(zmacs/dotzmacs.sample): Adjust.
	(dist_pkgdata_DATA, DIST_EXTRA, CLEANFILES): Adjust.
	(loc-zmacs): Run cloc on just zmacs lua files.
	* Makefile.am (LUA_ENV): Remove.
	(ZILE_ENV): LUA_PATH fragment.
	* zmacs/Makefile.am (ZMACS_ENV): Ditto.
	(zmacs/dotzmacs.sample): Use path fragments.
	(zmacs_install_edit, zmacs_inplace_edit): Add zmacs path.
	(zmacs/zmacs): Use zmacs_inplace_edit, and zmacs_zmacs_LUA.
	* zmacs/zmacs.lua.in (package.path): Add zmacs directory.

	zmacs: begin to move emacs-like parts to new zmacs directory.
	* configure.ac (AC_CONFIG_FILES): Change src/zile.lua to
	zmacs/zmacs.lua.
	* src/zile.lua.in: Move from here...
	* zmacs/zmacs.lua.in: ...to here.
	* src/Makefile.am: Move relevant parts from here...
	* zmacs/Makefile.am: ...to here.
	* Makefile.am: include new zmacs/Makefile.am.
	(bin_SCRIPTS, install_exec_hooks, man_MANS): Initialize in
	parent Makefile.am.
	* build-aux/mkdotzile.lua, src/zile.lua.in: Move from here...
	* zmacs/mkdotzmacs.lua, zmacs/zmacs.lua.in: ...to here.
	* build-aux/Makefile.am, zmacs/Makefile.am: Adjust.
	* zmacs/.gitignore: New file.
	* doc/.gitignore, doc/Makefile.am: Remove.
	* doc/man-extras, build-aux/zile-help2man-wrapper: Move from
	here...
	* zmacs/man-extras, zmacs/help2man-wrapper: ...to here.
	* tests/run-lisp-tests.lua: Change path to zmacs/zmacs.
	* tests/Makefile.am (check-local): Ditto.

2013-01-12  Gary V. Vaughan  <gary@gnu.org>

	refactor: factor away loadlua.lua.in.
	When Zile has transitioned into an editor building tookit, not
	every editor will want a generated list of every module loaded,
	so each will need to manually list its own particular module
	dependencies:
	* src/Makefile.am (dist_pkgdata_DATA, EXTRA_DIST): Remove
	src/loadlua.lua.
	(src/loadlua.lua): Remove.
	* src/loadlua.lua.in: Remove.
	* src/zile.lua.in: List requirements directly.
	* README: Adjust.

2013-01-08  Gary V. Vaughan  <gary@gnu.org>

	configury: factor away src_zile_LUA.
	* src/Makefile.am (src_zile_LUA): Remove. Merge contents with...
	(dist_pkgdata_DATA): ...this.
	(src/loadlua.lua): Adjust.

	configury: top_builddir is meaningless in a non-recursive project.
	* src/Makefile.am (src/zile, install-exec-hook): Don't use
	$(top_builddir).

	configury: remove redundant files from EXTRA_DIST.
	* src/Makefile.am (EXTRA_DIST): Files in $(src_zile_LUA) are
	already distributed by virtue of being listed in dist_pkgdata_DATA,
	so no need to relist them here too.

2013-01-08  Reuben Thomas  <rrt@sc3d.org>

	configury: remove uninstall-hook.
	It's a nice but unessential fix for an automake problem.
	* Makefile.am (uninstall-hook): Remove.

2013-01-08  Gary V. Vaughan  <gary@gnu.org>

	configury: remove non-standard loc targets.
	These add unnecessary complexity to the Makefiles, and the burden
	of maintaining the PRODUCTIONSOURCES list.  Remove!
	* Makefile.am (CLOC, loc, loc-tests, loc-all): Remove.
	* src/Makefile.am (PRODUCTIONSOURCES): Remove.
	(src/zile): Depend on dist_pkgdata_DATA instead.

	configury: use maint.mk release instead of woger.
	* Makefile.am (welease): Remove.

	configury: use FORCE instead of special `.FORCE' target.
	The .FORCE symbol is reserved for use by make.
	* Makefile.am (.FORCE): Rename from this...
	(FORCE): ...to this.

	configury: don't distribute extract-trace and options-parser.
	Bootstrap (which used to call these before the recent updates)
	isn't distributed, or useful outside of a git checkout so no
	need to distribute these two either.
	* build-aux/Makefile.am (EXTRA_DIST): Rewove
	build-aux/extract-trace and build-aux/options-parser.

	configury: remove unused gnu-web-doc-update gnulib module.
	* bootstrap.conf (gnulib_tool_options): Avoid gnu-web-doc-update
	module.

	configury: BUILT_SOURCES is a red-herring for Lua code.
	* src/Makefile.am (BUILT_SOURCES): Remove.

2013-01-06  Gary V. Vaughan  <gary@gnu.org>

	maint: clean up GEN rules for AM_SILENT_RULES.
	* doc/Makefile.am ((src/zile.1, src/zile.1.in): Use AM_V_GEN and
	AM_V_at to respect AM_SILENT_RULES properly.
	* src/Makefile.am (src/zile, src/dotzile.sample): Ditto.
	(install-exec-hook): Be less verbose during installation too.

	maint: bump copyright notices to include 2013.

	gnulib: update to lastest upstream.
	* gnulib: `git pull master`
	* gl/build-aux/do-release-commit-and-tag.diff,
	gl/top/README-release.diff, gl/top/maint.mk.diff: Update for
	newer gnulib files.
	* Makefile.am (release): Now that this clashes with the new
	release rule in gnulib maint.mk, renaame to...
	(welease): ...this. Watch 'Life of Brian' if you don't know why!

	bootstrap: sync with upstream.
	* gl/build-aux/bootstrap.in, gl/build-aux/extract-trac.,
	gl/build-aux/funclib.sh, gl/build-aux/inline-source,
	gl/build-aux/options-parser: Sync with upstream.
	* bootstrap: Regenerate.

2013-01-04  Gary V. Vaughan  <gary@gnu.org>

	maint: mkdotzile.lua works again.
	* build-aux/mkdotzile.lua: Adjust to match the layout of main_vars.

	file: default to current directory for write_buffer.
	* src/file.lua (write_buffer): When saving a file with no name,
	default to the current directory in the minibuf read.

2013-01-03  Gary V. Vaughan  <gary@gnu.org>

	buffer: factor away get_goalc_bp.
	* src/buffer.lua (get_goalc): Remove.
	(get_goalc_bp): Rename to get_goalc, and default missing arguments.
	* src/term_redisplay.lua (draw_status_line): Use it.

2013-01-03  Reuben Thomas  <rrt@sc3d.org>

	buffer: Move get_goalc to buffer.lua, a more logical location.
	* src/basic.lua (get_goalc_bp, get_goalc): Move from here...
	* src/buffer.lua (get_goalc_bp, get_goalc): ...to here.

	variables: simplify and clarify initialization of editor variables.
	* src/main.lua: Move table initialisation from here...
	* src/tbl_vars: ...to here.
	(X): Rename from this...
	(Var): ...to this.
	* build-aux/mkdotzile.lua: Remove duplicate variable initialisation.

	undo: implement revert-buffer.
	* src/undo.lua (revert-buffer): Undo until buffer is no longer
	modified.
	* tests/zile-only/revert-buffer.el,
	tests/zile-only/revert-buffer.output,
	tests/zile-only/interactive/revert-buffer.el,
	tests/zile-only/interactive/revert-buffer.output: Test it.

2013-01-03  Gary V. Vaughan  <gary@gnu.org>

	minibuf: simplified minibuf input processing with keysets.
	* src/search.lua (query-replace): Use keyset membership instead
	of multiple equality checks.
	* term_minibuf.lua (term_minibuf_read): Ditto.

	minibuf: simplify save_some_buffers with minibuf_read_key.
	* src/file.lua (save_some_buffers): Call generalized
	minibuf_read_key, instead of hand-rolling the minibuf read loop.

	minibuf: better Emacs compatibility for write-buffer minibuf keys.
	* src/keycode.lua (keyset): Convert a list of keychord strings
	into a stdlib set of keycode objects.
	* src/minibuf.lua (minibuf_read_key): Use it to simplify.
	* src/file.lua (write_buffer): Ditto.

	minibuf: minibuf_read_key quietly accepts some additonal keys.
	* src/minibuf.lua (minibuf_read_key): New parameter `extra'
	is a list of extra keys to accept and return.
	Simplify matching one of several keys by checking membership of
	a new stdlib set of keycode objects.
	* src/file.lua (write_buffer): Pass extra keys, and similarly
	make stdlib sets of keycodes to test membership.

	minibuf: roll read_minibuf_yn into its only caller.
	* src/minibuf.lua (minibuf_read_yn): Remove.
	(minibuf_read_key): Return nil for keyboard quit.
	* src/file.lua (backup_and_write): Call minibuf_read_key directly,
	and simplify by localizing keycode handling to inner scope.

	minibuf: generalize minibuf_read_yn for any set of keys.
	* src/minibuf.lua (minibuf_read_key): New function. Loop until
	one of the specified keys is pressed, and return it.
	(minibuf_read_yn): Now a thin wrapper for the above.

2013-01-03  Reuben Thomas  <rrt@sc3d.org>

	minibuf: simplify checking completions
	* src/minibuf.lua (minibuf_test_in_completions): Remove.
	(minibuf_vread_completion): Test for membership using a
	lua-stdlib set.

2013-01-03  Gary V. Vaughan  <gary@gnu.org>

	maint: fold window_new function into its only caller.
	* src/window.lua (window_new): Remove.
	(create_scratch_window): Adjust caller.

	maint: use a space before function parameter parenthesis.
	* src/zile.lua.in (err): Add missing space.

2013-01-02  Reuben Thomas  <rrt@sc3d.org>

	curses: factor out term_addch.
	* src/term_curses.lua (term_addch): Remove.
	* src/term_redisplay.lua (draw_line): Use term_addstr() here
	instead.

2013-01-02  Gary V. Vaughan  <gary@gnu.org>

	curses: remove unused term_reopen function.
	* src/term_curses.lua (term_reopen): Remove.

	astr: simplify a call by removing redundant tostring().
	* src/search.lua (find_substr): Remove tostring(), and use sub
	method rather than explicit string.sub call.

	astr: change len to __len and use it.
	* src/astr.lua (AStr.len): Rename from this...
	(AStr.__len): ...to this.
	(AStr.__tostring, AStr.move, AStr.set, AStr.set, AStr.remove)
	(AStr.insert): Use it.
	* src/buffer.lua (replace_estr): Likewise.
	* src/estr.lua (EStr.next_line, EStr.end_of_line, EStr.replace)
	(EStr.cat, EStr.bytes): Likewise.

	search: save a local variable and a parameter.
	* src/search.lua (fund_substr): Use a ternary expression for the
	icase flag calculation, obviating `cf'.
	(search): concatenate the two halves of the string before the
	call, obviating the `bs' parameter.
	* src/astr.lua (rfind): No need for the empty string parameter.

	lisp: remove trailing newline from Defun docstrings.
	* src/lisp.lua (Defun): chomp trailing newline before storing
	docstring in command metadata table.

	maint: keep empty while loop on one line.
	* src/line.lua (previous_nonblank_goalc): No need for a line-break
	between `do' and `end'.

	bind: implement global-unset-key.
	* src/bind.lua (prompt_key_sequence): New function, factored out
	of...
	(global-set-key): ...here.  Adjust.
	(global-unset-key): New lisp function implementation.
	* tests/zile-only/interactive/global-unset-key.el: New test
	case. Test that interactive parameter entry is working.
	* tests/zile-only/interactive/global-unset-key.output: Expected
	test output.
	* tests/zile-only/global-unset-key.el: New test case. Test that
	global-unset-key can be called from lisp.
	* tests/zile-only/global-unset-key.output: Expected test output.

	tests: improve global-set-key coverage.
	* tests/zile-only/interactive/global-set-key.el: Call
	global-set-key interactively.
	* tests/zile-only/global-set-key.el: New test, call global-set-key
	programatically.
	* tests/zile-only/global-set-key.output: Expected test output.

	maint: remove a spurious space.
	* src/term_curses.lua (term_keytobyte): Remove a spurious space.

	maint: give symbolic names to ASCII key codes.
	* src/term_curses.lua (ASC_BS, ASC_TAB, ASC_RET, ASC_SP, ASC_A)
	(ASC_ESC, ASC_BSL, ASC_DEL): ASCII key codes. Adjust all clients,
	to use the symbolic names rather than hard-coding the values.
	(ESC): Remove. Superceded by ASC_ESC.

	maint: new FIXME comments for argument processing.
	* src/main.lua (process_args): New FIXME comments.

	maint: rename some symbols for consistency.
	* src/keycode.lua (keynametocode_map, keyreadsyntax_map):
	Renamed from these...
	(keynametocode, keyreadsyntax): ...to these, respectively.

	maint: move misplaced whitespace.
	* src/funcs.lua (move_sexp): Move misplaced space character to
	the correct position.

	maint: use more space around operators in for loops.
	* src/keycode.lua, src/term_curses.lua (tigetvec, term_init): Add
	space around cramped operators.

	keycode: use \\ESC for escape key read-syntax for consistency
	* src/keycode.lua (KBD_ESC): Magic number declaration.
	(codetoname, keynametocode_map): Use it along with \\ESC instead
	of \\e.
	(equivs): Continue to support \\e for Emacs compatibility.
	* src/term_curses.lua (term_init, term_getkey, term_bytetokey):
	Use \\ESC instead of \\e.

	bind: format where-is results correctly.
	* src/bind.lua (where-is): Add missing string.format, and simplify
	slightly.

2013-01-02  Reuben Thomas  <rrt@sc3d.org>

	zile: exit with error status on error.
	* src/zile.lua.in (err): Always exit with status 2..

2013-01-02  Gary V. Vaughan  <gary@gnu.org>

	maint: remove unused _DEBUG declaration.
	* src/zile.lua.in (_DEBUG): Remove.

	term_curses: backspace works in the minibuffer again now.
	* src/term_curses.lua (tigetvec): New function, factored out of
	term_init().
	(term_init): Adjust, and reuse for correctly setting the backspace
	keycode when terminfo thinks "kbs=^H".

2013-01-02  Reuben Thomas  <rrt@sc3d.org>

	configury: Reorder tests to leave terminal in correct state.
	* tests/Makeflie.am (check-local): Run fixed screen size tests early,
	so that the terminal is reset properly by a regular test.

2013-01-02  Gary V. Vaughan  <gary@gnu.org>

	bind: remove spurious space in source.
	* src/bind.lua (get_and_run_command): No need for a spurious
	space before closing parentheses.

2012-11-14  Gary V. Vaughan  <gary@gnu.org>

	term_curses: handle backspace more carefully.
	* src/term_curses.lua (term_init): Remove explicit "kbs" capability
	mapping from the list, in favour of keeping ^H free for keycode
	binding even when terminfo wants to use it for backspacing.

	bootstrap: sync with upstream.
	Portability fixes for solaris sed, and substandard awk, plus an
	extra splash of color on more terminals.
	* bootstrap.conf (require_bootstrap_uptodate): Remove.
	* gl/build-aux/bootstrap.in, gl/build-aux/extract-trace,
	gl/build-aux/funclib.sh, gl/build-aux/inline-source,
	gl/build-aux/options-parser: Sync with upstream.
	* bootstrap: Regenerate.

	bootstrap: sync with upstream.
	Portability fixes for solaris sed, and substandard awk, plus an
	extra splash of color on more terminals.
	* bootstrap.conf (require_bootstrap_uptodate): Remove.
	* gl/build-aux/bootstrap.in, gl/build-aux/extract-trace,
	gl/build-aux/funclib.sh, gl/build-aux/inline-source,
	gl/build-aux/options-parser: Sync with upstream.
	* bootstrap: Regenerate.

2012-11-13  Gary V. Vaughan  <gary@gnu.org>

	tests: make run-lisp-tests.lua Lua 5.2 compatible.
	* tests/run-lisp-tests.lua: Manually assign result of the
	`require "posix"` call to a posix variable for compatibility with
	Lua 5.2.

2012-11-06  Reuben Thomas  <rrt@sc3d.org>

	tests/interactive/exchange-point-and-mark.el: fix test to actually test what it claims to, and fix comment to reflect code

	Fix previous commit: use correct name for canonicalize_filename

2012-10-31  Reuben Thomas  <rrt@sc3d.org>

	Rename normalize_path to canonicalize_filename, after gnulib.
	Also redocument. This is suitable for inclusion in e.g. stdlib, but
	I've not yet worked out the right place to put it.

	README: update version of Lua required and add a note about LuaRocks

2012-10-27  Reuben Thomas  <rrt@sc3d.org>

	cfg.mk: remove unnecessary check suppression

	cfg.mk: update comment to reflect reality

	cfg.mk: std.lua is no longer shipped in-tree, so don't need to exclude it from checks

	cfg.mk: diff files are ignored, so no need to exclude them from whitespace check

2012-10-25  Reuben Thomas  <rrt@sc3d.org>

	Update to Lua 5.2, and remove ldb and debug command for now

2012-10-25  Reuben Thomas  <rrt@sc3d.org>

	keycode.lua: simplify handling alternative names for keys, and fix a bug
	There was a Heisenbug where different stringifications of "\\M- " as
	either {key=32,META=true} or {META=true,key=32} would give different
	memoized keycodes, and hence one form would not find a keybinding (for
	just-one-space in the current setup).

	To fix this, ensure that the keystring is canonicalized before calling
	the memoized function.

	In the process, simplify the handling of keys with more than one name.

2012-10-22  Gary V. Vaughan  <gary@gnu.org>

	bootstrap: sync with upstream.
	Several cleanups and bugfixes, as well as being a self-contained
	script again, albeit generated from local gnulib script files.
	* bootstrap.conf (gnulib_modules): Add bootstrap, which now
	behaves like a regular gnulib module.
	* bootstrap: Regenerate.
	* build-aux/extract-trace, build-aux/options-parser: Remove.
	* gl/module/bootstrap, gl/modules/extract-trace,
	gl/modules/funclib.sh, gl/modules/inline-source,
	gl/modules/options-parser: New local gnulib modules.
	* gl/build-aux/bootstrap.in, fl/build-aux/extract-trace,
	gl/build-aux/funclib.sh, gl/build-aux/inline-source,
	gl/build-aux/options-parser: New local gnulib scripts.
	* gl/doc/bootstrap.texi: Developer documentation for the
	bootstrap module.

	bootstrap: sync with upstream. (from master)
	Several cleanups and bugfixes, as well as being a self-contained
	script again, albeit generated from local gnulib script files.
	* bootstrap.conf (gnulib_modules): Add bootstrap, which now
	behaves like a regular gnulib module.
	* bootstrap: Regenerate.
	* build-aux/extract-trace, build-aux/options-parser: Remove.
	* gl/module/bootstrap, gl/modules/extract-trace,
	gl/modules/funclib.sh, gl/modules/inline-source,
	gl/modules/options-parser: New local gnulib modules.
	* gl/build-aux/bootstrap.in, fl/build-aux/extract-trace,
	gl/build-aux/funclib.sh, gl/build-aux/inline-source,
	gl/build-aux/options-parser: New local gnulib scripts.
	* gl/doc/bootstrap.texi: Developer documentation for the
	bootstrap module.

2012-10-17  Reuben Thomas  <rrt@sc3d.org>

	loadlua.lua.in: add some comments to explain why we require std twice (from Zee)

	loadlua.lua.in: require stdlib 27, and hence remove require_version

2012-10-16  Reuben Thomas  <rrt@sc3d.org>

	README: be optimistic: don't refer to test suite as "small"

	README: upcase "GNU"

2012-10-16  Reuben Thomas  <rrt@sc3d.org>

	README: update dependencies, remove obsolete information
	Add mention of alien, and update all dependencies' URLs.

	Remove tip about building with a different curses library: that
	doesn't apply to (Lua) Zile, but rather to luaposix.

2012-10-11  Reuben Thomas  <rrt@sc3d.org>

	minibuf.lua: add the missing module title (comment)

2012-10-10  Reuben Thomas  <rrt@sc3d.org>

	undo.lua: fix point position after replace block reverted (copied from zee branch)

	tests: translate newly-added test into Elisp (oops) and fix output (oops again)

	undo.lua: turn undo types into strings

2012-10-09  Reuben Thomas  <rrt@sc3d.org>

	tests: add a test that undo leaves point in the right place

	undo.lua: slight simplification

2012-10-09  Reuben Thomas  <rrt@sc3d.org>

	minibuf.lua: stop minibuf_refresh from calling term_redraw_cursor
	This is usually not what we want. As a result, main must now do so
	explicitly.

	It's possible that this may uncover some other occasions on which
	redrawing the cursor in the buffer is needed, but I've not found any.

2012-10-09  Reuben Thomas  <rrt@sc3d.org>

	basic.lua: fix an off-by-one error in get_goalc_bp

	search.lua: make query-replace behave more like Emacs when unused key pressed

	search.c: add a FIXME

	Remove all references to obsolete WAITKEY_DEFAULT.

2012-10-05  Reuben Thomas  <rrt@sc3d.org>

	main.lua: remove superfluous setting of lastflag.need_resync

2012-10-02  Reuben Thomas  <rrt@sc3d.org>

	buffer.lua: fix a double off-by-one bug in get_buffer_size and add a test

2012-10-01  Reuben Thomas  <rrt@sc3d.org>

	minibuf.c: make minibuf_clear always clear (copied from C branch)

	basic.lua: fix crash on out-of-range goto-char and add a test (copied from C)

	build: require alien 0.6.1 (not 0.7.0 for now)

	maint: post-release administrivia
	* NEWS: Add header line for next release.
	* .prev-version: Record previous version.
	* cfg.mk (old_NEWS_hash): Auto-update.

	maint.mk.diff: add a missing redirection

	maint.mk.diff: reverse the polarity of the neutron flow

	maint.mk.diff: remove superfluous line-splicing backslash

	build: rename our release target to dorelease, to avoid clash with gnulib

	version 2.4.9
	* NEWS: Record release date.

	NEWS: add missing empty line

	NEWS: fix whitespace

	NEWS: add NEWS for 2.4.9

	README: note requirement of libgc 7.2 for Valgrind

	configure.ac: fix invocation of help2man when it is run by missing

	m4/.gitignore: update

	gnulib: update patches

	gnulib: update

	configure.ac: bump version to 2.4.9

	minibuf.c: fix display bugs
	* minibuf.c: make minibuf_clear always clear; make minibuf_refresh
	  update the content before refreshing the minibuffer.

	gl/top/maint.mk.diff: update to match gnulib

2012-09-30  Reuben Thomas  <rrt@sc3d.org>

	basic.c: fix crash on out-of-range goto-char and add a test

	search.c: note inefficiency of re_search_2 on large buffers

2012-09-21  Reuben Thomas  <rrt@sc3d.org>

	file.lua: fix reporting of write errors

	file.lua: fix test of write_to_disk's return code

2012-09-20  Reuben Thomas  <rrt@sc3d.org>

	Makefile.am: update cloc command.

2012-09-18  Reuben Thomas  <rrt@sc3d.org>

	basic.lua: remove a spurious extra argument from a minibuf_read_number call

2012-09-14  Gary V. Vaughan  <gary@gnu.org>

	refactor: fix violations of transposed comparison syntax-check rule.
	* src/file.lua (find-file): Don't transpose comparison.
	* src/keycode.lua (keycode_mt:__add, keycode_mt:__sub): Ditto.
	(keycode): Ditto.

	configury: new syntax-check for transposed comparisons.
	* cfg.mk (_sc_search_regexp_or_exclude): Make macro for writing
	syntax-check rules prohibiting a regexp except when marked by an
	exclusion comment.
	(sc_lua_prohibit_LHS_rvalue): Prohibit use of transposed comparisons.

2012-09-13  Reuben Thomas  <rrt@sc3d.org>

	doc: update README-release patch

	doc: update README-release patch

	keycode.lua: remove a redundant line

2012-09-12  Reuben Thomas  <rrt@sc3d.org>

	term_curses.lua: fix comment typo

	keycode.lua: make toreadsyntax local

	bind.lua: fix a comment

	keycode.lua: fix keystrtovec to return nil when invalid keystroke found

	tests: fix an incorrect comment on an interactive test

	tests: fix an incorrect comment on an interactive test

	file.c: set mark on insert-file.

	file.lua: set mark on insert-file.

2012-09-11  Reuben Thomas  <rrt@sc3d.org>

	term_curses.lua: get code for BACKSPACE, to make minibuffer edit work again

	search.c: fix docstring of isearch-backward-regexp

	search.lua: fix docstring of isearch-backward-regexp

	gnulib: update README-release.diff to match gnulib.

	THANKS: Fix transposed names.

	THANKS: Fix transposed names.

	FAQ: remove a redundant question

	gnulib: update

	FAQ: remove redundant questions

	README: fix some typos

	README: fix some typos and remove mention of ncurses (not required)

2012-09-06  Reuben Thomas  <rrt@sc3d.org>

	zile: fix reporting of invalid command-line flags
	* src/main.lua: we were reporting the next flag, not the current one.

	tests: don't use invalid Zile flags when running Zile tests.
	* tests/run-lisp-tests.lua: use --batch and --quick only for Emacs.

	registers.lua: make insert_register local.

2012-09-05  Reuben Thomas  <rrt@sc3d.org>

	README: bump copyright year.

	zile: move AStr type into its own module
	* src/astr.lua: create.
	* src/estr.lua: move AStr from here to astr.lua.
	* src/Makefile.am: add astr.lua.

	registers: store as EStrs to preserve line endings
	src/registers.lua: store registers as EStrs, fixing a FIXME.

	marker.lua: remove nonsense FIXME

	zile: replace AStr with alien-based implementation
	* src/estr.lua: Replace AStr with BStr, fixing up the latter to be
	  1-based.

	zile: use 1-based counting for point and all string types
	* src/basic.lua: 1-based counting, and simplify move_char.
	* src/buffer.lua: 1-based counting.
	* src/editfns.lua: 1-based counting.
	* src/estr.lua: 1-based counting, and new alien-based BStr
	  implementation (not yet used).
	* src/funcs.lua: 1-based counting.
	* src/search.lua: 1-based counting.
	* src/term_redisplay.lua: 1-based counting.

2012-09-03  Reuben Thomas  <rrt@sc3d.org>

	tests/run-lisp-tests.lua: escape srcdir when using it as a gsub pattern

2012-08-31  Reuben Thomas  <rrt@sc3d.org>

	main.lua: add stack traceback to other_sig_handler.

2012-08-18  Gary V. Vaughan  <gary@gnu.org>

	zile: remove unused LREX declaration.
	* src/zile.lua.in (LREX): Remove unused declaration.

2012-07-18  Reuben Thomas  <rrt@sc3d.org>

	release: don't send release announcements to Translation Project

2012-07-15  Reuben Thomas  <rrt@sc3d.org>

	HACKING: fix FIXME in Makefile.am to mention 'make release'

	gnulib: update

2012-07-14  Reuben Thomas  <rrt@sc3d.org>

	Makefile.am: don't unset LUA_INIT for tests, some setups need it to work

	src/Makefile.am: fix source dependencies so generated files are always remade

	src/zile.lua.in: remove current directory from end of package.path

	src/zile.lua.in: add some missing whitespace

	src/zile.lua.in: add some missing whitespace

	src/zile.lua.in: don't unset LUA_INIT, some setups need it to work

2012-07-14  Gary V. Vaughan  <gary@gnu.org>

	configury: fix uninstall-hook to work with distcheck.
	* Makefile.am (uninstall-hook): Don't error out if one of the
	directories being removed fails due to permission denied or being
	non-empty.

2012-07-14  Reuben Thomas  <rrt@sc3d.org>

	tests: fix interactive/find-file-read-only for VPATH build

2012-07-14  Gary V. Vaughan  <gary@gnu.org>

	configury: use func_grep_q to avoid spurious "ChangeLog" on stdout.
	* bootstrap (func_require_gnulib_merge_changelog): Use func_grep_q
	instead of $EGREP, and change syntax of match expression accordingly.

	gnulib: patch maint.mk to not prepend make output into announcement.
	* gl/top/maint.mk.diff (release-prep): Don't send all make output
	directly to the release announcement template, because AM_V_GEN and
	others also write directly to stdout and we don't want to see e.g.
	"GEN ChangeLog" at the top of the template.
	(announcement): Instead, send just the output from the announce-gen
	script to the template.

	gnulib: patch do-release-commit-and-tag with bootstrap func_sort_ver.
	* gl/build-aux/do-release-commit-and-tag.diff: New file. Stock gnulib
	script uses non-portable 'sort -V', this patch injects the portable
	func_sort_ver function used by saner bootstrap and calls that instead.

	configury: use func_grep_q to avoid spurious "ChangeLog" on stdout.
	* bootstrap (func_require_gnulib_merge_changelog): Use func_grep_q
	instead of $EGREP, and change syntax of match expression accordingly.

	gnulib: patch maint.mk to not prepend make output into announcement.
	* gl/top/maint.mk.diff (release-prep): Don't send all make output
	directly to the release announcement template, because AM_V_GEN and
	others also write directly to stdout and we don't want to see e.g.
	"GEN ChangeLog" at the top of the template.
	(announcement): Instead, send just the output from the announce-gen
	script to the template.

	gnulib: patch do-release-commit-and-tag with bootstrap func_sort_ver.
	* gl/build-aux/do-release-commit-and-tag.diff: New file. Stock gnulib
	script uses non-portable 'sort -V', this patch injects the portable
	func_sort_ver function used by saner bootstrap and calls that instead.

	NEWS: do-release-commit-and-tag requires template at exactly line 3.

	NEWS fixup

2012-07-13  Gary V. Vaughan  <gary@gnu.org>

	configury: don't distribute generated zile.1 manual page.
	@pkgdatadir@ is substituted for the path on the distribution
	packager's host in the final zile.1 file, so we can't add it
	to the distribution.
	* doc/Makefile.am (dist_man_MANS): Renamed from this...
	(man_MANS): ...to this.

	configury: use missing to run help2man.
	* doc/Makefile.am (doc/zile.1.in): prepend build-aux/missing to the
	help2man invocation so that it works with the distributed file when
	the build host is missing a help2man binary.

	configury: distribute zile.1.in correctly.
	* doc/Makefile.in (MAINTAINERCLEANFILES): zile.1.in is a distributed
	file, so it will be in $(srcdir) not $(builddir).
	(DISTCLEANFILES): Don't clean zile.1.in, because it is distributed!
	(doc/zile.1): Force the dependency to be on zile.1.in in $(srcdir).
	(doc/zile.1.in): Name $(srcdir) explicitly, for non-gmake.
	Also, exit gracefully when it's not possible to regenerate zile.1.in
	in a read-only directory, such as at `make dist` time.

	configury: don't distribute generated zile.1 manual page.
	@pkgdatadir@ is substituted for the path on the distribution
	packager's host in the final zile.1 file, so we can't add it
	to the distribution.
	* doc/Makefile.am (dist_man_MANS): Renamed from this...
	(man_MANS): ...to this.

	configury: use missing to run help2man.
	* doc/Makefile.am (doc/zile.1.in): prepend build-aux/missing to the
	help2man invocation so that it works with the distributed file when
	the build host is missing a help2man binary.

	configury: distribute zile.1.in correctly.
	* doc/Makefile.in (MAINTAINERCLEANFILES): zile.1.in is a distributed
	file, so it will be in $(srcdir) not $(builddir).
	(DISTCLEANFILES): Don't clean zile.1.in, because it is distributed!
	(doc/zile.1): Force the dependency to be on zile.1.in in $(srcdir).
	(doc/zile.1.in): Name $(srcdir) explicitly, for non-gmake.
	Also, exit gracefully when it's not possible to regenerate zile.1.in
	in a read-only directory, such as at `make dist` time.

	configury: warn about git-merge-changelog only for manual ChangeLogs.
	* bootstrap (func_require_gnulib_merge_changelog): If the top-level
	srcdir has ChangeLog listed in .gitignore, then don't check for or
	warn about missing GNU merge-changelog driver.

	configury: distinguish between fatal and non-fatal error diagnostics.
	* build-aux/options-parser (func_echo_infix_1): Common code for
	printing a program prefixed multi-line diagnostic to stderr, with an
	additional red infix string on line 1.
	(func_warn): New function. Use func_echo_infix_1 to output diagnastic
	with 'warning' as the red infix string on line 1.
	(func_error): Refactored over func_echo_infix_1.
	* bootstrap (bootstrap_options_prep): Use func_warn as the default
	warning function.

	configury: warn about git-merge-changelog only for manual ChangeLogs.
	* bootstrap (func_require_gnulib_merge_changelog): If the top-level
	srcdir has ChangeLog listed in .gitignore, then don't check for or
	warn about missing GNU merge-changelog driver.

	configury: distinguish between fatal and non-fatal error diagnostics.
	* build-aux/options-parser (func_echo_infix_1): Common code for
	printing a program prefixed multi-line diagnostic to stderr, with an
	additional red infix string on line 1.
	(func_warn): New function. Use func_echo_infix_1 to output diagnastic
	with 'warning' as the red infix string on line 1.
	(func_error): Refactored over func_echo_infix_1.
	* bootstrap (bootstrap_options_prep): Use func_warn as the default
	warning function.

2012-07-13  Reuben Thomas  <rrt@sc3d.org>

	maint: post-release administrivia
	* NEWS: Add header line for next release.
	* .prev-version: Record previous version.
	* cfg.mk (old_NEWS_hash): Auto-update.

	version 2.4.8
	* NEWS: Record release date.

	NEWS: add news for 2.4.8

	doc/Makefile.am: fix distclean

	tests: fix interactive/find-file-read-only for VPATH build

2012-07-10  Reuben Thomas  <rrt@sc3d.org>

	build: prevent zile being built in parallel with itself, which fails
	doc/Makefile.am: add executable as a dependency of doc/zile.1.in,
	don't build it explicitly.

2012-07-09  Reuben Thomas  <rrt@sc3d.org>

	configury: when building with --enable-gcc-warnings, treat gnulib headers as system headers

2012-07-09  Gary V. Vaughan  <gary@gnu.org>

	configury: don't add removed gnulib missing to bootstrap file list.
	* bootstrap.conf (gnulib_non_module_files): Remove build-aux/missing.

2012-07-09  Reuben Thomas  <rrt@sc3d.org>

	Makefile.am: avoid running make syntax-check twice for prerelease
	syntax-check is in distcheck's hook, so don't run it explicitly in
	make prerelease.

	HACKING: remove unnecessary bits from make prerelease command line

	getkey.c: fix a make syntax-check warning

	configure.ac: bump version to 2.4.8

	estr.c: fix a compiler warning

	memrmem.c: fix formatting of function definition

	copyright: update year

	gcc: add const and pure attributes to functions gcc found suitable

2012-07-07  Reuben Thomas  <rrt@sc3d.org>

	getkey: add missing prototype for getkeystroke

2012-07-07  Gary V. Vaughan  <gary@gnu.org>

	configury: always use Automake missing script.
	* bootstrap (gnulib_non_module_files): Remove build-aux/missing, which
	is not carried by gnulib as of 2012-07-03, and is in any case
	potentially incompatible with the version required by generated
	Automake Makefile rules.
	(func_install_gnulib_non_module_files): Ignore build-aux/missing, even
	if it was added back to gnulib_non_module_files by bootstrap.conf.

	gnulib: update to match master.

2012-07-07  Reuben Thomas  <rrt@sc3d.org>

	Revert "getkey: fold getkeystroke into getkey"
	This reverts commit 8bdb514511b2c11f31e17ad52957d9e544117d86.

	Commit was erroneous.

2012-07-07  Gary V. Vaughan  <gary@gnu.org>

	configury: always use Automake missing script.
	* bootstrap (gnulib_non_module_files): Remove build-aux/missing, which
	is not carried by gnulib as of 2012-07-03, and is in any case
	potentially incompatible with the version required by generated
	Automake Makefile rules.
	(func_install_gnulib_non_module_files): Ignore build-aux/missing, even
	if it was added back to gnulib_non_module_files by bootstrap.conf.

2012-07-07  Reuben Thomas  <rrt@sc3d.org>

	gnulib: update

	getkey: fold getkeystroke into getkey

2012-07-04  Gary V. Vaughan  <gary@gnu.org>

	display: fix a rounding error when splitting windows.
	When the window full height is an odd number of rows, splitting it
	leaves a fractional value in the new heights, causing the status
	bar to move down over the minibuffer after several split and
	kill operations accumulate sufficient rounding errors.
	* src/window.lua (split-window): Use math.floor to remove the
	rounding error.

	curses: fix arrow keys on resuming from M-x debug.
	* src/term_curses.lua (term_reopen): Inform curses that we have
	resumed so that it re-enters keypad mode before fetching the next
	keypress.
	* NEWS: Updated.

2012-06-22  Reuben Thomas  <rrt@sc3d.org>

	Update luaposix version required to 5.1.20.

2012-06-08  Gary V. Vaughan  <gary@gnu.org>

	ui: highlight selected empty lines correctly.
	Make sure not to jump out of the attribute setting loop before the
	trailing newline has had the chance to have attributes set.
	* src/term_redisplay.lua (draw_line): Set attributes first, and
	then check for boundary condition.

2012-06-04  Gary V. Vaughan  <gary@gnu.org>

	getkey: don't discard a keystroke when the redisplay timer expires.
	Previously, we always fetched a new keystroke if the redisplay
	timer had expired, even if we already had a valid keystroke from
	the input buffer.
	* src/getkey.lua (getkey): When the timer has expired, or if there
	was no new keystroke waiting, refresh the display.  Separately,
	if there was no new keystroke waiting, try to fetch a one.

	getkey: don't discard a keystroke when the redisplay timer expires.
	Previously, we always fetched a new keystroke if the redisplay
	timer had expired, even if we already had a valid keystroke from
	the input buffer.
	* src/getkey.c (getkey): When the timer has expired, or if there
	was no new keystroke waiting, refresh the display.  Separately,
	if there was no new keystroke waiting, try to fetch a one.

	display: force a redisplay at least once every 500ms.
	* src/getkey.c (MAX_RESYNC_MS): Manifest constant.
	(MAX_RESYNC_PAUSE): Convert to gettimeofday() compatible format.
	(getkey): Even when catching up with a huge input buffer, always
	resinc the display every MAX_RESYNC_MS milliseconds.

	keycode: multi-byte keycodes cannot be converted to one byte.
	Fix several small, but annoying, bugs with keycode interpretation.
	* src/term_curses.lua (term_keytobyte): Return nil when asked to
	convert a multi-byte keycode back to a single byte.  And then
	simplify the function a little.

	minibuf: make sure the cursor is displayed properly.
	The recent optimisation for not redrawing the screen during
	typeahead catchup has the side-effect of never leaving the cursor
	in minibuf, even when typing in the minibuffer!
	* src/getkey.c (getkeystroke): Split out the key fetching part
	of the optimised getkey() function.
	(getkey): Adjust to call getkeystroke() instead of raw term_getkey()
	keeping typeahead optimisation.
	* src/minibuf.c (minibuf_read_yn): Use getkeystroke() to make
	sure the cursor is not moved out of minibuf during term_refresh().
	* src/term_minibuf.c (term_minibuf_read): Likewise.

	minibuf: make sure the cursor is displayed properly.
	The recent optimisation for not redrawing the screen during
	typeahead catchup has the side-effect of never leaving the cursor
	in minibuf, even when typing in the minibuffer!
	* src/getkey.lua (getkeystroke): Split out the key fetching part
	of the optimised getkey() function.
	(getkey): Adjust to call getkeystroke() instead of raw term_getkey()
	keeping typeahead optimisation.
	* src/minibuf.lua (minibuf_read_yn): Use getkeystroke() to make
	sure the cursor is not moved out of minibuf during term_refresh().
	* src/term_minibuf.lua (term_minibuf_read): Likewise.

2012-06-03  Gary V. Vaughan  <gary@gnu.org>

	bootstrap: leave a bogus ChangeLog file for Automake regeneration.
	* bootstrap.conf (zile_force_changelog): Add a message inside the
	bogus ChangeLog file.
	(zile_cleanup_changelog): Don't remove the bogus ChangeLog, or
	else the Automake configury regeneration rules don't work.

2012-05-31  Reuben Thomas  <rrt@sc3d.org>

	estr: add a BStr (Buffer String) class based on AStr
	Currently BStr is just a copy of AStr.

	Allow EStr's constructor to take an arbitrary type: if it's a string,
	make an AStr; otherwise assume it's AStr-compatible and leave it
	alone.

2012-05-31  Reuben Thomas  <rrt@sc3d.org>

	Abstract buffer string entirely into an AStr class, mirroring C Zile. Needs up-to-date git stdlib.

2012-05-30  Reuben Thomas  <rrt@sc3d.org>

	Finish converting estr to an Object.

	Convert estr to an Object type.

2012-05-29  Gary V. Vaughan  <gary@gnu.org>

	refactor: redisplay only when there's no typeahead buffered
	* src/main.lua (main): don't redisplay after every key command.
	* src/getkey.lua (getkey): do redisplay if there are no keys left
	in the typeahead buffer.
	* src/minibuf.lua (minibuf_write): don't redisplay existing
	minibuf contents repeatedly.

	minibuf: fix crash when pressing PGUP or PGDN.
	* src/term_minibuf.lua (term_minibuf_read): Don't try to dereference
	cp when we already know it is nil.

	lua: remove current directory from package search path.
	Otherwise, any unfortunately named files in the current directory
	take precedence of Zile's own library when `require` is called.
	* src/zile.lua.in: Sanitize package.path.

	display: redo "force a redisplay at least once every 500ms".
	* bootstrap.conf (gnulib_modules): Use POSIX gettimeofday instead
	of bespoke gethrxtime module.
	* src/Makefile.am (LDAA): Remove $(LIB_GETHRXTIME).
	* src/getkey.c (MAX_RESYNC_PAUSE): Remove.
	(timeradd, timercmp): Fallback implementations of these macros for
	strict POSIX systems that lack them.
	(getkey): Use a struct timeval based timer along with the macros
	above to force periodic screen refreshes.

2012-05-29  Gary V. Vaughan  <gary@gnu.org>

	Revert "redisplay: don't redraw the entire window on every keypress."
	This patch prevented the display updating correctly whenever two
	windows were displaying two different buffers, and was not the
	real cause of slow updates when pasting in any case.

	This reverts commit 937d94cb5f15086dc3ab4f6407136ef805f80ca7.

2012-05-29  Gary V. Vaughan  <gary@gnu.org>

	bootstrap: use portable sed -e xx && mv instead of sed -i'' -e xx
	* bootstrap.conf (zile_readme_package_substitutions): inplace edits
	do not work on all sed implementations, so use a temporary file
	instead.

	bootstrap: leave a bogus ChangeLog file for Automake regeneration.
	* bootstrap.conf (zile_force_changelog): Add a message inside the
	bogus ChangeLog file.
	(zile_cleanup_changelog): Don't remove the bogus ChangeLog, or
	else the Automake configury regeneration rules don't work.

	display: force a redisplay at least once every 500ms.
	* bootstrap.conf (gnulib_modules): Add gethrxtime.
	* src/Makefile.am (LDADD): Add $(LIB_GETHRXTIME).
	* src/getkey.c (MAX_RESYNC_MS): Manifest constant.
	(MAX_RESYNC_PAUSE): Convert to gethrxtime units.
	(getkey): Even when catching up with a huge input buffer, always
	resync the display after MAX_RESYNC_PAUSE.

	refactor: redisplay only when there's no typeahead buffered.
	* src/main.c (main): don't redisplay after every key command.
	* src/getkey.c (getkey): do redisplay if there are no keys left
	in the typeahead buffer.
	* src/minibuf.c (minibuf_vwrite): don't redisplay existing
	minibuf contents repeatedly.

	bootstrap: use portable sed -e xx && mv instead of sed -i'' -e xx
	* bootstrap.conf (zile_readme_package_substitutions): inplace edits
	do not work on all sed implementations, so use a temporary file
	instead.

	configury: use gitlog-to-changelog instead of git2cl.
	Now we distribute a much more nicely formatted ChangeLog,
	* bootstrap.conf (buildreq): Remove git2cl.
	(gnulib_modules): Add gitlog-to-changelog.
	* build-aux/git-log-fix: Initially empty file to list edits
	needed to generated ChangeLog for correctness.
	* Makefile.am (ChangeLog): New rule to generate ChangeLog at
	distribution time.

2012-05-28  Reuben Thomas  <rrt@sc3d.org>

	Rename resync_redisplay to window_resync (copied from master).

	Rename resync_redisplay to window_resync, and make lastpointn member of Window private.

	term_curses.lua: remove redundant call to timeout (copied from master)

	main.lua: bump copyright string year

2012-05-28  Reuben Thomas  <rrt@sc3d.org>

	redisplay.lua: call term_refresh in recenter to ensure immediate redraw, as it should.
	Fix docstring for recenter.

	(Copied from master)

2012-05-28  Reuben Thomas  <rrt@sc3d.org>

	term_curses: explain that ERR is returned by codetokey when no input is ready.

	main.c: bump copyright year, both in file and in Zile copyright message.

	redisplay.c: call term_refresh in recenter to ensure immediate redraw, as it should.
	Fix docstring for recenter.

	term_curses.c: remove redundant call to timeout: timeout is always called before getch.

2012-05-27  Reuben Thomas  <rrt@sc3d.org>

	tests: make a few tests Zile-only.

2012-05-27  Gary V. Vaughan  <gary@gnu.org>

	gnulib: update.
	* gnulib: Update submodule.
	* gl/top/README-release.diff: Refresh to work with latest gnulib.

	gnulib: update.

2012-05-26  Gary V. Vaughan  <gary@gnu.org>

	NEWS: Remove duplicate place-holder header.

2012-04-21  Reuben Thomas  <rrt@sc3d.org>

	Improve efficiency of replace_estr by not moving or writing more data than absolutely necessary: use new estr_replace_estr and estr_len, and update cur_bp->pt directly.
	Replace estr_replace with estr_replace_estr, which, like
	astr_replace_nstr, overwrites rather than inserting.

	Add estr_lines, which counts the number of lines in an estr, and
	estr_len, which returns the length of an estr assuming conversion to a
	given line ending.

	Make set_buffer_pt local, as it is not used outside buffer.lua.

	(Ported from C branch.)

2012-04-20  Reuben Thomas  <rrt@sc3d.org>

	run-lisp-tests.lua: on error, print full relative path to failing test.

	tests: Make some tests Zile-only.

	tests: make a few tests Zile-only.

	Revert erroneous "tests: make a few tests Zile-only."
	This reverts commit b5b0b638c5e1c2bc42d79d3be9428d4ba8ef718a.

	Revert "Revert erroneous reversion."
	This reverts commit 2c2b15f144b07167f80c8deaf0785e3837ffb352.

	Revert erroneous commit.
	This reverts commit 9f6fbdcd5802eb90dd78fd1c850c555f926edbf2.

	tests: make a few tests Zile-only.

2012-03-20  Reuben Thomas  <rrt@sc3d.org>

	maint: post-release administrivia
	* NEWS: Add header line for next release.
	* .prev-version: Record previous version.
	* cfg.mk (old_NEWS_hash): Auto-update.

	version 2.4.7
	* NEWS: Record release date.

	NEWS: add for 2.4.7

	version 2.4.7
	* NEWS: Record release date.

	Makefile.am: use $(MAKE) rather than 'make', and add boostrap && configure.

	Makefile.am: fix typo.

	Add and document new prerelease target to automate some of the drudgery.

	gnulib: update.

	Bump version to 2.4.7.

	bind.c: remove bindings for unsupported read-syntax C-?.

	tests: disable tests that rely on unimplemented read-syntax for C-?.

2012-03-18  Reuben Thomas  <rrt@sc3d.org>

	gnulib: refresh README-release patch.

	gnulib: update.

	Makefile.am: update use of cloc, and copyright year.

	bind.c: fix incorrectly displayed string (#35848).

	run-lisp-tests.pl: on error, print full relative path to failing test.

2012-03-15  Gary V. Vaughan  <gary@gnu.org>

	curses: support \C-? read-syntax for compatibility with Emacs.
	Fix the last few failing tests, which are using \C-? to invoke
	backward-delete-char, which works already with Emacs. \C-? is a
	reliable way to pass ASCII 0x7f to execute-kbd-macro, regardless
	of what terminfo says about the kbs capability (which becomes
	\BACKSPACE).
	* src/bind.c: Bind \C-? and \M-C-? to the same commands as
	\BACKSPACE and \M-\BACKSPACE respectively.

	tests: correct mis-named test cases.
	* tests/regression/35053_eob_upcase_word.el,
	tests/regression/35053_eob_upcase_word.output,
	tests/setq-nonexistent-variable.el,
	tests/setq-nonexistent-variable.output: Rename from these...
	* tests/regression/35053_eob_upcase-word.el,
	tests/regression/35053_eob_upcase-word.output,
	tests/setq_nonexistent_variable.el,
	tests/setq_nonexistent_variable.output: ...to these to use `-'
	separators where necessary to name tested symbols correctly, or
	else `_' otherwise.

	tests: remove duplicate quit test case.
	* tests/interactive/quit.el, tests/interactive/quilt.output:
	Delete.

	tests: move some zile-only tests back to shared test directory.
	* tests/zile-only/interactive/kill-line.el,
	tests/zile-only/interactive/list-registers.el,
	tests/zile-only/interactive/prefix-argument.el,
	tests/zile-only/interactive/set-file-column.el,
	tests/zile-only/interactive/shell-command-on-region.el: Rewrite
	the macros to avoid using \C-n which doesn't work properly in
	GNU Emacs batch mode. Then move from here...
	* tests/zile-only/interactive/kill-line.el,
	tests/zile-only/interactive/list-registers.el,
	tests/zile-only/interactive/prefix-argument.el,
	tests/zile-only/interactive/set-file-column.el,
	tests/zile-only/interactive/shell-command-on-region.el: ...to
	here.
	* tests/zile-only/interactive/kill-line.output,
	tests/zile-only/interactive/list-registers.output,
	tests/zile-only/interactive/prefix-argument.output,
	tests/zile-only/interactive/set-file-column.output,
	tests/zile-only/interactive/shell-command-on-region.output:
	Move these from here...
	* tests/zile-only/interactive/kill-line.output,
	tests/zile-only/interactive/list-registers.output,
	tests/zile-only/interactive/prefix-argument.output,
	tests/zile-only/interactive/set-file-column.output,
	tests/zile-only/interactive/shell-command-on-region.output:
	...to here.

2012-03-15  Gary V. Vaughan  <gary@gnu.org>

	tests: new regression to demonstrate savannah bug #35567
	Minibuffer displays non-printables instead of ringing the bell.

	See https://savannah.gnu.org/bugs?35567

2012-03-15  Gary V. Vaughan  <gary@gnu.org>

	tests: interactive \C-h is not bound to help on some terminals.
	* tests/zile-only/interactive/describe-bindings.el,
	tests/zile-only/interactive/describe-function.el,
	tests/zile-only/interactive/describe-key.el,
	tests/zile-only/interactive/describe-variable.el: Fix some more
	tests to work on GNU Emacs, by going directly to line-numbers to
	work around an oddity with \C-n in batch mode.
	Also there's no Zile compatible read-syntax for \F1 in GNU
	Emacs, and \C-h is bound to backward-delete-char on some
	terminals, so use execute-extended-command to call the
	functions.
	Then, move from here...
	* tests/interactive/describe-bindings.el,
	tests/interactive/describe-function.el,
	tests/interactive/describe-key.el,
	tests/interactive/describe-variable.el: ...to here, now that
	they work in Emacs again.
	* tests/zile-only/interactive/describe-bindings.output,
	tests/zile-only/interactive/describe-function.output,
	tests/zile-only/interactive/describe-key.output,
	tests/zile-only/interactive/describe-variable.output: Move from
	here...
	* tests/interactive/describe-bindings.output,
	tests/interactive/describe-function.output,
	tests/interactive/describe-key.output,
	tests/interactive/describe-variable.output: ...to here.

	tests: don't use \C-n in interactive tests in Emacs batch mode.
	For some reason, \C-n doesn't work properly with GNU Emacs when
	--batch is given on the command line.
	* tests/interactive/forward-line.el,
	tests/interactive/forward-line.output: So this test makes no
	sense on Emacs: Move these from here...
	* tests/zile-only/interactive/next-line.el,
	tests/zile-only/interactive/next-line.output: ...to here. And
	rename to reflect the fact that \C-n calls next-line.
	* tests/interactive/beginning-of-line.el,
	tests/interactive/delete-blank-lines.el,
	tests/interactive/delete-region.el,
	tests/interactive/indent-for-tab-command.el,
	tests/interactive/kill-region.el,
	tests/interactive/newline-and-indent.el,
	tests/interactive/open-line.el,
	tests/interactive/search-forward-regexp.el,
	tests/interactive/tab-to-tab-stop.el,
	tests/interactive/yank.el: Go directly to the appropriate lines
	to make the test cases work identically to their lisp
	counterparts to work around the weird --batch mode problem with
	relative line motion commands.

	tests: upcase-region and downcase-region are disabled in GNU Emacs.
	Make these tests zile-only, because we don't have the enable
	disable machinery in zile.
	* tests/interactive/downcase-region.el,
	tests/interactive/downcase-region.output,
	tests/interactive/upcase-region.el,
	tests/interactive/upcase-region.output: Move from here...
	* tests/zile-only/interactive/downcase-region.el,
	tests/zile-only/interactive/downcase-region.output,
	tests/zile-only/interactive/upcase-region.el,
	tests/zile-only/interactive/upcase-region.output: ...to here.

	tests: fix tests/interactive/just-one-space.el for Emacs.
	Use Emacs compatible read-syntax for spaces.
	* tests/interactive/just-one-space.el: Use literal spaces
	instead of zile-only \SPC read-syntax for spaces.

	tests: fix tests/interactive/backward-sexp.el for Emacs.
	Emacs behaves strangely in batch mode, adding a paren on the end
	of the second line of a file for (execute-kbd-macro "\M-<\C-e)")
	so put the sexp closing paren at the end of the last line
	instead, which even batch mode does correctly.
	* tests/interactive/backward-sexp.el: Put the closing paren
	before the final newline of the test file.
	* tests/interactive/backward-sexp.output: Adjust.

	tests: many new tests - interactive versions of all lisp tests.
	Unfortunately some of the new interative tests do not work under
	emacs batch mode, either because they need input from the
	minibuffer (which reads directly from stdin in batch mode) or
	because emacs throws an inexplicable error in a few cases (these
	are noted in the test sources).  At the moment some of these new
	tests also tickle bugs in Zile.
	* tests/interactive/backward-char.el,
	tests/interactive/backward-char.output,
	tests/interactive/backward-delete-char.el,
	tests/interactive/backward-delete-char.output,
	tests/interactive/backward-kill-word.el,
	tests/interactive/backward-kill-word.output,
	tests/interactive/backward-paragraph.el,
	tests/interactive/backward-paragraph.output,
	tests/interactive/backward-sexp.el,
	tests/interactive/backward-sexp.output,
	tests/interactive/backward-word.el,
	tests/interactive/backward-word.output,
	tests/interactive/beginning-of-buffer.el,
	tests/interactive/beginning-of-buffer.output,
	tests/interactive/beginning-of-line.el,
	tests/interactive/beginning-of-line.output,
	tests/interactive/capitalize-word.el,
	tests/interactive/capitalize-word.output,
	tests/interactive/copy-region-as-kill.el,
	tests/interactive/copy-region-as-kill.output,
	tests/interactive/copy-to-register.el,
	tests/interactive/copy-to-register.output,
	tests/interactive/delete-blank-lines.el,
	tests/interactive/delete-blank-lines.output,
	tests/interactive/delete-char.el,
	tests/interactive/delete-char.output,
	tests/interactive/delete-horizontal-space.el,
	tests/interactive/delete-horizontal-space.output,
	tests/interactive/delete-region.el,
	tests/interactive/delete-region.output,
	tests/interactive/downcase-region.el,
	tests/interactive/downcase-region.output,
	tests/interactive/downcase-word.el,
	tests/interactive/downcase-word.output,
	tests/interactive/end-of-buffer.el,
	tests/interactive/end-of-buffer.output,
	tests/interactive/end-of-line.el,
	tests/interactive/end-of-line.output,
	tests/interactive/exchange-point-and-mark.el,
	tests/interactive/exchange-point-and-mark.output,
	tests/interactive/fill-paragraph.el,
	tests/interactive/fill-paragraph.output,
	tests/interactive/find-file-read-only.el,
	tests/interactive/find-file-read-only.output,
	tests/interactive/forward-char.el,
	tests/interactive/forward-char.output,
	tests/interactive/forward-line.el,
	tests/interactive/forward-line.output,
	tests/interactive/forward-paragraph.el,
	tests/interactive/forward-paragraph.output,
	tests/interactive/forward-sexp.el,
	tests/interactive/forward-sexp.output,
	tests/interactive/forward-word.el,
	tests/interactive/forward-word.output,
	tests/interactive/goto-line.el,
	tests/interactive/goto-line.output,
	tests/interactive/indent-for-tab-command.el,
	tests/interactive/indent-for-tab-command.output,
	tests/interactive/insert-file.el,
	tests/interactive/insert-file.output,
	tests/interactive/just-one-space.el,
	tests/interactive/just-one-space.output,
	tests/interactive/kill-buffer.el,
	tests/interactive/kill-buffer.output,
	tests/interactive/kill-region.el,
	tests/interactive/kill-region.output,
	tests/interactive/kill-sexp.el,
	tests/interactive/kill-sexp.output,
	tests/interactive/kill-word.el,
	tests/interactive/kill-word.output,
	tests/interactive/mark-paragraph.el,
	tests/interactive/mark-paragraph.output,
	tests/interactive/mark-sexp.el,
	tests/interactive/mark-sexp.output,
	tests/interactive/mark-whole-buffer.el,
	tests/interactive/mark-whole-buffer.output,
	tests/interactive/mark-word.el,
	tests/interactive/mark-word.output,
	tests/interactive/newline-and-indent.el,
	tests/interactive/newline-and-indent.output,
	tests/interactive/newline.el, tests/interactive/newline.output,
	tests/interactive/open-line.el,
	tests/interactive/open-line.output, tests/interactive/quit.el,
	tests/interactive/quit.output,
	tests/interactive/search-backward-regexp.el,
	tests/interactive/search-backward-regexp.output,
	tests/interactive/search-backward.el,
	tests/interactive/search-backward.output,
	tests/interactive/search-forward-regexp.el,
	tests/interactive/search-forward-regexp.output,
	tests/interactive/search-forward.el,
	tests/interactive/search-forward.output,
	tests/interactive/set-variable.el,
	tests/interactive/set-variable.output,
	tests/interactive/shell-command.el,
	tests/interactive/shell-command.output,
	tests/interactive/tab-to-tab-stop.el,
	tests/interactive/tab-to-tab-stop.output,
	tests/interactive/transpose-chars.el,
	tests/interactive/transpose-chars.output,
	tests/interactive/transpose-lines.el,
	tests/interactive/transpose-lines.output,
	tests/interactive/transpose-sexps.el,
	tests/interactive/transpose-sexps.output,
	tests/interactive/transpose-words.el,
	tests/interactive/transpose-words.output,
	tests/interactive/upcase-region.el,
	tests/interactive/upcase-region.output,
	tests/interactive/upcase-word.el,
	tests/interactive/upcase-word.output, tests/interactive/yank.el,
	tests/interactive/yank.output,
	tests/zile-only/interactive/describe-bindings.el,
	tests/zile-only/interactive/describe-bindings.output,
	tests/zile-only/interactive/describe-function.el,
	tests/zile-only/interactive/describe-function.output,
	tests/zile-only/interactive/describe-key.el,
	tests/zile-only/interactive/describe-key.output,
	tests/zile-only/interactive/describe-variable.el,
	tests/zile-only/interactive/describe-variable.output,
	tests/zile-only/interactive/fill-paragraph_2.el,
	tests/zile-only/interactive/fill-paragraph_2.output,
	tests/zile-only/interactive/goal-column.el,
	tests/zile-only/interactive/goal-column.output,
	tests/zile-only/interactive/kill-line.el,
	tests/zile-only/interactive/list-buffers.el,
	tests/zile-only/interactive/list-buffers.output,
	tests/zile-only/interactive/list-registers.el,
	tests/zile-only/interactive/list-registers.output,
	tests/zile-only/interactive/next-line.el,
	tests/zile-only/interactive/next-line.output,
	tests/zile-only/interactive/previous-line.el,
	tests/zile-only/interactive/previous-line.output,
	tests/zile-only/interactive/set-fill-column.el,
	tests/zile-only/interactive/set-fill-column.output,
	tests/zile-only/interactive/shell-command-on-region.el,
	tests/zile-only/interactive/shell-command-on-region.output,
	tests/zile-only/interactive/undo.el,
	tests/zile-only/interactive/undo.output: New test cases.

2012-03-15  Gary V. Vaughan  <gary@gnu.org>

	tests: new regression to demonstrate savannah bug #35560
	Pressing tab during minibuffer file completion crashes zile.

	See https://savannah.gnu.org/bugs?35560

2012-02-29  Reuben Thomas  <rrt@sc3d.org>

	Update copyright date.

2012-02-24  Gary V. Vaughan  <gary@gnu.org>

	redisplay: draw_line inner-loop optimisations.
	* src/term_redisplay.lua (draw_line): Make bp a local, rather
	that accessing wp.bp repeatedly in the inner loop.
	Set the loop boundaries correctly instead of relying on an
	additional test and break on each iteration.
	Move the wp.ewidth exceeded break test to the top of the loop
	and avoid curses unused attr twiddling on the final iteration.
	Reuse saved get_buffer_char result rather than calling it again
	later in the loop.

	redisplay: don't redraw the entire window on every keypress.
	* src/term_redisplay (draw_window): Unless wp.display is true,
	or start_column has changed since the last redisplay. then
	redraw only the line containing bp.pt.
	* src/buffer.lua (replace_estr): If any eol characters are being
	added or deleted in the current buffer, set wp.redisplay on all
	windows visiting it.
	* src/redisplay.lua (recenter, resync_redisplay): Likewise.
	* src/search.lua (seach): Likewise.

	display: fix a rounding error when recentering a window.
	When the window height is an odd number of rows, wp.topdelta
	would hold a half row in it's result, causing the cursor to
	behave as if it was on the row below the one being displayed
	under it.
	* src/redisplay.lua (recenter): Use math.floor to remove the
	rounding error.

2012-02-22  Gary V. Vaughan  <gary@gnu.org>

	lib: remove memoize, and use std library implementation.
	* src/lib (memoize): Remove.

	configury: add an uninstall-hook to clean up empty directories
	* Makefile.am (uninstall-hook): Clean up empty directories.

	configury: use gitlog-to-changelog instead of git2cl.
	Now we distribute a much more nicely formatted ChangeLog,
	* bootstrap.conf (buildreq): Remove git2cl.
	(gnulib_modules): Add gitlog-to-changelog.
	* build-aux/git-log-fix: Initially empty file to list edits
	needed to generated ChangeLog for correctness.
	* Makefile.am (ChangeLog): New rule to generate ChangeLog at
	distribution time.

	configury: include missing files in distribution tarball.
	* build-aux/Makefile.am: New file.
	(EXTRA_DIST): Add build-aux/zile-help2man-wrapper,
	build-aux/mkdotzile.lua and bootstrap support scripts.
	* Makefile.am: Include it.
	 (EXTRA_DIST): Remove build-aux/zile-help2man-wrapper. Add
	bootstrap.

	maint: install src/tbl_vars.lua.
	In order to run installed lua zile, tbl_vars.la needs to be
	installed correctly.
	* src/Makefile.am (src_zile_LUA): Add src/tbl_vars.lua.
	(EXTRA_DIST): Remove src/tbl_vars.lua.

2012-02-21  Reuben Thomas  <rrt@sc3d.org>

	doc: correct name of dotzile.sample (thanks, Frederic Culot).

2012-02-21  Gary V. Vaughan  <gary@gnu.org>

	tests: correct mis-named test cases.
	* tests/regression/35053_eob_upcase_word.el,
	tests/regression/35053_eob_upcase_word.output,
	tests/setq-nonexistent-variable.el,
	tests/setq-nonexistent-variable.output: Rename from these...
	* tests/regression/35053_eob_upcase-word.el,
	tests/regression/35053_eob_upcase-word.output,
	tests/setq_nonexistent_variable.el,
	tests/setq_nonexistent_variable.output: ...to these to use `-'
	separators where necessary to name tested symbols correctly, or
	else `_' otherwise.

2012-02-20  Gary V. Vaughan  <gary@gnu.org>

	maint: update file copyrights.
	Upgrade to the modern copyright text with a URL instead of a
	street address to get a copy of the license text, and then make
	sure the current year is listed in every file with a copyright
	notice.
	* bootstrap.conf (gnulib_modules): Add update-copyright.
	* cfg.mk (copyright-env): Update years with dashes separating
	sequences of consecutive years.
	* .x-update-copyright: List of exclude patterns for files
	originating outside of Zile.

	tests: remove duplicate quit test case.
	* tests/interactive/quit.el, tests/interactive/quilt.output:
	Delete.

2012-02-19  Gary V. Vaughan  <gary@gnu.org>

	tests: move some zile-only tests back to shared test directory.
	* tests/zile-only/interactive/kill-line.el,
	tests/zile-only/interactive/list-registers.el,
	tests/zile-only/interactive/prefix-argument.el,
	tests/zile-only/interactive/set-file-column.el,
	tests/zile-only/interactive/shell-command-on-region.el: Rewrite
	the macros to avoid using \C-n which doesn't work properly in
	GNU Emacs batch mode. Then move from here...
	* tests/zile-only/interactive/kill-line.el,
	tests/zile-only/interactive/list-registers.el,
	tests/zile-only/interactive/prefix-argument.el,
	tests/zile-only/interactive/set-file-column.el,
	tests/zile-only/interactive/shell-command-on-region.el: ...to
	here.
	* tests/zile-only/interactive/kill-line.output,
	tests/zile-only/interactive/list-registers.output,
	tests/zile-only/interactive/prefix-argument.output,
	tests/zile-only/interactive/set-file-column.output,
	tests/zile-only/interactive/shell-command-on-region.output:
	Move these from here...
	* tests/zile-only/interactive/kill-line.output,
	tests/zile-only/interactive/list-registers.output,
	tests/zile-only/interactive/prefix-argument.output,
	tests/zile-only/interactive/set-file-column.output,
	tests/zile-only/interactive/shell-command-on-region.output:
	...to here.

	tests: skip test cases with no matching .output file.
	* tests/run-lisp-tests.lua: Wrap the inner test loop with a
	check for matching .output files.

	bindings: bind \M-\LEFT and \M-\RIGHT to word motion commands.
	* src/default-bindings.el: Make \M-\LEFT and \M-\RIGHT
	equivalent to \M-b and \M-f respectively.

	keycode: fix crash with unbound metafied non-ASCII keys.
	* src/bind.lua (get_function_by_keys): Ignore non-ASCII keys
	when checking for universal argument digits.

2012-02-19  Gary V. Vaughan  <gary@gnu.org>

	minibuf: fix #35567, display space correctly, and reject non-printables.
	* src/term_minibuf.lua (term_minibuf_read): When we reach the
	end of interpreting minibuffer input, and are about to display
	a thus far uninterpreted keypress, reject any keypress that
	contains a CTRL or META.
	This means we can safely run string.char on the raw key, rather
	than converting to display-syntax before inserting into the
	minibuffer, so SPC and the like are shown correctly.

	See https://savannah.gnu.org/bugs?35567

2012-02-19  Gary V. Vaughan  <gary@gnu.org>

	tests: new regression to demonstrate savannah bug #35567
	Minibuffer displays non-printables instead of ringing the bell.

	See https://savannah.gnu.org/bugs?35567

2012-02-19  Gary V. Vaughan  <gary@gnu.org>

	curses: support \C-? read-syntax for compatibility with Emacs.
	Fix the last few failing tests, which are using \C-? to invoke
	backward-delete-char, which works already with Emacs. \C-? is a
	reliable way to pass ASCII 0x7f to execute-kbd-macro, regardless
	of what terminfo says about the kbs capability (which becomes
	\BACKSPACE).
	* src/term_curses (term_init): Add an entry for \C-? read-syntax
	to the key translation maps.
	* src/default-bindings.el: Bind \C-? and \M-C-? to the same
	commands as \BACKSPACE and \M-\BACKSPACE respectively.

	curses: fix tests/interactive/delete-horizontal-space.el.
	Recognize the \M-\\ and \\ keycodes correctly.
	* src/bind.lua (init_default_bindings): Add an entry for the
	backslash read-syntax to the self-insert bindings list.
	* src/term_curses.lua (term_init): Add an entry for the
	backslash read-syntax to the keycode translation maps.

	funcs: fix tests/interactive/shell-command.el.
	* src/funcs.el (shell-command): When called interactively with a
	prefix argument, the lisp function calling discipline passes
	that prefix argument directly to the command as it's first
	conventional argument.  So \M-1\M-xshell-command\rls\r is
	equivalent to (shell-command 1 nil) not (shell-command "ls" t).
	Detect this by checking whether the first argument matches the
	last prefix arg and the second argument is nil, and adjust
	accordingly.

	registers: fix tests/interactive/copy-to-register.el.
	After changing the internal key representation, we also need a
	way to convert from an interactive unfiltered keypress (e.g. in
	Emacs \C-xrx\F1 saves to register ESC, and inserts OP into the
	current buffer) to a register entry key, while at the same time
	still supporting the (copy-to-register) lisp argument being a
	byte (e.g. (copy-to-register 49 ...) saves to register '1').
	* src/term_curses.lua (term_bytetokey): New function, the
	inverse of term_keytobyte.
	* src/term/registers.lua (copy-to-register): Use
	getkey_unfiltered in interactive mode so that a raw byte is
	returned as per Emacs, and then use term_bytetokey to convert
	that byte to a register key.
	(insert_register, insert-register): Use it to get the register
	key.
	(write_registers_list): Simplify now the we're using a keycode
	as the register list key.

	tests: interactive \C-h is not bound to help on some terminals.
	* tests/zile-only/interactive/describe-bindings.el,
	tests/zile-only/interactive/describe-function.el,
	tests/zile-only/interactive/describe-key.el,
	tests/zile-only/interactive/describe-variable.el: Fix some more
	tests to work on GNU Emacs, by going directly to line-numbers to
	work around an oddity with \C-n in batch mode.
	Also there's no Zile compatible read-syntax for \F1 in GNU
	Emacs, and \C-h is bound to backward-delete-char on some
	terminals, so use execute-extended-command to call the
	functions.
	Then, move from here...
	* tests/interactive/describe-bindings.el,
	tests/interactive/describe-function.el,
	tests/interactive/describe-key.el,
	tests/interactive/describe-variable.el: ...to here, now that
	they work in Emacs again.
	* tests/zile-only/interactive/describe-bindings.output,
	tests/zile-only/interactive/describe-function.output,
	tests/zile-only/interactive/describe-key.output,
	tests/zile-only/interactive/describe-variable.output: Move from
	here...
	* tests/interactive/describe-bindings.output,
	tests/interactive/describe-function.output,
	tests/interactive/describe-key.output,
	tests/interactive/describe-variable.output: ...to here.

	tests: don't use \C-n in interactive tests in Emacs batch mode.
	For some reason, \C-n doesn't work properly with GNU Emacs when
	--batch is given on the command line.
	* tests/interactive/forward-line.el,
	tests/interactive/forward-line.output: So this test makes no
	sense on Emacs: Move these from here...
	* tests/zile-only/interactive/next-line.el,
	tests/zile-only/interactive/next-line.output: ...to here. And
	rename to reflect the fact that \C-n calls next-line.
	* tests/interactive/beginning-of-line.el,
	tests/interactive/delete-blank-lines.el,
	tests/interactive/delete-region.el,
	tests/interactive/indent-for-tab-command.el,
	tests/interactive/kill-region.el,
	tests/interactive/newline-and-indent.el,
	tests/interactive/open-line.el,
	tests/interactive/search-forward-regexp.el,
	tests/interactive/tab-to-tab-stop.el,
	tests/interactive/yank.el: Go directly to the appropriate lines
	to make the test cases work identically to their lisp
	counterparts to work around the weird --batch mode problem with
	relative line motion commands.

	tests: upcase-region and downcase-region are disabled in GNU Emacs.
	Make these tests zile-only, because we don't have the enable
	disable machinery in zile.
	* tests/interactive/downcase-region.el,
	tests/interactive/downcase-region.output,
	tests/interactive/upcase-region.el,
	tests/interactive/upcase-region.output: Move from here...
	* tests/zile-only/interactive/downcase-region.el,
	tests/zile-only/interactive/downcase-region.output,
	tests/zile-only/interactive/upcase-region.el,
	tests/zile-only/interactive/upcase-region.output: ...to here.

	tests: fix tests/interactive/just-one-space.el for Emacs.
	Use Emacs compatible read-syntax for spaces.
	* tests/interactive/just-one-space.el: Use literal spaces
	instead of zile-only \SPC read-syntax for spaces.

	tests: fix tests/interactive/backward-sexp.el for Emacs.
	Emacs behaves strangely in batch mode, adding a paren on the end
	of the second line of a file for (execute-kbd-macro "\M-<\C-e)")
	so put the sexp closing paren at the end of the last line
	instead, which even batch mode does correctly.
	* tests/interactive/backward-sexp.el: Put the closing paren
	before the final newline of the test file.
	* tests/interactive/backward-sexp.output: Adjust.

	tests: many new tests - interactive versions of all lisp tests.
	Unfortunately some of the new interative tests do not work under
	emacs batch mode, either because they need input from the
	minibuffer (which reads directly from stdin in batch mode) or
	because emacs throws an inexplicable error in a few cases (these
	are noted in the test sources).  At the moment some of these new
	tests also tickle bugs in Zile.
	* tests/interactive/backward-char.el,
	tests/interactive/backward-char.output,
	tests/interactive/backward-delete-char.el,
	tests/interactive/backward-delete-char.output,
	tests/interactive/backward-kill-word.el,
	tests/interactive/backward-kill-word.output,
	tests/interactive/backward-paragraph.el,
	tests/interactive/backward-paragraph.output,
	tests/interactive/backward-sexp.el,
	tests/interactive/backward-sexp.output,
	tests/interactive/backward-word.el,
	tests/interactive/backward-word.output,
	tests/interactive/beginning-of-buffer.el,
	tests/interactive/beginning-of-buffer.output,
	tests/interactive/beginning-of-line.el,
	tests/interactive/beginning-of-line.output,
	tests/interactive/capitalize-word.el,
	tests/interactive/capitalize-word.output,
	tests/interactive/copy-region-as-kill.el,
	tests/interactive/copy-region-as-kill.output,
	tests/interactive/copy-to-register.el,
	tests/interactive/copy-to-register.output,
	tests/interactive/delete-blank-lines.el,
	tests/interactive/delete-blank-lines.output,
	tests/interactive/delete-char.el,
	tests/interactive/delete-char.output,
	tests/interactive/delete-horizontal-space.el,
	tests/interactive/delete-horizontal-space.output,
	tests/interactive/delete-region.el,
	tests/interactive/delete-region.output,
	tests/interactive/downcase-region.el,
	tests/interactive/downcase-region.output,
	tests/interactive/downcase-word.el,
	tests/interactive/downcase-word.output,
	tests/interactive/end-of-buffer.el,
	tests/interactive/end-of-buffer.output,
	tests/interactive/end-of-line.el,
	tests/interactive/end-of-line.output,
	tests/interactive/exchange-point-and-mark.el,
	tests/interactive/exchange-point-and-mark.output,
	tests/interactive/fill-paragraph.el,
	tests/interactive/fill-paragraph.output,
	tests/interactive/find-file-read-only.el,
	tests/interactive/find-file-read-only.output,
	tests/interactive/forward-char.el,
	tests/interactive/forward-char.output,
	tests/interactive/forward-line.el,
	tests/interactive/forward-line.output,
	tests/interactive/forward-paragraph.el,
	tests/interactive/forward-paragraph.output,
	tests/interactive/forward-sexp.el,
	tests/interactive/forward-sexp.output,
	tests/interactive/forward-word.el,
	tests/interactive/forward-word.output,
	tests/interactive/goto-line.el,
	tests/interactive/goto-line.output,
	tests/interactive/indent-for-tab-command.el,
	tests/interactive/indent-for-tab-command.output,
	tests/interactive/insert-file.el,
	tests/interactive/insert-file.output,
	tests/interactive/just-one-space.el,
	tests/interactive/just-one-space.output,
	tests/interactive/kill-buffer.el,
	tests/interactive/kill-buffer.output,
	tests/interactive/kill-region.el,
	tests/interactive/kill-region.output,
	tests/interactive/kill-sexp.el,
	tests/interactive/kill-sexp.output,
	tests/interactive/kill-word.el,
	tests/interactive/kill-word.output,
	tests/interactive/mark-paragraph.el,
	tests/interactive/mark-paragraph.output,
	tests/interactive/mark-sexp.el,
	tests/interactive/mark-sexp.output,
	tests/interactive/mark-whole-buffer.el,
	tests/interactive/mark-whole-buffer.output,
	tests/interactive/mark-word.el,
	tests/interactive/mark-word.output,
	tests/interactive/newline-and-indent.el,
	tests/interactive/newline-and-indent.output,
	tests/interactive/newline.el, tests/interactive/newline.output,
	tests/interactive/open-line.el,
	tests/interactive/open-line.output, tests/interactive/quit.el,
	tests/interactive/quit.output,
	tests/interactive/search-backward-regexp.el,
	tests/interactive/search-backward-regexp.output,
	tests/interactive/search-backward.el,
	tests/interactive/search-backward.output,
	tests/interactive/search-forward-regexp.el,
	tests/interactive/search-forward-regexp.output,
	tests/interactive/search-forward.el,
	tests/interactive/search-forward.output,
	tests/interactive/set-variable.el,
	tests/interactive/set-variable.output,
	tests/interactive/shell-command.el,
	tests/interactive/shell-command.output,
	tests/interactive/tab-to-tab-stop.el,
	tests/interactive/tab-to-tab-stop.output,
	tests/interactive/transpose-chars.el,
	tests/interactive/transpose-chars.output,
	tests/interactive/transpose-lines.el,
	tests/interactive/transpose-lines.output,
	tests/interactive/transpose-sexps.el,
	tests/interactive/transpose-sexps.output,
	tests/interactive/transpose-words.el,
	tests/interactive/transpose-words.output,
	tests/interactive/upcase-region.el,
	tests/interactive/upcase-region.output,
	tests/interactive/upcase-word.el,
	tests/interactive/upcase-word.output, tests/interactive/yank.el,
	tests/interactive/yank.output,
	tests/zile-only/interactive/describe-bindings.el,
	tests/zile-only/interactive/describe-bindings.output,
	tests/zile-only/interactive/describe-function.el,
	tests/zile-only/interactive/describe-function.output,
	tests/zile-only/interactive/describe-key.el,
	tests/zile-only/interactive/describe-key.output,
	tests/zile-only/interactive/describe-variable.el,
	tests/zile-only/interactive/describe-variable.output,
	tests/zile-only/interactive/fill-paragraph_2.el,
	tests/zile-only/interactive/fill-paragraph_2.output,
	tests/zile-only/interactive/goal-column.el,
	tests/zile-only/interactive/goal-column.output,
	tests/zile-only/interactive/kill-line.el,
	tests/zile-only/interactive/list-buffers.el,
	tests/zile-only/interactive/list-buffers.output,
	tests/zile-only/interactive/list-registers.el,
	tests/zile-only/interactive/list-registers.output,
	tests/zile-only/interactive/next-line.el,
	tests/zile-only/interactive/next-line.output,
	tests/zile-only/interactive/previous-line.el,
	tests/zile-only/interactive/previous-line.output,
	tests/zile-only/interactive/set-fill-column.el,
	tests/zile-only/interactive/set-fill-column.output,
	tests/zile-only/interactive/shell-command-on-region.el,
	tests/zile-only/interactive/shell-command-on-region.output,
	tests/zile-only/interactive/undo.el,
	tests/zile-only/interactive/undo.output: New test cases.

	tests: save failed test results in subdirectories.
	Prior to this patch, there was no way to tell if
	tests/switch-to-buffer.input came from a failed
	tests/switch-to-buffer.el or
	tests/interactive/switch-to-buffer.el.
	* tests/run-lisp-tests.lua (edit_file, args): Construct file
	paths by substituting root directories instead of assuming the
	root will always be builddir/tests/.

	completion: fix #35561, completion buffer header display, and simplify.
	Following the simplification from a58bf8fa, returning the header
	for insertion after writing completions directly to the buffer
	causes the header to be inserted at the end of the file list
	instead of at the head.
	* src/completion.lua (completion_write): Insert the completion
	buffer header line directly, and remove local variable `s'.
	(popup_completion): Use completion_write as the call-back.
	(write_completion): Remove.

2012-02-19  Gary V. Vaughan  <gary@gnu.org>

	completion: fix #35560, typo from c95e70011
	* src/completion.lua (completion_readdir): Following the
	simplification from c95e70011, `base' no longer exists - return
	`path' instead.

	See https://savannah.gnu.org/bugs?35560

2012-02-19  Gary V. Vaughan  <gary@gnu.org>

	test: new regression to demonstrate savannah bug #35560
	Pressing tab during minibuffer file completion crashes zile.

	See https://savannah.gnu.org/bugs?35560

2012-02-18  Reuben Thomas  <rrt@sc3d.org>

	Makefile.am: Add a couple of FIXMEs.

	maint: post-release administrivia
	* NEWS: Add header line for next release.
	* .prev-version: Record previous version.
	* cfg.mk (old_NEWS_hash): Auto-update.

	version 2.4.6
	* NEWS: Record release date.

	NEWS: add for 2.4.6.

	gnulib: update README-release patch.

	gnulib: Update.

	gnulib: update patches; nothing substantive.

	configure.ac: bump version to 2.4.6.

	search.lua: fix crash in do_search (fixes #35562).

	search.c: fix crash in do_search (#35562).

2012-02-17  Gary V. Vaughan  <gary@gnu.org>

	keycode: make sure to only pass the key string to keycode().
	* src/keycode (keycode_mt:__sub): gsub returns a tuple, which
	was being passed to the memoized keycode function. Now that
	memoize use all arguments as a key, the extra gsub return value
	was causing the wrong value to be returned.  This fix takes care
	to discard the unused second return value of gsub before calling
	keycode so that the correct value can be looked up in the cache
	by memoize.

2012-02-16  Gary V. Vaughan  <gary@gnu.org>

	lib: make memoize work with multi-arg functions.
	The current implementation only works on functions that take
	a single argument.  Far more useful to have a generic
	memoization function that works on any function.
	* src/lib.lua (memoize): stringify a table of all arguments to
	use as a cache key.

	curses: be robust to setting undefined attributes.
	* src/term_curses.lua (term_attrset): Default to 0 if no
	attribute given.

2012-02-16  Gary V. Vaughan  <gary@gnu.org>

	curses: refactor curses attributes to display table.
	Instead of maintaining and looking up from a map of magic numbers to set
	display attributes, speed up and simplify execution by setting abstract
	attributes directly.
	* src/term_curses.lua (attr_map): Replace this local
	variable...
	* src/main.lua (display): ...with this global table.
	* src/term_curses.lua (term_init): Initialise display with abstract
	* curses attribute codes.
	(term_attrset): Simplify accordingly.
	* src/term_redisplay.lua (draw_line, draw_status_line)
	(term_tidy): Set attributes using the new display table.

	Conflicts:

		src/main.lua

2012-02-15  Gary V. Vaughan  <gary@gnu.org>

	tests: fix typo in run tests script.
	* tests/run-lisp-tests.lua (run_test): Use editor_name parameter
	in place of hard coded "Emacs".

2012-02-08  Reuben Thomas  <rrt@sc3d.org>

	maint: post-release administrivia
	* NEWS: Add header line for next release.
	* .prev-version: Record previous version.
	* cfg.mk (old_NEWS_hash): Auto-update.

	version 2.4.5
	* NEWS: Record release date.

	release: bump version to 2.4.5 and add NEWS.

	gnulib: Update gnulib.

	buffer.c: fix bugs in estr_replace.

	Fix egregious bug when opening non-existent file, adding test for it.

	run-lisp-tests.pl: use Emacs-only arguments only when running Emacs.

2012-02-05  Reuben Thomas  <rrt@sc3d.org>

	buffer.c: fix typo in comment.

2012-02-03  Reuben Thomas  <rrt@sc3d.org>

	tests: Re-enable disabled tests.

	maint: post-release administrivia
	* NEWS: Add header line for next release.
	* .prev-version: Record previous version.
	* cfg.mk (old_NEWS_hash): Auto-update.

	version 2.4.4
	* NEWS: Record release date.

	NEWS: add news for 2.4.4.

	main.c: fix uninitialized variable (thanks, Valgrind!).

	doc/Makefile.am: minor distcheck fixes.

	configure.ac: bump version to 2.4.4.

	tests: reorder so that terminal is set back to correct size after tests with fixed size.

	configury: update gnulib and autoconf-archive.

	Makefile.am: make loc-tests work again and add run-lisp-tests.lua to loc-all.

	run-lisp-tests.pl: tidy code very slightly.

	Makefile.am: Add run-lisp-tests.pl to sources for loc-all.

	run-lisp-tests.lua: simplify as on C branch.

	run-lisp-tests.pl: minor whitespace fix.

2012-02-03  Reuben Thomas  <rrt@sc3d.org>

	tests: re-enable tests that depend on fixed screen size.
	run-lisp-tests.pl: extract common code for running tests into a
	subroutine.

	Disable regression test for 33910 which will not (soon) be fixed on
	the C branch.

2012-02-03  Gary V. Vaughan  <gary@gnu.org>

	curses: handle cursor key mode changes across suspend/resume.
	* src/term_curses.lua (term_getkey_unfiltered): Before fetching
	any key presses from the terminal, be sure to put the terminal
	back into application mode after resuming from a suspend signal.
	(term_init): Set a SIGCONT handler to flag that application mode
	needs to be set again before fetching any more keys.
	(resumed): Initially set to `true' to force application mode
	during initialisation.

	Conflicts:

		src/term_curses.lua

2012-02-03  Gary V. Vaughan  <gary@gnu.org>

	refactor: save a stack frame on term_ungetkey.
	* src/term_curses.lua (keytocodes): Rename from this...
	(term_ungetkey): ...to this, and bake in the previous
	implementation that simply queued its results in the key buffer.

	Conflicts:

		src/term_curses.lua

2012-02-03  Gary V. Vaughan  <gary@gnu.org>

	refactor: avoid keycode to readsyntax to keycode cycles.
	* src/getkey.lua (pushkey): Send keycode directly.
	* src/macro.lua (process_keys): Send keycode directly.
	* src/term_curses.lua (term_ungetkey): No need to convert back
	to a keycode, as we always receive keycodes already now.

2012-02-03  Gary V. Vaughan  <gary@gnu.org>

	refactor: term_keytocodes should be a local function
	* src/term_curses.lua (term_keytocodes): Rename this global
	function declaration...
	(keytocodes): ..back to this local function declaration.
	(term_keytobyte): New function, returns the byte value
	represented by a simple keycode, or else returns nil for
	keycodes that represent escape sequences or non-ASCII
	characters.
	* src/bind.lua (self_insert_command): Rewrite to use
	term_keytobyte(), and simplify accordingly.
	* src/search.lua (isearch): Rewrite to use term_keytobyte()
	maintaining good interface separation from term_curses.lua.

	Conflicts:

		src/bind.lua
		src/search.lua
		src/term_curses.lua

2012-02-03  Gary V. Vaughan  <gary@gnu.org>

	refactor: save a stack frame on term_getkey_unfiltered.
	* src/term_curses.lua (get_char): Rename from this...
	(term_getkey_unfiltered): ...to this, and remove the previous
	implementation that simply called the old get_char().

	Conflicts:

		src/term_curses.lua

2012-02-03  Gary V. Vaughan  <gary@gnu.org>

	curses: fix #33910, don't use curses keypad mode.
	Unfortunately, relying on curses keypad mode is a mixed
	blessing: on the one hand, it saves us from interpreting
	terminal specific escape sequences; on the other hand not being
	able to push the extra curses key codes into the keybuffer for
	later reuse with `execute_kbd_macro' and `quoted_insert' would
	entail a lot of low level terminfo work to split the escape
	sequence into the single character affected by quoted_insert,
	and the remaining characters.  Since we're going to have to
	query terminfo and map escape sequences to key presses anyway,
	we might as well simplify the code paths and turn off curses
	keypad mode so that we can do all our own escape sequence
	lookups and rebuffering.
	* src/term_curses.lua (ESC): Manifest constant for ASCII escape
	key.
	(ESCDELAY): Milliseconds to wait before treating an incoming
	escape keypress as an actual escape keycode.
	(keypad): New function, to turn on and off application mode so
	that cursor key escape sequences match the terminfo database.
	(term_init): Convert codetokey to a stdlib tree for fast escape
	sequence lookup, and populate both codetokey and keytocode
	exhaustively.
	Use our keypad new function instead of curses' version.
	(term_close): Revert terminal to cursor mode on exit.
	(unget_codes): Push a list of curses keypresses into the key
	buffer.
	(term_ungetkey): Rewrite as a wrapper for unget_codes().
	(term_getkey): Get input characters from the terminal until a
	keycode lookup is successful, taking care to differentiate
	between standalone ESC keypress and longer escape sequences.
	(term_keytocodes): Handle multi-character escape sequences.

	See https://savannah.gnu.org/bugs/?33910

2012-02-03  Gary V. Vaughan  <gary@gnu.org>

	keycode: ensure equivalent read syntaxes map to the same keycode atom.
	* keycode.lua (codetoname): Remove spurious \t mapping.
	(keynametocode_map): Use KBD_TAB consistently.
	(keyreadsyntax_map): Make sure there is only one mapping in this
	direction for the keynametocode_map N:1 entries.
	(keycode): Take care not to generate a new atom for equivalent read
	syntaxes.

2012-02-03  Gary V. Vaughan  <gary@gnu.org>

	keycode: replace keyvectodesc with a tostring metamethod.
	* src/keycode.lua (keyvectodesc): Remove.
	(keystrtovec): Add __tostring metamethod.
	* src/bind.lua, src/help.lua: Use new API.

	Conflicts:

		src/bind.lua
		src/help.lua

2012-02-03  Reuben Thomas  <rrt@sc3d.org>

	Make set_buffer_pt local to buffer.lua, similarly to C branch.

2012-02-03  Gary V. Vaughan  <gary@gnu.org>

	keycode: use keycode objects to represent key presses internallp.
	Don't waste time repeatedly converting back and forth between
	lists of keys as bitmaps and strings. Read input key presses
	with curses getch, immediately converting to keycodes (or lists
	of keycodes when dealing with a key sequence) and then use those
	throughout the rest of the code, eventually converting to
	display syntax when outputting to the user.
	* src/lib.lua (memoize): New function to memoize the results of
	long calculations.
	* src/main.lua (KBD_CTRL, KBD_META): Move global declarations
	from here...
	* src/keycode (KBD_CTRL, KBD_META): ...to local declarations
	* here.
	(keycode_mt): Metatable for keycodes, with metamethods for
	converting to a display string, and querying, adding &
	subtracting modifier keys to the keycode object.
	(keycode): Generate a memoized keycode atom from the read syntax
	for any key chord.
	(codetoname, chordtodesc): Remove, now that tostring is used.
	* src/term_curses.lua (term_init): Use escape keycode instead of
	KBD_META.
	(keytocodes): Remamed local function from this...
	(term_keytocodes): ...to this global function.
	* src/bind.lua (self_insert_command): Use term_keytocodes to get
	back keypresses for insertion.
	(init_default_bindings): Be sure to also bind special keycodes
	\SPC, \TAB and \REt to self-insert-command.
	* src/bind.lua, src/funcs.lua, src/search.lua,
	src/term_curses.lua, src/term_minibuf.lua: Use keycode
	metamethods instead of bitwise operations.

	Conflicts:

		src/keycode.lua
		src/main.lua
		src/term_curses.lua

2012-02-03  Gary V. Vaughan  <gary@gnu.org>

	curses: put term_curses.lua in a more logical order
	...so that term_init is first and then key fetching, and
	ungetkey functions are each together, finally followed by the
	rest.

	curses: prepopulate curses key lookup tables
	Look up internal representations for curses keycodes and vice
	versa directly with a functable (table with __call metamethod)
	and save making a series of comparisons to calculate them on
	every lookup.
	* src/term_curses.lua (codetokey_map, keytocode_map): Remove...
	(codetokey, keytocode): ...and replace with functables.
	(term_init): Prepopulate codetokey with all possible 8-bit
	keypresses, and be careful not to introduce ambiguity when
	inverting the table for keytocode functable.
	(codetokey): Remove function (replace by functable above).
	(keytocodes): Adjust to use prepopulated keytocode functable.

	keycode: lookup keysyms as required, and hide KDB_* declarations.
	* src/main.lua (KBD_CANCEL, KBD_TAB, KBD_RET, KBD_PGUP)
	(KBD_PGDN, KBD_HOME, KBD_END, KBD_DEL, KBD_BS, KBD_INS)
	(KBD_LEFT, KBD_RIGHT, KBD_UP, KBD_DOWN, KBD_F1, KBD_F1, KBD_F2)
	(KBD_F3, KBD_F4, KBD_F5, KBD_F6, KBD_F7, KBD_F8, KBD_F9)
	(KBD_F10, KBD_F11, KBD_F12): Moved from global namespace here...
	* src/keycode.lua: ...to file local namespace here.
	* src/file.lua, src/funcs.lua, src/minibuf.lua,
	src/registers.lua, src/search.lua, src/term_curses.lua,,
	src/term_minibuf.lua: Adjust previous hardcoded global symbols
	to perform dynamic keycode lookup on demand.

	keycode: add API to get internal representation of a key string.
	* src/keycode.lua (keycode): New function.

2012-02-01  Reuben Thomas  <rrt@sc3d.org>

	run-lisp-tests.lua: Use mkdir -p rather than Lua code.

	tests: move TERM setting into Makefile.am
	As a result, fold test-bad-argument into Makefile.am, and remove
	TERM-setting code from run-lisp-tests.pl.

	Reorder stanzas for consistency.

	run-lisp-tests.lua: reposition an important comment more visibly.

	tests: move TERM setting into tests/Makefile.am.
	As a result, fold test-bad-argument into tests/Makefile.am, and remove
	TERM-setting code from run-lisp-tests.lua.

	file.lua: update docstrings of find-file{,-read-only} to match Emacs.

	tests: make consistent with Lua branch.

	file.c: allow find-file and find-file-read-only to take non-interactive args.

2012-02-01  Reuben Thomas  <rrt@sc3d.org>

	tests: make consistent with C branch.
	Rename negative-prefix-argument* to negative_prefix-argument*

	Add quit.output so that the (trivial) quit.el is run as a test.

	Fix misnamed command in quit.el (no idea how test-bad-argument
	was working!)

2012-01-31  Reuben Thomas  <rrt@sc3d.org>

	Add and use constant empty estr estr_empty.

	Update copyright years.

2012-01-31  Reuben Thomas  <rrt@sc3d.org>

	Improve efficiency of replace_estr by not moving or writing more data than absolutely necessary: use new estr_replace_estr and estr_len, and update cur_bp->pt directly.
	Replace estr_replace with estr_replace_estr, which, like
	astr_replace_nstr, overwrites rather than inserting.

	Add estr_lines, which counts the number of lines in an estr, and
	estr_len, which returns the length of an estr assuming conversion to a
	given line ending.

	Make set_buffer_pt static, as it is not used outside buffer.c.

2012-01-31  Reuben Thomas  <rrt@sc3d.org>

	tests: Rename Zile-only interactive tests consistently.

	tests: Rename Zile-only interactive tests consistently.

2012-01-27  Reuben Thomas  <rrt@sc3d.org>

	Makefile.am: update woger call for Freecode rename and adding separate email and notes releases.

	term_curses.lua: rewrite some C-ish code in a more Lua-y style.

	term_redisplay.lua: remove redundant comment.

	term_redisplay.lua: hoist a call to buffer_line_len out of a loop to improve performance on long lines

	Optimize term_redisplay for printable characters to fix performance bug.

	Update ax_with_curses.m4 to latest version.

	basic.lua: optimize get_goalc_bp to improve performance.

	keycode.lua: update comment of keyvectodesc.

	file.lua: simplify find_file slightly.

	file.c: simplify find_file slightly.

	mkvars.pl: remove do-nothing substitution.

	Add machinery to make dotzile.sample.

	tests: remove tests for defunct overwrite mode.

2012-01-26  Reuben Thomas  <rrt@sc3d.org>

	Fix FIXME: implement replace_estr with estr_cat, and estr_cat with new estr_replace based on original replace_estr. Fold replace into new replace_estr.

2012-01-25  Reuben Thomas  <rrt@sc3d.org>

	getkey.lua: remove some debugging code.

2012-01-24  Reuben Thomas  <rrt@sc3d.org>

	file.lua: fix potential crash in insert-buffer.

	killring.lua: fix undo positioning for kill_text (used by word and sexp killing)

	completion.lua: simplify completion_readdir slightly.

2012-01-21  Reuben Thomas  <rrt@sc3d.org>

	Make offset_to_point into offset_to_line and remove Point type.

2012-01-19  Reuben Thomas  <rrt@sc3d.org>

	buffer.c: remove redundant setting of FLAG_SET_RESYNC.

	line.c: improve a comment.

	term_curses.lua: simplify get_char slightly.

	getkey.lua: fix a comment typo.

2012-01-17  Reuben Thomas  <rrt@sc3d.org>

	Don't beep when RET pressed in minibuffer (fix #33909 for Lua branch).

	Various changes to make the buffer gap work with non-zero gap.

2012-01-16  Gary V. Vaughan  <gary@gnu.org>

	search: don't overwrite incremental search string with find error.
	* src/search.lua (isearch): Append to the minibuffer status
	update rather than overwriting when there is a find error to
	report.

2012-01-16  Gary V. Vaughan  <gary@gnu.org>

	test: new regression test to demonstrate savannah bug #33910
	Executing a macro containing quoted-insert of a non-ASCII
	keycode crashes Zi.

	See https://savannah.gnu.org/bugs/?33910

2012-01-15  Gary V. Vaughan  <gary@gnu.org>

	main: eliminate duplicated setup_main_screen code.
	* src/main.lua (main): Remove redundant setup code, already
	present in this function.

	maint: allow trailing whitespace in diffs

	maint: update NEWS hash.
	* cfg.mk (old_NEWS_hash): This had gone out of sync. Run `make
	update-NEWS-hash' to correct it.

	tests: use repeat arguments rather than multiple calls of functions

	refactor: use call chaining on minibuf_error.
	* src/editfns.lua (ding): Always return false.
	* src/minibuf.lua (minibuf_error): Return the false result of
	`ding ()' rather than a separate `return false' statement.
	* src/basic.lua (scroll_down, scroll_up): Similarly for the
	false result of `minibuf_error ()'.
	* src/buffer.lua (delete_char): Likewise.
	* src/file.lua (copy_file, backup_and_write, find_file):
	Likewise.
	* src/funcs.lua (keyboard-quit, exchange-point-and-mark)
	(fill-column, pip_command, move_sexp, transpose_subr): Likewise.
	* src/help.lua (describe-key): Likewise.
	* src/file.lua (insert-buffer, insert-file): Similarly for
	setting `ok' with call chaining rather than a separate return
	statement.
	* src/funcs.lua (shell-command-on-region): Likewise.

	refactor: simplify short functions ending with conditional return.
	Use `return <condition> and <result> or <failure>' instead of an
	explicit `if' block, if the result is short and easy to read.
	* src/basic.lua (goto-char): Reduce return calculation to one
	liner.
	* src/estr.lua (estr_prev_line, estr_next_line): Likewise.
	* src/lisp.lua (get_function_interactive, get_function_doc)
	(evaluateBranch, execute_function): Likewise.

	tests: number regression test 34193 correctly.
	* tests/regression/34194_interactive_insert.el,
	tests/regression/34194_interactive_insert.output: Renamed from
	this...
	* tests/regression/34194_interactive_insert.el,
	tests/regression/34194_interactive_insert.output: ...to this, in
	order to match the savannah bug number.

	doc: don't mention obsolete `dotzile-extra.el' file.
	* doc/man-extras (files): Remove dotzile-extra.el reference.

	doc: mention lua in SEE ALSO man section.
	* doc/man-extras(see also): Add lua.

2012-01-14  Gary V. Vaughan  <gary@gnu.org>

	strict: fix undeclared local variables for stdlib strict.
	* src/buffer.lua (move_line): Declare variable `o' as local.
	* src/search.lua (query-replace): Initialise `ok' variable
	before use.
	* src/term_curses.lua (attr_map): Move declaration
	lexicographically above first reference.

	ui: remove spurious unused function argument
	* src/term_redisplay.lua (draw_window): function
	calculate_highlight_region takes a single parameter.  Remove the
	bogus 2nd argument, which was undefined and preventing zile from
	starting up.

2012-01-13  Reuben Thomas  <rrt@sc3d.org>

	term_curses.lua: add missing declaration.

	loadlua.lua.in: use stdlib’s strict module (no longer on by default) and immediately fix a bug in require_version that it finds!

	src/Makefile.am: remove executable if syntax-check fails, so make will fail a second time.

2012-01-12  Reuben Thomas  <rrt@sc3d.org>

	Use replace_estr instead of replace, and remove the latter.

2012-01-11  Gary V. Vaughan  <gary@gnu.org>

	bootstrap: fix addition of bogus empty arguments bug.
	* build-aux/options-parser (func_parse_options): If there are no
	arguments left after hook functions return, break out of the
	parsing loop right away to avoid adding bogus empty arguments to
	the positional parameters.

	bootstrap: register bootstrap_validate_options hook function.
	* bootstrap (bootstrap_validate_options): Make sure this
	function is correctly registered so that func_run_hooks calls
	it at the appropriate point.

	bootstrap: escape `eval \$bs_echo args' correctly.
	* build-aux/options-parser (func_fatal_help): Make sure help is
	displayed correctly when $bs_echo contains active shell
	characters.
	(func_usage_message): Likewise.

	bootstrap: fix typo so that --skip-git works with --gnulib-srcdir again
	* bootstrap (func_gnulib_tool): Keep the call to
	func_install_gnulib_non_module_files inside the $gnulib_tool
	check.
	Reported by Simon Josefsson.

	bootstrap: fix typo so that --gnulib-srcdir=../gnulib works again
	* build-aux/options-parser (func_parse_options):
	s/\$opt/$_G_opt/ so that long option arguments behind equals
	signs are not ignored.
	Reported by Simon Josefsson.

	bootstrap: fix addition of bogus empty arguments bug.
	* build-aux/options-parser (func_parse_options): If there are no
	arguments left after hook functions return, break out of the
	parsing loop right away to avoid adding bogus empty arguments to
	the positional parameters.

	bootstrap: register bootstrap_validate_options hook function.
	* bootstrap (bootstrap_validate_options): Make sure this
	function is correctly registered so that func_run_hooks calls
	it at the appropriate point.

	bootstrap: escape `eval \$bs_echo args' correctly.
	* build-aux/options-parser (func_fatal_help): Make sure help is
	displayed correctly when $bs_echo contains active shell
	characters.
	(func_usage_message): Likewise.

	bootstrap: fix typo so that --skip-git works with --gnulib-srcdir again
	* bootstrap (func_gnulib_tool): Keep the call to
	func_install_gnulib_non_module_files inside the $gnulib_tool
	check.
	Reported by Simon Josefsson.

	bootstrap: fix typo so that --gnulib-srcdir=../gnulib works again
	* build-aux/options-parser (func_parse_options):
	s/\$opt/$_G_opt/ so that long option arguments behind equals
	signs are not ignored.
	Reported by Simon Josefsson.

2012-01-10  Reuben Thomas  <rrt@sc3d.org>

	Add move_with_uniarg and use it to remove some shim functions.

	funcs.lua: Simplify move_line and un-break move_sexp.

	killring.lua: Avoid an unnecessary nested undo sequence.

	Simplify transpose, removing forward_char and backward_char; use move_char elsewhere.

2012-01-09  Reuben Thomas  <rrt@sc3d.org>

	Make Buffer’s o member abstract, and remove get_buffer_pt.

	Simplify fill-paragraph, avoiding use of get_buffer_pt.

	Use region_new instead of constructing Regions manually.

	Rearrange buffer methods ready for introduction of gap.

	buffer.c: Remove some unnecessary includes.

	Move case-replace processing from buffer_replace to query-replace.

2012-01-09  Reuben Thomas  <rrt@sc3d.org>

	Rename get_buffer_line_len to buffer_line_len for slightly more consistency.
	Make better use of existing buffer/estr functions in one or two
	places.

	Fix astr_cat (previously unused).

2012-01-09  Reuben Thomas  <rrt@sc3d.org>

	estr.lua: Remove unused estr_dup and add a FIXME.

	buffer.lua: minor simplification to get_buffer_region.

	tests: Remove old versions of tests renamed in previous commit.

	tests: Rename some misnamed tests.

	buffer.c: Fix potential bug in get_buffer_region.

	Make Buffer text opaque within buffer.lua.

2012-01-09  Reuben Thomas  <rrt@sc3d.org>

	Make buffer text opaque for getting (allow it to be set wholesale) outside buffer.lua.
	Reimplement delete-blank-lines more simply.

	Fix other minor bugs and make simplifications.

2012-01-09  Reuben Thomas  <rrt@sc3d.org>

	Various bits of simplification and tidy-up.

	Replace remaining instances of leT by true.

	Simplify save_buffer slightly.

	main.lua: Fold setup_main_screen into main.

	Fix undo bug introduced recently; note why undo is problematic in Emacs.

	Rename fill-paragraph-2 test to fill-paragraph_2 everywhere.

	Use new io.slurp instead of estr_readf.

	Fix file encoding preservation on read, by rewriting insert_file as estr_fread, and allowing buffer’s text member to be set.

	term_minibuf.lua: Fix typo.

	Fix and simplify set_buffer_names.

	Makefile.am: Fix syntax check.

	file.lua: Fix missing space in docstring.

	file.lua: Fix possible comparison of nil with string.

	Fix highlighting.

2012-01-08  Reuben Thomas  <rrt@sc3d.org>

	term_minibuf.lua: Fold term_minibuf_read into its only callee, and simplify.

	Fold term_full_redisplay into its only caller.

	Remove some unnecessary/incorrect uses of undo sequences.

	macro.lua: Whitespace fix.

	Remove undo_nosave.

	undo.lua: Remove unused doing_undo variable.

	Update gnulib.

	Move more command machinery into call_command for better fidelity between interactive and non-interactive execution.

	Simplify undo API and code.

	Fix a copyright year.

	Simplify screen drawing.

	Use estr_line_len to implement get_buffer_line_len.

	Don't store terminal width and height; read it directly each time.

	term_redisplay.lua: Remove a static var and fold two once-called functions into their callers.

2012-01-07  Reuben Thomas  <rrt@sc3d.org>

	Simplify and fix move_sexp.

	Update copyright years.

	src/Makefile.am: run Zile when building script to check syntax.

	Add missing dependencies for manual page generation.

	Add goal column test (from master).

	Make last_command updating work in scripts.

	Remove fixed FIXME.

	line.lua: Avoid repeatedly taking lengths of strings in a loop.

	file.lua: Make compact_path return only the advertised string.

	Improve performance of insert_file.

	basic.lua: Remove redundant settings of resync flag.

	basic.lua: Use goto_offset instead of setting bp.o directly.

	Correct default Defun return value to be true, as on C branch.

	Simplify goto-char and goto-line and improve their docstrings.

	Update gnulib.

	Use Lua booleans everywhere instead of leNIL and leT.

	buffer.c: Simplify move_line (after lua branch).

	killring.c: when adding a newline to kill ring in kill-line, make sure it's really a newline.

2012-01-05  Reuben Thomas  <rrt@sc3d.org>

	Call move_line directly to simplify some code.

	Fix goal column treatment.

	README: remove mention of binary size; we have no binary!

	Add support for underlined text.

	term_redisplay.lua: Simplify draw_status_line slightly.

	Remove window_pt.

	Make split-window copy the current topdelta too, and add window_o.

	buffer.lua: Simplify move_line.

	Update gnulib.

2012-01-04  Reuben Thomas  <rrt@sc3d.org>

	Remove some excessive comments.

	Add region_new and use it to simplify calculate_the_region and calculate_highlight_region.

	Simplify in_region and its callers and make it local.

	term_redisplay.lua: slight simplification to term_redisplay.

	window.lua: Change error message to be like Emacs.

	Simplify window.lua slightly.

	Update copyright years.

	Remove get_marker_pt.

	Remove get/set_region_start/end.

	Rename get_buffer_pt_o to get_buffer_o now there is no longer a ‘pt’.

	Change some calls to goto_point to calls to goto_offset.

	Remove line_end_position and line_beginning_position, and remove uniarg support from end-of-line and beginning-of-line.

	Remove point_min, point_max, gotobob and gotoeob; add goto_offset, and rewrite goto_point in terms of it.

	Simplify goto_point, and break out some of move_line as resync_goalc.

2012-01-04  Reuben Thomas  <rrt@sc3d.org>

	Replace Buffer’s pt member with a simple offset, o. Remove Buffer’s last_line member. Rename the old get_buffer_o function to get_buffer_line_o.
	Fix calculation of buffer percentage position in mode line to be more
	Emacs-like.

	Make adjust_markers return the updated point, so that it can be used
	as argument to goto_point later, after the buffer has been adjusted.

	Simplify delete_region by using buffer_replace.

	Simplify move_line.

2012-01-04  Reuben Thomas  <rrt@sc3d.org>

	Use get_buffer_pt_o where possible.

	Get rid of make_point and point_new.

	Get rid of cmp_point.

	Make Undo use a single offset, not line number and offset.

	Update a copyright line.

	Update gnulib.

2012-01-01  Reuben Thomas  <rrt@sc3d.org>

	Remove Line type altogether. All tests now pass again.

	Remove get_line_offset.
	One test now fails, but this will soon be fixed by further changes.

	Get rid of get_line_text. Add get_buffer_line_len, and new estr  functions estr_line_len, estr_start_of_line and estr_end_of_line.  Improve estr_prev_line by writing it in terms of estr_start_of_line,  so it works even when not fed a start-of-line position.

	Simplify the function `search'.

2012-01-01  Reuben Thomas  <rrt@sc3d.org>

	Make get_buffer_text return the estr, not the underlying astr, and hence remove get_buffer_eol.
	Add get_buffer_o.

	Remove several uses of get_line_text.

2012-01-01  Reuben Thomas  <rrt@sc3d.org>

	Add encoded string module (estr), storing line ending encoding, and move most line-ending stuff into it.
	Use estr in Zile functions replace_estr (and wrapper insert_estr).

	Update version of luaposix required.

	src/Makefile.am: loadlua.lua depends on src/Makefile.am, not Makefile.am.

	Allow move_char to take an argument whose absolute value is >1.

	Add missing space.

	Push undo_save calls into buffer_replace_text, which is renamed buffer_replace.
	Rename buffer_insert to replace, removing its useless buffer argument,
	and simplify it by making it call buffer_replace.

	Merge eol and text members of Buffer into an estr.

2012-01-01  Reuben Thomas  <rrt@sc3d.org>

	Simplify point_to_offset to use offsets directly rather than walking the lines.
	Add buffer_insert, a new primitive that inserts a string, for speed.
	It supercedes intercalate_char, which is removed. Make it &
	insert_newline the primitives rather than the old intercalate_*
	functions.

	Improve and simplify some comments.

2012-01-01  Reuben Thomas  <rrt@sc3d.org>

	Make popup close on sole completion.

	Simplify completion code.

	Improve a comment.

	Simplify intercalate_char and its callees.

	Start to take care of line ending encoding properly.
	Fix a bug in write_registers_list.

	Use string indexing instead of string.sub (s, i, i).

	Count .lua.in files when counting source.

	Replace line_replace_text by buffer_replace_text.

	Correct exist_file to work exactly the same as C version.

	Simplify raw_write_to_disk, and fix checking its return value.

	Make calculate_the_region return a fresh Region.

	Streamline copy_text_block as get_buffer_region.

	Remove where-is's ability to insert message in buffer with prefix arg.

	Fix upper-casing of 'zile' in emergency save file names.

	Streamline file reading and insertion.

	Simplify read_file.

	Use buffer's EOL (rather than assuming LF); fixes various FIXMEs.

	Simplify calculate_buffer_size, renamed to get_buffer_size.

	Slight simplifications and robustifications, and a FIXME.

	Update gnulib.

	Update posix.signal use to new luaposix.

	Reimplement Regions as a pair of offsets.

2012-01-01  Reuben Thomas  <rrt@sc3d.org>

	Reimplement buffers as a single string, into which Lines are pointers. Lines are treated now as non-circular lists, implemented by methods rather than as table members.
	Reimplement markers as offsets.

	An unnecessary table.clone call was removed.

	insert_newline’s readonly check was delegated to intercalate_newline.

2012-01-01  Reuben Thomas  <rrt@sc3d.org>

	Fold line_new into its only caller.

	Move Line implementation to buffer.lua.

	Fix comment typo.

	Shorten buffer_new slightly, removing excessive comments.

	Remove set_line_* methods.

	Make Lines lists non-circular.

	Use line numbers rather than pointers wherever possible.

	Remove all assignments to Line members except within set methods.

	Move basic movement routines to buffer.lua.

	Use goto_point instead of setting cur_bp.pt directly.

	Remove two remaining direct modifications of Lines in case-changing routines.

2011-12-24  Gary V. Vaughan  <gary@gnu.org>

	refactor: remove unused show_splash_screen function.
	* src/term_redisplay.lua (show_splash_screen): Remove unused
	function.

2011-12-23  Reuben Thomas  <rrt@sc3d.org>

	Makefile.am: move editing commands to top level.
	Building of man page will now work.

	Add some man page dependency fixes from master.

2011-12-23  Reuben Thomas  <rrt@sc3d.org>

	configure.ac: Fix typo in testing $enable_debug. Thanks to Nelson Beebe.

2011-12-22  Reuben Thomas  <rrt@sc3d.org>

	Remove check-news option from AM_INIT_AUTOMAKE, as it conflicts with do-release-commit-and-tag.

2011-12-21  Reuben Thomas  <rrt@sc3d.org>

	Update woger call for Freecode rename and adding separate email and notes releases.

2011-12-20  Reuben Thomas  <rrt@sc3d.org>

	version 2.4.3
	* NEWS: Record release date.

	Reset NEWS release line to please do-release-commit-and-tag.

	Bump date of 2.4.3 release.

2011-12-19  Reuben Thomas  <rrt@sc3d.org>

	version 2.4.3
	* NEWS: Record release date.

	Add NEWS for 2.4.3.

	Remove check-news option from AM_INIT_AUTOMAKE, as it conflicts with do-release-commit-and-tag.

	Remove superfluous include of assert.h (thanks, make syntax-check).

	A much simpler version of the previous commit, refixing #34084.

	src/search.c: Fix #35087. (from master)

	Update README-release patch to match updated gnulib. (from master)

	Update gnulib. (from master)

2011-12-18  Reuben Thomas  <rrt@sc3d.org>

	Fix #34084: keep track of which buffer if any a popup window displaced, and restore it.

	Bump version to 2.4.3.

	src/search.c: Fix #35087.

	Update README-release patch to match updated gnulib.

	Update gnulib.

2011-12-18  Gary V. Vaughan  <gary@gnu.org>

	bootstrap: adopt autoconf echo normalization code.
	Dash shipped with Ubutu-11.10 as /bin/sh, among others, still
	has a crippled echo builtin that mis-handles backslashes.
	* build-aux/options-parser (bs_echo): Adopt the autoconf echo
	normalization code to find a suitable replacement for buggy echo
	commands.
	Adjust all uses of echo to $bs_echo.
	* build-aux/extract-trace (func_extract_trace, func_main):
	Likewise.
	* bootstrap: To retain some execution speed on platforms with
	buggy builtin echo, replace most occurrences of `echo' with
	`$bs_echo' - except where its arguments will obviously never
	contain backslashes or be overly long.
	Reported by Reuben Thomas.

	bootstrap: adopt autoconf echo normalization code.
	Dash shipped with Ubutu-11.10 as /bin/sh, among others, still
	has a crippled echo builtin that mis-handles backslashes.
	* build-aux/options-parser (bs_echo): Adopt the autoconf echo
	normalization code to find a suitable replacement for buggy echo
	commands.
	Adjust all uses of echo to $bs_echo.
	* build-aux/extract-trace (func_extract_trace, func_main):
	Likewise.
	* bootstrap: To retain some execution speed on platforms with
	buggy builtin echo, replace most occurrences of `echo' with
	`$bs_echo' - except where its arguments will obviously never
	contain backslashes or be overly long.
	Reported by Reuben Thomas.

2011-12-17  Reuben Thomas  <rrt@sc3d.org>

	Update gnulib.

2011-12-15  Gary V. Vaughan  <gary@vaughan.pe>

	refactor: save an index calculation on each loop iteration
	...by making the loop count down and indexing directly.

2011-12-13  Gary V. Vaughan  <gary@gnu.org>

	term: optimise make_char_printable for ASCII (from master)
	In ASCII, `@' precedes 'A' and '[' follows 'Z', so there's no need
	to make additional checks just outside the A-Z range for printing
	`^@' (\0) and `^[' (\033).
	* term_redisplay.c (make_char_printable): Save some comparisons
	and a subtraction in the inner display loop when determining the
	display string for non-printable characters.

	bugfix: cannot assume that string.match args are non-nil. (#35053)
	This fixes a whole class of latent bugs where an interactive
	function operated on following word class characters.

2011-12-13  Gary V. Vaughan  <gary@gnu.org>

	regression test: demonstrate savannah bug #35053
	Running upcase-word at the end of a buffer crashes Zile.

	See https://savannah.gnu.org/bugs/?35053

2011-12-13  Gary V. Vaughan  <gary@gnu.org>

	bootstrap: sync with upstream. (from master)
	* bootstrap: Many style and consistency improvements, plus some
	small features to maintain parity with gnulib bootstrap script
	feature set.
	Removed code separated into two new support script libraries below.
	* build-aux/options-parser: New file.  A reusable, pluggable shell
	options parser split out of bootstrap.
	* build-aux/extract-trace: New file.  A stand-alone, reusable, M4
	based configury reflector for safely introspecting macro usage in
	autoconf input, also split out of bootstrap.

	Conflicts:

		bootstrap

2011-12-13  Reuben Thomas  <rrt@sc3d.org>

	term_curses.c: give kbs a default value, fix a crash. (from master)
	Thanks to Mike Gran for pointing out that tigetstr can return NULL.

2011-12-13  Reuben Thomas  <rrt@sc3d.org>

	Makefile.am: correct dist_type argument to woger. (from master)
	Conflicts:

		Makefile.am

2011-12-13  Reuben Thomas  <rrt@sc3d.org>

	Separate redrawing cursor from redrawing screen to speed up minibuffer redraw. (from master)

	Write NEWS for 2.4.2. (from master)

	gnulib: update (from master)

2011-12-13  Gary V. Vaughan  <gary@vaughan.pe>

	bootstrap: canonicalize environment variable defaulting (from master)

2011-12-13  Gary V. Vaughan  <gary@gnu.org>

	term: optimise make_char_printable for ASCII
	In ASCII, `@' precedes 'A' and '[' follows 'Z', so there's no need
	to make additional checks just outside the A-Z range for printing
	`^@' (\0) and `^[' (\033).
	* term_redisplay.c (make_char_printable): Save some comparisons
	and a subtraction in the inner display loop when determining the
	 display string for non-printable characters.

	bootstrap: sync with upstream.
	* bootstrap: Many style and consistency improvements, plus some
	small features to maintain parity with gnulib bootstrap script
	feature set.
	Removed code separated into two new support script libraries below.
	* build-aux/options-parser: New file.  A reusable, pluggable shell
	options parser split out of bootstrap.
	* build-aux/extract-trace: New file.  A stand-alone, reusable, M4
	based configury reflector for safely introspecting macro usage in
	autoconf input, also split out of bootstrap.

2011-11-23  Reuben Thomas  <rrt@sc3d.org>

	term_curses.c: give backspace_code a default value, fix a crash.
	Thanks to Mike Gran for pointing out that tigetstr can return NULL.

	gnulib: Update.

2011-10-06  Reuben Thomas  <rrt@sc3d.org>

	Makefile.am: correct dist_type argument to woger.

2011-10-05  Reuben Thomas  <rrt@sc3d.org>

	Fix NEWS: only one template line.

	maint: post-release administrivia
	* NEWS: Add header line for next release.
	* .prev-version: Record previous version.
	* cfg.mk (old_NEWS_hash): Auto-update.

	version 2.4.2
	* NEWS: Record release date.

	Put NEWS back to blank template lines to run do-release-commit-and-tag.

	Bump date to today’s.

	Separate redrawing cursor from redrawing screen to speed up minibuffer redraw.

2011-10-04  Reuben Thomas  <rrt@sc3d.org>

	Update NEWS to take into account second performance bug fix.

	src/term_redisplay.c: hoist a call to buffer_line_len out of a loop to improve performance on long lines

2011-10-03  Reuben Thomas  <rrt@sc3d.org>

	Write NEWS for 2.4.2.

	version: bump version to 2.4.2

	gnulib: update

	bug: optimize term_redisplay for printable characters to fix performance bug

	configury: remove -Werror from --enable-gcc-warnings, as we always have some warnings.

2011-10-02  Gary V. Vaughan  <gary@vaughan.pe>

	bootstrap: canonicalize environment variable defaulting

2011-09-29  Reuben Thomas  <rrt@sc3d.org>

	Update to latest woger.

	Update to latest woger.

	gnulib: update

	tests(Makefile.am): add missing EXEEXT suffix to binary name

	standards: use _Noreturn in same position as gnulib

2011-09-26  Gary V. Vaughan  <gary@vaughan.pe>

	bootstrap: improve comments, and simplify hooks
	Thanks to Stefano Lattarini for review feedback.

	bootstrap: many minor updates (from master)
	Thanks to Stefano Lattarini for the code review.

	bootstrap: many minor updates
	Thanks to Stefano Lattarini for the code review.

2011-09-23  Reuben Thomas  <rrt@sc3d.org>

	configury: make use of Valgrind default to off

2011-09-20  Reuben Thomas  <rrt@sc3d.org>

	doc: update README-release.diff to remove translation-related instructions.

2011-09-20  Gary V. Vaughan  <gary@vaughan.pe>

	configury: don't forget to apply our local gnulib patches

	configury: BSD/darwin sed requires a space after -i

2011-09-20  Reuben Thomas  <rrt@sc3d.org>

	maint: post-release administrivia
	* NEWS: Add header line for next release.
	* .prev-version: Record previous version.
	* cfg.mk (old_NEWS_hash): Auto-update.

	version 2.4.1
	* NEWS: Record release date.

	doc(NEWS): fix up first couple of lines

	doc(NEWS): fix whitespace

	Add NEWS for 2.4.1.

	doc(macro.c): fix punctuation in a FIXME

	src/basic.c: optimize get_goalc_bp to fix a performance problem.

	doc(AUTHORS): Add Gary Vaughan; mention Lua translation.

	Fix NEWS.

	post-release administrivia
	* NEWS: Add header line for next release.
	* .prev-version: Record previous version.
	* cfg.mk (old_NEWS_hash): Auto-update.

	version 2.5.0.50
	* NEWS: Record release date.

	configury: update  zile_readme_package_substitutions from master

	NEWS: Update date.

	NEWS: Add NEWS for 2.5.0.50.

2011-09-19  Reuben Thomas  <rrt@sc3d.org>

	tests: fix mkdir_p: it assumed stat returned non-nil for a non-existent directory

	doc: don't bother with translation-related instructions in README-release.

	gnulib: update gnulib.

	configure.ac: bump version to 2.4.1 in readiness for new release.

	src/term_curses.c: update inclusion of curses header in line with AX_WITH_CURSES update.

	README: remove versions of library deps and refer the reader to the source.

	Require particular versions of Lua libraries.

	search.c: remove zi-specific code generalising RE syntax.

	src/search.c: add two missing calls to astr_cstr

	configury: remove configure checks for lrexlib.
	This also removes the apparently zi-specific configuration of what
	flavour of lrexlib is used; at least for Zile, only GNU is ever
	needed.

2011-09-17  Reuben Thomas  <rrt@sc3d.org>

	Build: no longer ship stdlib; add it to the list of dependencies.

2011-09-08  Reuben Thomas  <rrt@sc3d.org>

	Update format of woger command. (from master)

	Improve fix for #34086 (from master)
	Rename process_command to more descriptive get_and_run_command.

	Rename chordtostr to chordtodesc, as it is not the inverse of strtochord. (from master)

	Fix #34086 (replay of macros not working properly with uniarg). (from master)
	Rename keyvectostr to keyvectodesc, as it produces a description, not
	the inverse of keystrtovec.

	Tidy up macro-calling code slightly. (from master)

	Rename regression tests descriptively and avoiding annoying hash characters. (from master)

	Fix #34087: group undo around replaying macros. (from master)

	Fix percentage through buffer calculation. (from master)

	Update format of woger command.

2011-09-08  Gary V. Vaughan  <gary@vaughan.pe>

	package path: allow the user to override LUA_PATH for `make check`
	Adding `LUA_PATH ?= ;` to tests/Makefile.am will ensure that the system
	package load path is appended to the path used by `run-lisp-tests.lua`
	if the user did not set one of their own, and that if the user did set
	their own LUA_PATH, that it will be used as specified.

2011-09-08  Gary V. Vaughan  <gary@vaughan.pe>

	Revert "compiler warning: assignment to as->text discards const"
	This reverts commit 5171aa758f7354e8db522f341a2dc55563e82a62.

	My analysis was incorrect, so we'll just have to put up with the
	annoying compiler warning instead of using this broken fix to make it go
	away.

2011-09-07  Reuben Thomas  <rrt@sc3d.org>

	Update stdlib (no posix_ext module now).

	Don't try to supply default LUA_PATH for tests.

	Fix FIXME to use POSIX write/close in absence of fdopen.

	Fix FIXME in raw_write_to_disk: use new POSIX open/write/close.

	Update stdlib.

	Improve setting of LUA_PATH for tests (Gary Vaughan).

2011-09-06  Reuben Thomas  <rrt@sc3d.org>

	Don’t unset LUA_PATH, because we may need libraries installed on non-standard paths e.g. in the user’s home directory.
	Hence, don’t set LUA_PATH at all in zile.lua.in, and expand rather
	than set it in run-zile-tests.lua.

	New version of ax_lua.m4.

	Improve fix for #34086: don’t specially reset last_uniarg flag & value in process_keys, but rather move its resetting in call_command to before the command is run.
	Rename process_command to more descriptive get_and_run_command.

	Rename chordtostr to chordtodesc, as it is not the inverse of strtochord.

	Fix #34086 (replay of macros not working properly with uniarg).
	Rename keyvectostr to keyvectodesc, as it produces a description, not
	the inverse of keystrtovec.

	Remove dangling reference to tests/regression directory.

	Tidy up macro-calling code slightly.

	Move regression tests into zile-only, since they are. The issue number marks them out as regression tests already; no need to have yet another directory.

	Rename regression tests descriptively and avoiding annoying hash characters.

2011-09-05  Reuben Thomas  <rrt@sc3d.org>

	Fix path mangling.

	Fix #34087: group undo around replaying macros.

2011-09-03  Reuben Thomas  <rrt@sc3d.org>

	Fix percentage through buffer calculation.

	mkfuncs.pl: compare new & old files, and only copy on change, to avoid unnecessary rebuilds.
	Fix a minor bug (thanks flymake!).

	Remove mention of deleted file.

	Add FIXME.

2011-09-02  Gary V. Vaughan  <gary@vaughan.pe>

	bugfix: M-xinsertRET => crash
	The insert function should not be interactive, since it has no code for
	fetching an interactive argument.

	Added a regression test.

	fixes #34193

2011-09-02  Gary V. Vaughan  <gary@vaughan.pe>

	Revert "[bugfix] describe-bindings works again"
	This reverts commit 4f1a3b9c9d9752c4e80acb2e26266cf29db015bb.

	Conflicts:

		src/bind.lua

2011-09-02  Gary V. Vaughan  <gary@vaughan.pe>

	typo: 'else if' -> 'elseif'

2011-09-01  Gary V. Vaughan  <gary@vaughan.pe>

	refactor: simplify find-file implementation

	configury: correctly trace macros without args (from master)
	func_extract_trace_result is now set to a single ':' when a macro is
	successfully traced, to distinguish from the empty string result when a
	traced macro is simply not present.

	configury: support use of AC_CONFIG_HEADER (from master)
	Without this patch, bootstrap did not recognise the older
	AC_CONFIG_HEADER invocation when used instead of AC_CONFIG_HEADERS.

	configury: fix a typo in bootstrap (from master)

2011-09-01  Reuben Thomas  <rrt@sc3d.org>

	Proper fix to #33907 which reads kbs to find out what to do with KEY_BACKSPACE. (from master)
	This changest is a port of 43a74b3, it requires the as yet unmerged
	tigetstr() support in luacurses from:

	    https://github.com/gvvaughan/lcurses/commit/31767e0.

2011-09-01  Gary V. Vaughan  <gary@vaughan.pe>

	configury: set -Werror with --enable-gcc-warnings
	Now that the code is compiling warning free, even with all the
	additional warnings from `--enable-gcc-warnings`, enable `-Werror` too
	(like Simon Josefsson's manywarnings using projects, and now lcurses) so
	that newly introduced warnings are noticed immediately.

	compiler warning: assignment to as->text discards const
	remove the constness of the string passed to castr_new_nstr, because
	once its address is held in as->text, the rest of the code will not
	treat it as const anyway; thus, we also have to remove the constness of
	return type of astr_cstr() which is simply giving the address in the
	non-const as->text pointer too.

2011-09-01  Gary V. Vaughan  <gary@vaughan.pe>

	compiler warning: tigetstr discards const from arg 1
	...so we can't pass in a string literal.  Instead, create a dynamically
	initialised buffer of type char[], and pass that to tigetstr().

	This fixes a warning provoked by `configure --enable-gcc-warnings`.

2011-09-01  Gary V. Vaughan  <gary@vaughan.pe>

	configury: remove duplicate AC_GNU_SOURCE et al
	AC_GNU_SOURCE and AC_PROG_CC_C99 are automatically required by gl_INIT,
	no need to specify them again in configure.ac (which results in running
	`gcc -std=gnu99 -std=gnu99'.

	configury: pass all gl_WARN_ADD results to gcc
	gl_WARN_ADD results were not being substituted into Makefile.in
	correctly. Add an --enable-gcc-warnings configure flag, and when
	passed, compile with all the warning flags that were successfully
	tested at configure time.

	configury: correctly trace macros without args
	func_extract_trace_result is now set to a single ':' when a macro is
	successfully traced, to distinguish from the empty string result when a
	traced macro is simply not present.

	configury: support use of AC_CONFIG_HEADER
	Without this patch, bootstrap did not recognise the older
	AC_CONFIG_HEADER invocation when used instead of AC_CONFIG_HEADERS.

	configury: fix a typo in bootstrap

2011-08-21  Gary V. Vaughan  <gary@vaughan.pe>

	maint: add .diff to sc always-exclude list (from master)

	tests: finish half-baked find-file.el
	pushed 705f824 before it was ready, this changeset fixes the first
	test case, and adds the missing one. And fixes a typo introduced
	by the misapplied earlier changeset.

	bugfix: %ld is illegal in lua string.format
	fixes #34080

	tests: regression test for #34080
	pushed 1c7ef79 before it was ready, this changeset reverts that one
	and then adds a new test which correctly crashes zile prior to the
	fix being applied.

	tests: new regression test for #34087 (from master)

	tests: new regression test for #34086 (from master)

2011-08-21  Gary V. Vaughan  <gary@vaughan.pe>

	tests: move interactive tests to a subdirectory (from master)
	Also, improve run-lisp-tests.lua to automatically create missing
	directories in VPATH builds.

	otherwise, the long filenames, and many tests meant that ls would
	show only 2 columns of files and too many rows to fit on my screen!

2011-08-21  Gary V. Vaughan  <gary@vaughan.pe>

	tests: new regression test for #34087

	tests: new regression test for #34086

2011-08-21  Gary V. Vaughan  <gary@vaughan.pe>

	tests: move interactive tests to a subdirectory
	Also, improve run-lisp-tests.pl to automatically create missing
	directories in VPATH builds.

	otherwise, the long filenames, and many tests meant that ls would
	show only 2 columns of files and too many rows to fit on my screen!

2011-08-21  Gary V. Vaughan  <gary@vaughan.pe>

	bootstrap: fix distcheck without README-release
	Now that we're using gnulib-tool to apply patches to README-release
	during bootstrap, be careful to edit it out of EXTRA_DISTFILES in
	lib/Makefile.am so that distcheck can still succeed.

2011-08-20  Reuben Thomas  <rrt@sc3d.org>

	Proper fix to #33907 which reads kbs to find out what to do with KEY_BACKSPACE.

2011-08-20  Gary V. Vaughan  <gary@vaughan.pe>

	main: open 2 windows if 2 files are given
	Ported some missing code from master to set the window layout correctly
	based on the number of files passed on the command line.

	fixes #34044

2011-08-20  Gary V. Vaughan  <gary@vaughan.pe>

	curses: translate curses KEY_BACKSPACE to Zile CTRL-h (from lua)
	fix #33907

	tests: regression test for #34080

	lisp: find-file takes a filename argument
	Like Emacs, accept a filename to `find-file` and `find-file-read-only`.
	Add some new tests to check it keeps working.

2011-08-20  Gary V. Vaughan  <gary@vaughan.pe>

	bootstrap: support gnulib README-release patches (from master)
	Use the gnulib patching machinery to create the HACKING file
	rather than reinventing the wheel in bootstrap.conf. So now
	we supply a patch in gl/top to add our header, instead of the
	build-aux/HACKING.in header text.

	fixes #34077

2011-08-20  Gary V. Vaughan  <gary@vaughan.pe>

	maint: set default GNULIB_SRCDIR (from master)
	When running `make syntax-check' without GNULIB_SRCDIR in the
	environment, default to `$(srcdir)/gnulib'.

2011-08-20  Reuben Thomas  <rrt@sc3d.org>

	Fix whitespace and comment issues found by make syntax-check. (from master)

2011-08-20  Gary V. Vaughan  <gary@vaughan.pe>

	bootstrap: support gnulib README-release patches
	Use the gnulib patching machinery to create the HACKING file
	rather than reinventing the wheel in bootstrap.conf. So now
	we supply a patch in gl/top to add our header, instead of the
	build-aux/HACKING.in header text.

	fixes #34077

2011-08-20  Gary V. Vaughan  <gary@vaughan.pe>

	maint: really quote correct old_NEWS hash
	I forgot to feed only the old NEWS contents through md5sum in
	the previous commit.

2011-08-20  Reuben Thomas  <rrt@sc3d.org>

	Fold badly-named get_char_unfiltered into its only caller. (from master)

2011-08-20  Reuben Thomas  <rrt@sc3d.org>

	cli: load multiple files from command line (from master)
	Expand paths of files on command line so they are all read correctly,
	as current directory changes when find_file is called.

	Partially fixes #33044.

2011-08-20  Gary V. Vaughan  <gary@vaughan.pe>

	maint: quote correct old_NEWS hash
	Update old_NEWS hash after typo correction 3e0e58d

	maint: set default GNULIB_SRCDIR
	When running `make syntax-check' without GNULIB_SRCDIR in the
	environment, default to `$(srcdir)/gnulib'.

	NEWS: remove duplicate template header

	splash screen: use correct path to FAQ
	Also, fix a doubled 'Zile' in the copyright notice, and an additianal
	line-feed to make the FAQ hint easier to spot.

	bootstrap: fix comment typo
	2525s/and and/and/

2011-08-19  Reuben Thomas  <rrt@sc3d.org>

	post-release administrivia
	* NEWS: Add header line for next release.
	* .prev-version: Record previous version.
	* cfg.mk (old_NEWS_hash): Auto-update.

	version 2.4.0.60
	* NEWS: Record release date.

	Revert line 3 of NEWS to template, to placate do-release-commit-and-tag.

	Fix date for new release, and mark it beta, not alpha.

2011-08-19  Gary V. Vaughan  <gary@vaughan.pe>

	splash screen: improvements (from master)
	merged 84795be, d4fd328, cabe091

2011-08-19  Reuben Thomas  <rrt@sc3d.org>

	Fix whitespace and comment issues found by make syntax-check.

	Require Perl for build (fail if not found).

	Quote parameter names in comments.

	Add a blank line for neatness.

	Really fix directory substitutions (botched in commit e1c9c6be).

2011-08-18  Reuben Thomas  <rrt@sc3d.org>

	Make \e work in key strings: makes new interactive_quoted-insert.el pass.

	Fold badly-named get_char_unfiltered into its only caller.

	Fix directory substitutions.

	Have unfiltered getkey routines only return one code, to fix #33910.

	Use a URL for FAQ reference to make opening easier in intelligent terminals.

2011-08-18  Gary V. Vaughan  <gary@vaughan.pe>

	tests: improved interactive_quoted-insert.el (from lua)
	from lua sha 3ef8abe

2011-08-18  Reuben Thomas  <rrt@sc3d.org>

	Add line about non-working keys pointing to FAQ to splash screen.

	Simplify find_file slightly.

	Expand paths of files on command line so they are all read correctly, as current directory changes when find_file is called. Fixes #33044.

2011-08-18  Gary V. Vaughan  <gary@vaughan.pe>

	quoted-insert: inserts the only the next character
	The #33906 fixes ported from master were returning the entire
	contents of key_buf - especially bad when called inside a keyboard
	macro, because the whole macro will be in the key_buf!

	tests: use Emacs compatible read-syntax
	\TAB is a Zileism, use \t instead

	curses: simplify getkey code paths (from master)
	Port based on master a60ebae, 5b4d50a and 22516e7.

2011-08-18  Reuben Thomas  <rrt@sc3d.org>

	Remove quoted-insert octal mode as per Lua branch.

2011-08-18  Gary V. Vaughan  <gary@vaughan.pe>

	Revert "[fixes #33910] turn off curses keypad processing during GETKEY_UNFILTERED"
	This reverts commit 0447a4f989201f155ca9f262625a9057e9b1f532.

	tests: fix #34033, failing "Lua Source" comparison
	Simply cut less text, so as not to paste the differing "C Source" vs.
	"Lua Source" into the output buffer before comparison.

2011-08-17  Reuben Thomas  <rrt@sc3d.org>

	Improve splash screen.

2011-08-17  Gary V. Vaughan  <gary@vaughan.pe>

	tests: rename tests after the function they test
	Just exchanging '-' and '_' in all filenames, and fixing a few cases
	where the filename is referenced inside a test.

2011-08-17  Gary V. Vaughan  <gary@vaughan.pe>

	bugfix: don't crash on quote-insert ^H
	Improved the quoted-insert testcase to exercise more corner-cases.

	Although it's still possible to crash Zile by persuading term_ungetkey
	to push a curses keycode back onto the queue :( Noted with FIXME in
	the code and the test.

2011-08-17  Gary V. Vaughan  <gary@vaughan.pe>

	bootstrap: check git-merge-changelog conditionally
	Don't keep complaining about the lack of a gnu ChangeLog merge
	driver when the project doesn't have a ChangeLog!

	bootstrap: fix --skip-git with ./gnulib
	When running `bootstrap --skip-git`, there's no need to abort;
	as long as there's a gnulib directory as specified in .gitmodules,
	and an executable `gnulib-tool` inside, simply warn that gnulib
	might not be up to date, and continue.

	formatting: comment corrections

2011-08-17  Gary V. Vaughan  <gary@vaughan.pe>

	scm: track gnulib version we tested against
	By the magic of git submodules, we can always reconstitute the
	exact gnulib tree that was used for all the useful points of
	the tree henceforth (such as the ones we use to roll releases).:x

	Conflicts:

		.gitignore

2011-08-17  Gary V. Vaughan  <gary@vaughan.pe>

	dotzile-extra.el: removed empty file

	bootstrap: only submodule update with .gitmodules

	bootstrap: improve comments

	distcheck: don't leave distclean file droppings
	Implement make distcheck 101 according to:
	http://www.gnu.org/software/automake/manual/html_node/distcleancheck.html

	doc/Makefile.am: fix typo in zile.1.in rule

	new function: (eval-buffer &optional buffer)
	Great for writing test cases!

	Makefile.am: fix typo in EXTRA_DIST

	FAQ: more detail for Mac OS Terminal.app

2011-08-17  Reuben Thomas  <rrt@sc3d.org>

	Fix negative prefix arguments. (from master)

2011-08-17  Gary V. Vaughan  <gary@vaughan.pe>

	tests: rename interactive tests in tests/zile-only

2011-08-17  Reuben Thomas  <rrt@sc3d.org>

	Add test for negative prefix arguments.

2011-08-17  Gary V. Vaughan  <gary@vaughan.pe>

	mkvars.pl: comment dotzile.sample multi-line docs
	Also, add the (global-set-key "key" 'func) comment from the deleted
	dotzile-extra.el to the header.

	And fix the Makefile.am rule to rebuild dotzile.sample when mkvars.pl
	was updated.

2011-08-17  Gary V. Vaughan  <gary@vaughan.pe>

	FAQ: more detail for Mac OS Terminal.app

	bootstrap: check git-merge-changelog conditionally
	Don't keep complaining about the lack of a gnu ChangeLog merge
	driver when the project doesn't have a ChangeLog!

	bootstrap: fix --skip-git with ./gnulib
	When running `bootstrap --skip-git`, there's no need to abort;
	as long as there's a gnulib directory as specified in .gitmodules,
	and an executable `gnulib-tool` inside, simply warn that gnulib
	might not be up to date, and continue.

2011-08-16  Reuben Thomas  <rrt@sc3d.org>

	Fix missing rename of run-lisp-tests from previous commit, and fix calling of valgrind.

	Rewrite run-lisp-tests in Perl to fix FIXME and regain recent speed loss.

	Add test for negative prefix arguments.

	Fix negative prefix arguments.

	Bump gnulib version.

	Merge improvements from Lua Zile FAQ.

	Add .dirstamp.

	Improve FAQ 2.3 about building on non-POSIX systems.

	Remove FAQ about size of binary, which doesn’t make sense for Lua.

	Update FAQ 1.1 to be simpler and more general.

2011-08-16  Gary V. Vaughan  <gary@vaughan.pe>

	scm: track gnulib version we tested against
	By the magic of git submodules, we can always reconstitute the
	exact gnulib tree that was used for all the useful points of
	the tree henceforth (such as the ones we use to roll releases).:x

	dotzile-extra.el: removed empty file

	bootstrap: only submodule update with .gitmodules

	bootstrap: improve comments

	make: add empty MAINTAINERCLEANFILES for sub-make

	distcheck: don't leave distclean file droppings
	Implement make distcheck 101 according to:
	http://www.gnu.org/software/automake/manual/html_node/distcleancheck.html

	curses: refactor keycode translation

2011-08-15  Reuben Thomas  <rrt@sc3d.org>

	Merge master.

	Remove unused configure-time definitions (from master).

2011-08-15  Gary V. Vaughan  <gary@vaughan.pe>

	[bind] revert 45e1c21: "add rudimentary support for Emacs-like key_translation_map"

	[configury] fix a race condition in parallel builds (from master)
	Make the dependency of doc/zile.1.in upon src/zile explicit, or
	else With `make -j2' it's likely that one job will reach the build
	graph node for generating doc/zile.1.in before src/zile has been
	linked.

	[configury] fix a typo in function call (from master)

	[configury] latest `bootstrap --skip-git --gnu-srcdir=../gnulib' works (from master)

	[configury] fix a race condition in parallel builds
	Make the dependency of doc/zile.1.in upon src/zile explicit, or
	else With `make -j2' it's likely that one job will reach the build
	graph node for generating doc/zile.1.in before src/zile has been
	linked.

	[configury] fix a typo in function call

	[configury] latest `bootstrap --skip-git --gnu-srcdir=../gnulib' works

2011-08-14  Reuben Thomas  <rrt@sc3d.org>

	Update typical binary size.

2011-08-14  Gary V. Vaughan  <gary@vaughan.pe>

	[refactor] consolidate the swathe of README files in $top_srcdir (from master)
	Users can now find everything they need to know about what to do
	next after downloading a Zile release tarball by reading README.
	Similarly, users can find out how to hack on the Zile sources by
	reading HACKING after cloning the repository.
	* BUGS: Removed; content added to README.
	* README: Overhauled.
	* README-prereq: Removed; listed and checked by bootstrap script.
	* README-release: Removed; content moved to HACKING.in.
	* HACKING.in: Preamble to content of README-release when creating
	  HACKING.
	* INSTALL: Removed; use gnulib's version.
	* bootstrap (zile_readme_package_substitution): Create HACKING at
	  bootstrap time from HACKING.in and gnulib README-release.

	[configury] call AC_PREREQ so that bootstrap can check autoconf installation (from master)

	[configury] sync latest bootstrap script (from master)
	* func_install_gnulib_non_module_files: fix error message typo.
	* require_aclocal_amflags: Use shorter http://www.gnu.org/s/' URLs.
	* func_require_gnulib_files_already_present: Make sure to default the value
	  of $gnulib_mk to Makefile.am to match gnulib-tool's treatment.
	* func_get_version: be more robust to applications that ignore `--version',
	  but still execute correctly.
	* require_checkout_only_file: moved out of global environment, and hooked
	  into func_prep so that --help still works even if checkout_only_file is
	  missing.

	[configury] prefer build-aux files from gnulib to from Automake (from master)

2011-08-14  Reuben Thomas  <rrt@sc3d.org>

	Remove keybindings for broken C-h; just encourages toleration of brokenness. (from master)

2011-08-14  Reuben Thomas  <rrt@sc3d.org>

	Rewrite question about keybindings with simpler fix for Mac OS X. (from master)
	Reorder the sections and questions to put more frequently-asked
	questions first.

	Update copyright year.

2011-08-14  Gary V. Vaughan  <gary@vaughan.pe>

	[configury] quote Autoconf macro argument consistently (from master)

2011-08-14  Gary V. Vaughan  <gary@vaughan.pe>

	[configury] canonicalize directory layout (from master)
	Instead of putting *everything* in `src/', move documentation into `doc/',
	auxilliary build scripts into `build-aux/' and tests into `tests/' in
	keeping with the layout of most GNU packages.

	Updated README to explain where everything is, as per tradition.

2011-08-12  Brian Maher  <brian@brimworks.com>

	[new feature] allow loading of lrex_pcre in place of lrex_gnu
	* configure.ac: New `--with-lrex={gnu,pcre}' option.

	Of course, choosing pcre causes search tests to fail, since they
	need to executed with GNU Emacs.

2011-08-12  Gary V. Vaughan  <gary@vaughan.pe>

	[scm] add gnulib directory to root .gitignore

	Merge remote-tracking branch 'origin/master'
	Conflicts:
		README

	[refactor] consolidate the swathe of README files in $top_srcdir
	Users can now find everything they need to know about what to do
	next after downloading a Zile release tarball by reading README.
	Similarly, users can find out how to hack on the Zile sources by
	reading HACKING after cloning the repository.
	* BUGS: Removed; content added to README.
	* README: Overhauled.
	* README-prereq: Removed; listed and checked by bootstrap script.
	* README-release: Removed; content moved to HACKING.in.
	* HACKING.in: Preamble to content of README-release when creating
	  HACKING.
	* bootstrap (zile_readme_package_substitution): Create HACKING at
	  bootstrap time from HACKING.in and gnulib README-release.

	[refactor] consolidate the swathe of README files in $top_srcdir
	Users can now find everything they need to know about what to do
	next after downloading a Zile release tarball by reading README.
	Similarly, users can find out how to hack on the Zile sources by
	reading HACKING after cloning the repository.
	* BUGS: Removed; content added to README.
	* README: Overhauled.
	* README-prereq: Removed; listed and checked by bootstrap script.
	* README-release: Removed; content moved to HACKING.in.
	* HACKING.in: Preamble to content of README-release when creating
	  HACKING.
	* bootstrap (zile_readme_package_substitution): Create HACKING at
	  bootstrap time from HACKING.in and gnulib README-release.

	[configury] call AC_PREREQ so that bootstrap can check autoconf installation

	 [configury] sync latest bootstrap script
	* func_install_gnulib_non_module_files: fix error message typo.
	* require_aclocal_amflags: Use shorter http://www.gnu.org/s/' URLs.
	* func_require_gnulib_files_already_present: Make sure to default the value
	  of $gnulib_mk to Makefile.am to match gnulib-tool's treatment.
	* func_get_version: be more robust to applications that ignore `--version',
	  but still execute correctly.
	* require_checkout_only_file: moved out of global environment, and hooked
	  into func_prep so that --help still works even if checkout_only_file is
	  missing.

2011-08-11  Gary V. Vaughan  <gary@vaughan.pe>

	[configury] update to bootstrap script with more robust bold printing

	[configury] prefer build-aux files from gnulib to from Automake

2011-08-11  Gary V. Vaughan  <gary@vaughan.pe>

	[configury] move to non-recursive make and canonicalize directory layout
	Instead of putting *everything* in `src/', move documentation into `doc/',
	auxilliary build scripts into `build-aux/' and tests into `tests/' in
	keeping with the layout of most GNU packages.  Updated README to explain
	where everything is, as is the tradition.

	Then updated the configury to perform a non-recursive build like the lua
	branch, with the exception of `lib/' which contains a gnulib-tool
	generated Makefile.am that is not compatible with a non-recursive scheme.

2011-08-11  Gary V. Vaughan  <gary@vaughan.pe>

	[configury] update to bootstrap script with more robust bold printing

2011-08-11  Reuben Thomas  <rrt@sc3d.org>

	Find gc.h under its two possible paths.

	Remove keybindings for broken C-h; just encourages toleration of brokenness.

2011-08-11  Reuben Thomas  <rrt@sc3d.org>

	Rewrite question about keybindings with simpler fix for Mac OS X.
	Reorder the sections and questions to put more frequently-asked
	questions first.

	Update copyright year.

2011-08-10  Reuben Thomas  <rrt@sc3d.org>

	Fix ability of commands run via execute-extended-command to detect lack of arg.

	Keep search patterns as astrs.

	Fix potential crash in do_search.

	Fix crash when goto-line is aborted.

	Add COPYING.

	Merge branch 'master' of git.sv.gnu.org:/srv/git/zile

	Fix typo in previous commit.

2011-08-10  Gary V. Vaughan  <gary@vaughan.pe>

	[tests] use save-buffers-kill-emacs, not save-buffers-kill-zile

	[configury] use newer `bootstrap' from lua branch 6fe563f0

2011-08-10  Reuben Thomas  <rrt@sc3d.org>

	Fix compact_path for case when user name is prefix of path.
	Patch adapted from one by Ulrich Mueller; bug reported by Diego
	Pettenò.

2011-08-10  Gary V. Vaughan  <gary@vaughan.pe>

	[configury] bootstrap already handles build-aux/{.gitignore,snippet}

	[configury] let bootstrap handle COPYING and config.{guess,sub}

	[configury] disable the bootstrap `please sync with gnulib' warning

	[configury] disable the bootstrap `please sync with gnulib' warning

2011-08-09  Reuben Thomas  <rrt@sc3d.org>

	Add gnulib to .gitignore.

	Merge branch 'topic/sane-bootstrap'

	Restore recently messed-up .gitignore files.

	Revert "Remove universal-argument and prefix arguments, and shell commands."
	This reverts commit 35c72f4e446e8daebdd4c1b8e8e91f354fd541bc.

	Revert "Remove bindings for defunct commands."
	This reverts commit 0073b95dca15d578de0bc1705bb8e3e94eaf8141.

	Update patch for gnulib's copy-file module to restore original API and add new one.

2011-08-09  Brian Maher  <brian@brimworks.com>

	xpcall(main) so we can see lua stack traces if there is an error

2011-08-08  Gary V. Vaughan  <gary@vaughan.pe>

	[refactor] rename shared global variable interactive to _interactive

	remove reference to obsolete function in dotzile-extra.el

	[tests] update test results files to match new output string
	The 'describe- series of functions now output `Lua source code',
	so update the test cases to match.

2011-08-07  Gary V. Vaughan  <gary@vaughan.pe>

	[help] definitions are no longer in `C source code'
	Use "in `Lua source code'" instead.

2011-08-06  Gary V. Vaughan  <gary@vaughan.pe>

	[lisp-tests] disable test for removed overwrite mode

2011-08-04  Gary V. Vaughan  <gary@vaughan.pe>

	[configury] squash a spurious error message

2011-08-04  Gary V. Vaughan  <gary@vaughan.pe>

	[configure] use a sane bootstrap script
	The bootstrap process from a fresh git clone is the same as master:

	  ./bootstrap && ./configure && make all check

	* COPYING: removed - bootstrap manages this file now.
	* m4/gnulib-cache.m4: likewise.
	* bootstrap, bootstrap.conf: new files.

2011-08-04  Gary V. Vaughan  <gary@vaughan.pe>

	README-hacking: update to match README-release, and newer bootstrap

	[configury] use a sane bootstrap script

	[configury] add missing pipe-filter-ii module to bootstrap.conf
	At this point it is now possible to clone a fresh copy of master
	from the repository, run the bootstrap script, configure and make
	C Zile without any manual intervention.

	[configury] make bootstrap.conf the canonical list of gnulib parameters
	gnulib-tool will regenerate m4/gnulib-cache.m4 automatically, and
	keeping it in version control makes it easy to forget to update
	bootstrap.conf with any changes, and break building from a clean
	checkout.

	[configury] tell bootstrap that our automake input is called Makefile.am
	...otherwise the hairy 'slurp()' function gets confused and stops bootstrap
	from running to completion.

	[configury] quote Autoconf macro argument consistently

	[configury] use AC_CONFIG_HEADERS for older autoreconf
	Some releases of Autoconf shipped an `autoreconf' that would not
	recognise `AC_CONFIG_HEADER' as a cue to run autoheader.

	[configury] add tbl_*.h to BUILT_SOURCES
	...so that Zile can be built from a freshly bootstrapped checkout,
	without having to manually generate those files first.

	[configury] remove another generated file from version control

	[configury] remove gnulib generated files from version control
	...otherwise, they have to be removed manually whenever performing a
	`git checkout` between master and lua branches in the same tree.

2011-08-02  Reuben Thomas  <rrt@sc3d.org>

	Fix previous commit for non-interactive tests of interactive features.

	Fix up fix for #33906 to work properly and mend an egregious pointer bug.

	Remove bindings for defunct commands.

	Remove universal-argument and prefix arguments, and shell commands.

	Remove unused gnulib modules.

	Fix up renamed files used as arguments in tests.

	Fix potential crash in insert-buffer.

	Fix more scrambled error messages (string args that became astrs).

	Fix undo positioning for kill_text (used by word and sexp killing).

	Fix detection of successful backup file creation.

	Fix garbled error message.

	Fix potential file descriptor leak in copy-file patch (thanks, Jim Meyering).

	Remove debugging code left from fix of #33906.

2011-08-02  Gary V. Vaughan  <gary@vaughan.pe>

	[lisp-tests] separate interactive tests by renaming test files (copy from lua branch)
	Interactive tests can now be easily spotted, and coverage of
	interactive vs non-interactive tests is easier to see.

2011-08-02  Reuben Thomas  <rrt@sc3d.org>

	Simplify completion_readdir slightly.

	Fix completion_readdir, broken by commit bb28e0734.

	Stop compact_path returning nil, as that can cause errors.

	Make offset_to_point into offset_to_line and remove Point type.

	Fix some compiler warnings.

	Update gnulib.

	Patch copy-file gnulib module to return error codes, fixing a FIXME.

2011-08-01  Reuben Thomas  <rrt@sc3d.org>

	Fix FIXME: implement replace_estr with estr_cat, and estr_cat with new estr_replace based on original replace_estr. Fold replace into new replace_estr.

	Move some comments from estr.c to estr.h for consistency with astr.

	Fix FIXME: make astr_insert check for overflow.

	Fix FIXME: realloc strings that shrink by 50%.

	Fix some incorrectly printed astrs in where-is (#33912).

	Don't beep when RET pressed in minibuffer (fix #33909).

	Fix #33906 (quoted-insertion of multi-character keycodes).

	Display literal ESC character as in Emacs.

	Bump version of Mac OS X Terminal known to be buggy to 10.7. Sigh.

	Remove overwrite mode (as on master branch).

	Remove overwrite mode.

	Open the gap!
	Various changes to make the buffer gap work with non-zero gap.

2011-08-01  Gary V. Vaughan  <gary@vaughan.pe>

	describe-bindings: space all the keys in the left column correctly

	[bugfix] describe-bindings works again
	I broke it with my last commit, having missed this one spot for
	checking the type of a leaf node in the root_bindings tree.

2011-08-01  Gary V. Vaughan  <gary@vaughan.pe>

	[bind] add rudimentary support for Emacs-like key_translation_map
	Emacs has a complex method of working around discrepencies between
	terminfo caps and what a terminal emulator actually does, part of
	which is the `key-translation-map' to replace known sequences in
	the input stream with the correct key symbols.

	Lua Zile now has a `key_translation_map' that helps it behave
	correctly when F1 thru F4 are pressed on certain buggy xterm-color
	emulators (*cough* Terminal.app *cough*).

	Fixes #33908 on the Lua side.

2011-07-31  Gary V. Vaughan  <gary@vaughan.pe>

	[configury] bump version number to 2.5.0.50
	...to accomodate using the 2.4 version number for an impending
	C Zile release from master.

	[fixes #33910] turn off curses keypad processing during GETKEY_UNFILTERED

2011-07-31  Gary V. Vaughan  <gary@vaughan.pe>

	regression test: demonstrate savannah bug #33910
	Beef up the test case for quoted-insert by inserting some more
	awkward characters, ^h (which currently crashes Lua Zile), ^q and
	the full terminfo escape sequence for xterm <f1>.  All should be
	collected and inserted verbatim into the current buffer.

	Unfortunately, the codepath taken by execute-kbd-macro is different
	enough from fully interactive use that Zile doesn't actually
	crash with this test, even though pressing those exact same keys
	at a live Lua Zile does!

	See https://savannah.gnu.org/bugs/?33910

2011-07-31  Gary V. Vaughan  <gary@vaughan.pe>

	[kbd-macros] support \e in macro strings
	...otherwise there is no way to specify having pressed the escape key
	in a keyboard macro (as opposed to setting the meta bit on the following
	keypress).

	[bugfix] show SPC rather than <20> in describe-bindings buffer
	...by fixing a typo in the `codetoname' table.

	[curses] make sure we translate curses BACKSPACE to Zile \C-h
	...otherwise it's impossible to enter the \C-h command prefix on
	terminals where curses returns KEY_BACKSPACE when the user presses
	\C-h.

	[curses] refactor calculating code for CTRL chars into a function

2011-07-31  Reuben Thomas  <rrt@sc3d.org>

	Remove FAQ about how to exit Zile; it's shown on splash screen.

	Remove unused variable.

2011-07-31  Gary V. Vaughan  <gary@vaughan.pe>

	[lisp-tests] separate interactive tests by renaming test files
	Interactive tests can now be easily spotted, and coverage of
	interactive vs non-interactive tests is easier to see.

	[fixes #33902] correct a typo in make_buffer_completion

	regression test: demonstrate savannah bug #33902
	Minibuffer completion for switch-to-buffer is not working.
	See https://savannah.gnu.org/bugs/?33902

2011-07-31  Gary V. Vaughan  <gary@gnu.org>

	[ui] Make splash screen a buffer as in Emacs (copy from master).
	Reformat splash screen again inspired by C Zile.

2011-07-30  Gary V. Vaughan  <gary@vaughan.pe>

	[cleanup] remove duplicate definition of minibuf_read_function_name

	[fixes #33894]: correct a typo in the body of cd definition.

	regression test: demonstrate savannah bug #33894
	Trying to 'M-xcd' to anywhere crashes Zile.
	See https://savannah.gnu.org/bugs/?33894

	[bugfix] fix overzealous deletion from commit v2.4.0alpha1-120-g9f6c8c6
	Restore accidentally deleted write_function_description definition.
	describe_function.el test now passes again.

	[bugfix] fix mismerge from commit 640c7a0cdfb6733c2a28cce169c7ca123ab2eca0
	delete_blank_lines.el test now passes again.

2011-07-29  Reuben Thomas  <rrt@sc3d.org>

	Add move_with_uniarg and use it to remove some shim functions.

	Use gnulib's implementation of _Noreturn.

	Turn macros into inline functions.

	Simplify backward-delete-char very slightly.

	Avoid an unnecessary nested undo sequence.

	Simplify transpose, removing forward_char and backward_char; use move_char elsewhere.

2011-07-28  Reuben Thomas  <rrt@sc3d.org>

	Make Buffer's o member abstract, and remove get_buffer_pt.

	Simplify fill-paragraph, avoiding use of get_buffer_pt.

	Use region_new instead of constructing Regions manually.

	Rearrange buffer methods ready for introduction of gap.

	Move case-replace processing from buffer_replace to query-replace.

2011-07-27  Reuben Thomas  <rrt@sc3d.org>

	Rename get_buffer_line_len to buffer_line_len for slightly more consistency.
	Make better use of existing buffer/estr functions in one or two places.

	Remove unused estr_dup and add a FIXME.

2011-07-26  Reuben Thomas  <rrt@sc3d.org>

	Finish making Buffer text opaque within buffer.c.

2011-07-26  Reuben Thomas  <rrt@sc3d.org>

	Make buffer text opaque for getting (allow it to be set wholesale) outside buffer.c.
	Fix a class of bugs where return values from FUNCALL were treated as C
	booleans.

	Reimplement delete-blank-lines more simply.

	Fix other minor bugs and make simplifications.

2011-07-26  Reuben Thomas  <rrt@sc3d.org>

	Remove FIXME.

2011-07-25  Gary V. Vaughan  <gary@gnu.org>

	[ui] format splash screen correctly to match C Zile
	Lua removes the first new line from string literals delimited with brackets.

2011-07-25  Reuben Thomas  <rrt@sc3d.org>

	Various bits of simplification and tidy-up.

2011-07-24  Reuben Thomas  <rrt@sc3d.org>

	Simplify save_buffer slightly.

	Simplify some file backup code slightly.

	Remove no-longer-used macros.

	Use gnulib's copy-file module rather than custom copy_file function.

	Fold a couple of static functions into their only callers.

	Fold setup_main_screen into main.

2011-07-23  Reuben Thomas  <rrt@sc3d.org>

	Fix undo bug introduced recently; note why undo is problematic in Emacs.

	Fix uninitialized variable warning.

	Fix an error introduced recently to pipe_command, and simplify write_temp_buffer slightly.

	Reimplement shell-command with gnulib's pipe-filter-ii; remove astr_fread.

	Factor guts of estr_readf into astr_readf, and use the latter to simplify lisp_loadfile.
	Make some other minor improvements to lisp.c.

	Fix file encoding preservation on read, by rewriting insert_file as estr_fread, and allowing buffer’s text member to be set.

2011-07-22  Reuben Thomas  <rrt@sc3d.org>

	Remove recently-added dependency of zile.1.in on zile$(EXEEXT) as it messes up make distcheck.

	Add NEWS for 2.4.0.60.

	Remove unneeded includes of assert.h.

	Simplify and C99ify some buffer routines slightly.

	Fix and simplify set_buffer_names.

	Fix missing space in docstring.

	Fix possible comparison of NULL string.

	Fix highlighting.

	Fold term_minibuf_read into its only callee, and simplify.

	Fold term_full_redisplay into its only caller.

	Remove some unnecessary includes.

	Simplify key fetching API and code.

	Remove some unnecessary includes.

	Remove some unnecessary/incorrect uses of undo sequences.

	Remove prototype for removed function.

	Fix estr_new_astr producing estrs without a NULL eol.

	Remove undo_nosave.

	Remove unneeded doing_undo.

	Move more command machinery into call_command for better fidelity between interactive and noninteractive execution.

2011-07-21  Reuben Thomas  <rrt@sc3d.org>

	Simplify undo API and code.

	Simplify screen drawing and make splash screen a buffer as in Emacs.

	Use estr_line_len to implement get_buffer_line_len.

	Don't store terminal width and height; read it directly every time.

	Remove three static vars, folding two once-called functions into their callers.

	Fix and simplify sexp movement.

	Add INSTALL to .gitignore.

	Remove spuriously-added gnulib module.

	Make zile.1.in depend on zile executable.

2011-07-20  Reuben Thomas  <rrt@sc3d.org>

	INSTALL is now provided by gnulib.

	Add goal column test.

	Make last_command updating work in scripts.

	Fold call_macro into its only caller.

2011-07-19  Reuben Thomas  <rrt@sc3d.org>

	Remove unused astr_cmp.

	Remove unused astr_replace.

	Avoid repeated calls to strlen in a loop.

	Fix a performance bug in insert_file.

	Remove more redundant settings of resync flag.

	Make goto-char accept uniarg, and remove redundant setting of resync flag.

	Use goto_offset instead of setting bp->o directly.

	Remove bogus cast.

	Simplify goto-char and goto-line and improve their docstrings.

	Call move_line directly to simplify some code.

	Fix missing type conversion.

	Fix goal column treatment.

	Rename EMACS to EMACSPROG to avoid problems when building under Emacs (copied from master).

	Remove deleted command view-emacs-FAQ from default bindings.

	Fold line_remove into its only caller (copy from master).

	Simplify and fix next-line and previous-line, as per master.

	Simplify next-line and previous-line, fixing some bogus behaviour.

	Minor consistency fix.

	Bump version.

	Rename gnulib-local to gl for gnulib's bootstrap.

	Fix formatting of heading.

	Switch from autogen.sh to gnulib's bootstrap.

	Update mention of gnulib to better reflect reality.

	Add support for underlined text.

	Simplify draw_status_line slightly.

	Remove window_pt.

	Make split-window copy the current topdelta too, and add window_o.

	Simplify move_line.

2011-07-18  Reuben Thomas  <rrt@sc3d.org>

	Remove view-emacs-FAQ (copy from master).

	Remove view-emacs-FAQ.

	Remove some excessive comments.

	Update gnulib; unused-parameter is now snippet/unused-parameter.

2011-07-17  Reuben Thomas  <rrt@sc3d.org>

	Revert bogus e934d5edc20ef.

	Fix bug in minibuf_read_filename (copy from master).

	Fix typo in previous commit.

	Add region_new and use it to simplify calculate_highlight_region.

	Copy topdelta when splitting a window.

	Simplify in_region and its callers and make it static.

	Remove a redundant and fix an incorrect dependency.

	Simplify code owing to no longer needing to track allocated memory.

2011-07-16  Reuben Thomas  <rrt@sc3d.org>

	Remove spurious blank line.

	Change error message to be like Emacs.

	Simplify window.c slightly.

	Simplify resize_windows slightly.

	Separate out sources containing user commands, to reduce rebuilding.

	Remove get_marker_pt.

	Remove get/set_region_start/end.

	Remove now-defunct get/set_buffer_pt_o (use get/set_buffer_o instead).

	Change some calls to goto_point to calls to goto_offset.

	Remove line_end_position and line_beginning_position, and remove uniarg support from end-of-line and beginning-of-line.

	Remove point_min, point_max, gotobob and gotoeob; add goto_offset, and rewrite goto_point in terms of it.

	Simplify minibuf_read_filename slightly.

	Use xgetcwd from gnulib.

	Don’t append a slash to path in minibuf_read_filename if it’s empty, so that the path correctly defaults to cwd.

2011-07-10  Reuben Thomas  <rrt@sc3d.org>

	Add memmem gnulib module for non-GNU systems.

	Ignore patch files.

	Simplify goto_point, and break out some of move_line as resync_goalc.

	Simplify back-to-indentation slightly.

2011-07-09  Reuben Thomas  <rrt@sc3d.org>

	Remove name-last-kbd-macro mentions from docstrings.

	Remove named macros (merge from gc branch).

	Remove zile-version (merge from gc branch).

	Remove transient-mark-mode (merge from gc branch).

	Remove tabify and untabify (as on gc branch).

	Compress some copyright ranges.

	Remove zile-version.

	Remove transient-mark-mode (act as if always on).

	Remove tabify and untabify.

	Remove named macros.

2011-07-09  Reuben Thomas  <rrt@sc3d.org>

	Replace Buffer’s pt member with a simple offset, o. Remove buffer’s last_line member. Rename the old get_buffer_o function to get_buffer_line_o.
	Fix calculation of buffer percentage position in mode line to be more
	Emacs-like.

	Finally remove the Line struct declaration (missed from earlier
	commit).

	Make adjust_markers return the updated point, so that it can be used
	as argument to goto_point later, after the buffer has been adjusted.

	Simplify delete_region by using buffer_replace.

	Simplify move_line.

2011-07-07  Reuben Thomas  <rrt@sc3d.org>

	Use get_buffer_pt_o where possible.

	Get rid of make_point.

	Get rid of cmp_point.

	Simplify Undo struct slightly.

	Make Undo use a single offset, not line number and offset.

	Remove Line type altogether. Breaks untabify test, owing to bug in adjust_markers.

	Remove get_line_offset.

	Get rid of get_line_text. Add get_buffer_line_len, and new estr functions estr_line_len, estr_start_of_line and estr_end_of_line. Improve estr_prev_line by writing it in terms of estr_start_of_line, so it works even when not fed a start-of-line position.

2011-07-04  Reuben Thomas  <rrt@sc3d.org>

	Simplify and finally fix edit_tab_line, broken for some time; all the tests pass once more. As a result, fix a bug in adjust_markers.
	Simplify goto_goalc, and further simplify get_goalc_bp.

	Simplify is_empty_line, is_blank_line, following_char and
	preceding_char.

	Simplify the function `search'.

	Make get_buffer_text return the estr, not the underlying astr, and
	hence remove get_buffer_eol.

	Add get_buffer_o.

	Remove several uses of get_line_text.

2011-07-04  Reuben Thomas  <rrt@sc3d.org>

	Simplify get_goalc_bp slightly.

2011-07-04  Reuben Thomas  <rrt@sc3d.org>

	Add encoded string module (estr), based on astr, but storing line ending encoding, and move most line-ending stuff into it.
	Use estr in Zile functions replace_estr (and wrapper insert_estr).

	Allow move_char to take an argument whose absolute value is >1.

	Add memrmem (reverse memmem).

	Various other small fixes.

2011-06-29  Reuben Thomas  <rrt@sc3d.org>

	Rename EMACS to EMACSPROG to avoid problems when building in an Emacs shell.

2011-06-25  Reuben Thomas  <rrt@sc3d.org>

	Fix an uncompressed copyright range.

	Push undo_save into buffer_replace_text, which is renamed buffer_replace.
	Rename old buffer_replace to replace, and remove its (useless) Buffer
	* parameter, as it is constrained by calling move_char to operate only
	on cur_bp; move this new function into line.c. Simplify replace by
	making it call buffer_replace.

	Make buffer_insert into buffer_replace and simplify type_char.

	Merge eol and text members of Buffer into an estr.

	Minor formatting tweak.

2011-06-25  Reuben Thomas  <rrt@sc3d.org>

	Simplify point_to_offset to use offsets directly rather than walking the lines.
	Improve and simplify some comments.

	Rename intercalate_char to insert_char and insert_char to type_char,
	making it take the mode (overwrite/insert) as a parameter rather than
	using the current mode. Make insert_char & insert_newline the
	primitives rather than the old intercalate_* functions.

	Add buffer_insert, a new primitive that inserts a string, for speed.

2011-06-23  Reuben Thomas  <rrt@sc3d.org>

	Simplify completion code, and make popup close on sole completion.
	Simplify term_minibuf_write.

	Fix a type-o.

	Improve a comment.

	Simplify intercalate_char and its callees.

	Fix a bug in intercalate_newline.

	Simplify type_char slightly.

	Rename insert_char to type_char and take overwrite as a parameter.
	Rename insert_char_in_insert_mode to insert_char and simplify it.

	Start to take care of line ending encoding properly.
	Remove line.h.

	Fix some indentation.

	Make cloc count tbl_opts.h.in.

	Replace line_replace_text by buffer_replace_text.

	Simplify exist_file.

	Simplify raw_write_to_disk.

	Add explanatory comment.

	Streamline copy_text_block as get_buffer_region.

	Remove where-is's ability to insert message in buffer with prefix arg.

	Remove unnecessary include.

	Streamline file reading and insertion.

2011-06-22  Reuben Thomas  <rrt@sc3d.org>

	Fix bug recently introduced in minibuf_read_yesno.

	Simplify read_file.

	Fix a bug recently introduced to minibuf_read_filename.

	Add memrmem and use it for finding lines instead of find_substr.

2011-06-21  Reuben Thomas  <rrt@sc3d.org>

	Tweak API of find_substr to use char *'s rather than astrs for flexibility.

	Search for lines by buffer's EOL (rather than assuming LF).

2011-06-19  Reuben Thomas  <rrt@sc3d.org>

	Update gnulib

	Simplify calculate_buffer_size, renamed to get_buffer_size.

	Make minibuf reader routines return castrs and Lisp string args be castrs.

	Make newtext argument to line_replace_text an astr.

	Add a FIXME.

	Slight simplifications and robustifications.

2011-06-18  Reuben Thomas  <rrt@sc3d.org>

	Make Region a value, not a reference type.

2011-06-17  Reuben Thomas  <rrt@sc3d.org>

	Reimplement Regions as a pair of offsets.

	Reimplement markers as offsets.

	Reimplement buffers as a single string, into which Lines are pointers. Lines are treated now as non-circular lists, implemented by methods rather than struct members.
	The code currently has holes: in particular, adjust_markers can crash
	when the current line number of a marker is wrong because of deletion.
	Rather than fix this it seems more sensible to proceed to reimplement
	Markers as simple offsets into a buffer, but also a good idea to check
	in what I’ve done so far!

2011-06-16  Reuben Thomas  <rrt@sc3d.org>

	Fix comment English.

	Remove redundant line.

	Add missing include.

	Reformat comment.

	Fold line_new into its only caller.

	Move Line implementation to buffer.c.

	Fix comment typo.

	Fix a copyright range.

	Fix a comment.

	Fix some copyright ranges.

	Remove leWipe, which now does nothing.

	Shorten buffer_new slightly, removing excessive comments.

	Remove no-longer needed macros.

	Remove set_line_* methods.

	Make Lines lists non-circular.

	Use line numbers rather than pointers wherever possible.

	Allocate text field in line_new.

	Remove all assignments to Line members except within set methods.

	Minor simplification.

	Simplify basic movement routines using direct access to Buffer fields.

	Move basic movement routines to buffer.c.

	Reduce number of callers of set_buffer_pt; use goto_point instead.

2011-06-15  Reuben Thomas  <rrt@sc3d.org>

	Remove two remaining direct modifications of Lines in case-changing routines.

	Update gnulib and re-add POSIX support modules.

	Isolate changes to Lines to a few functions in line.c.

2011-06-14  Reuben Thomas  <rrt@sc3d.org>

	Remove two spurious field declarations.

	Remove line_delete (not needed with GC) and fold line_remove into its only caller.

	More C99isms.

2011-06-03  Reuben Thomas  <rrt@sc3d.org>

	Fix FIXME to simplify walk_bindings_tree as per Lua version.

2011-05-29  Reuben Thomas  <rrt@sc3d.org>

	Fix a FIXME.

	Fix next_bp becoming nil in kill_buffer.

	Fix off-by-one error in +LINE command-line arg implementation.

2011-05-21  Reuben Thomas  <rrt@sc3d.org>

	Simplify code using C99 declarations.

	Tighten requirements to POSIX 2008 and C99, and remove gnulib modules that implement POSIX support.

	Remove all calls to free.

2011-05-20  Reuben Thomas  <rrt@sc3d.org>

	Add check-syntax rule for flymake.

	Add newline at EOF.

	Use libgc.

	Always use dnl rather than # for comments.

	Add proper per-buffer default directory (copied from lua branch).

	Add README-release.in.

	Fix copyright dates.

2011-05-14  Reuben Thomas  <rrt@sc3d.org>

	Fix formatting of universal argument keystrokes.

2011-05-13  Reuben Thomas  <rrt@sc3d.org>

	Fix building of zile.1.in and zile.1.

	Fix typo.

	Fix execute_command when uniarg not supplied.

	Apply tostring to output in ldb.

	Fix resize_windows.

	Fix typos in translation from C.

	Modify FIXME to take account of future changes in luaposix.

	Don't contact translation project, Zile is not i18n'ed or l10n'd.

2011-05-04  Reuben Thomas  <rrt@sc3d.org>

	Use new-style woger arguments, and call it twice as release notes are different for gnu and freshmeat.

	post-release administrivia
	* NEWS: Add header line for next release.
	* .prev-version: Record previous version.
	* cfg.mk (old_NEWS_hash): Auto-update.

	More tweaks for non-recursive build.

	version 2.4.0.50
	* NEWS: Record release date.

2011-05-03  Reuben Thomas  <rrt@sc3d.org>

	Fix test to display splash screen.

	Fix +LINE option.

	Update std.lua for bug fixes.

	Again, fixes to format of NEWS.

	Don’t put version number in NEWS, it’ll be written in by scripts later.

	Use a version number, 2.4.0.50, that the various gnulib checks will accept.

	Don’t call do-release-commit-and-tag in release target, it’s too late!

	Fix tests for VPATH build.

	Add a note to a FIXME.

	zile.1 is under builddir, not srcdir.

	Use top_srcdir and abs_top_srcdir as needed.

	Add NEWS for 2.4.0alpha2.

	Merge master.

	Fix copyright years for consistency with lua branch.

2011-05-02  Reuben Thomas  <rrt@sc3d.org>

	Only use AM_SILENT_RULES where available.

	Compress date range.

	Add gnulib readme-release module.

	Exclude Lua files from repeated word check.

	Remove space-tab; thank you, maint.mk!

	Move commented-out code into woger, and do a FIXME.

	Rather than keep deleting lib/ each time we update gnulib, ignore it.

	Add do-release-commit-and-tag gnulib module.

	Add readme-release gnulib module.

	Use abs_srcdir more to make more things work in both directories.

	Bump version to 2.4.0alpha2.

2011-05-01  Reuben Thomas  <rrt@sc3d.org>

	Implement buffer default directories properly.

2011-04-30  Reuben Thomas  <rrt@sc3d.org>

	Explain capitalization of Zile.

	Update luaposix dependency.

	Compress copyright ranges.

2011-04-29  Reuben Thomas  <rrt@sc3d.org>

	post-release administrivia
	* NEWS: Add header line for next release.
	* .prev-version: Record previous version.
	* cfg.mk (old_NEWS_hash): Auto-update.

	Fix NEWS hash.

	version 2.3.24
	* NEWS: Record release date.

	Remove version and date from NEWS so that do-release-commit-and-tag can run.

	Add two tests from lua branch.

	Bump version to 2.3.24 and add NEWS.

	Fix a couple of space leaks.

	Add do-release-commit-and-tag.

	Add woger's gnu method back.

	Compress copyright year range.

	Add a bug-fix (for prefix argument killing) from Zile Lua.

	Add a call to maybe_free_kill_ring.

	Don’t call maybe_free_kill_ring unnecessarily, fixing bug #33001.
	Make maybe_free_kill_ring local, as it’s not called outside killring.lua.

	Simplify execute_function further.

	Simplify execute_function's arg list.

	Add a FIXME.

	Make leReallyWipe static.

	Remove mistakenly committed configuration.

	Update copyright years, compress to ranges.

	Update gnulib.

	Fix cosmetic error in repeated ESC-digit keypresses in universal-argument.

	Simplify string handling around do_binding_completion.

	Fix cosmetic error in repeated ESC-digit keypresses in universal-argument.

2011-04-28  Reuben Thomas  <rrt@sc3d.org>

	Fix up loc target for non-recursive make.

2011-04-28  Gary V. Vaughan  <gary@gnu.org>

	Move to non-recursive make.
	...otherwise make cannot properly manage cross directory dependencies
	among intermediate files. Also, this prepares for moving to a Lua
	based build tool, which in turn won't support recursive Makefile.am
	parsing.

2011-04-28  Reuben Thomas  <rrt@sc3d.org>

	Make do_binding_completion add hyphen to input, not callers.

2011-04-27  Reuben Thomas  <rrt@sc3d.org>

	Fix bug #33001, ESC digit not working.

	Fix call to mkstemp.

	Update gnulib.

	Use mktemps from gnulib, and update gnulib.

2011-04-27  Gary V. Vaughan  <gary@gnu.org>

	Allow running of uninstalled zile wrapper script from anywhere.
	Prior to this patch, you had to cd into the zile src directory
	to run an uninstalled zile wrapper script.

	Now, by substituting an absolute directory into the zile package
	search path, it's possible to improve testing of the latest
	version by adding the build tree directly into your path, e.g.:

	   PATH=$PATH:~/Devo/zile--savannah--0/src

2011-04-27  Reuben Thomas  <rrt@sc3d.org>

	Create temporary files in same directory as destination.
	This fixes #33006.

	mkstemp only uses six X’s, so remove the extras.

2011-04-25  Reuben Thomas  <rrt@sc3d.org>

	Fix typo (wrong variable name).

2011-04-16  Reuben Thomas  <rrt@sc3d.org>

	Fix interactive kill_line test bug, and fix comment typo in test itself.

2011-04-15  Reuben Thomas  <rrt@sc3d.org>

	Fix test (needed an extra C-s). The bug in Zile was fixed, anyway.
	Make the test Emacs-compatible, and move it to the main tests
	direction.

	Fix typo, and make copy_marker global.

2011-04-13  Reuben Thomas  <rrt@sc3d.org>

	Add missing calls to string.format.

2011-04-13  Gary V. Vaughan  <gary@gnu.org>

	src/file.lua: fix misnamed variable

2011-04-12  Reuben Thomas  <rrt@sc3d.org>

	Fix use of strerror (as posix.errno).

	Merge branch 'lua' of git://git.sv.gnu.org/zile into lua

	Update std.lua.

	Don’t assume posix.euidaccess returns a number.

2011-04-08  Gary V. Vaughan  <gary@gnu.org>

	regression test: demonstrate savannah bug #33002
	Search for a string that appears 3 times in the buffer, exit the
	search at the second occurence, and then crash when pressing C-s
	again.  See https://savannah.gnu.org/bugs/?33002

	regression test: demonstrate savannah bug #33001
	Kill 2 lines with M-2^K and then yank them back one line further
	down in the buffer.  See https://savannah.gnu.org/bugs/?33001

	regression test: demonstrate savannah bug #33000
	Kill a complete line with ^K^K and then yank it back one line further
	down in the buffer.  See https://savannah.gnu.org/bugs/?33000

2011-04-05  Gary V. Vaughan  <gary@gnu.org>

	src/zile.lua.in: don't obliterate the system Lua package.path
	But, DO continue to overwrite the user's LUA_PATH setting.

	Support Automake versions < 1.11

2011-04-03  Reuben Thomas  <rrt@sc3d.org>

	Fix previous_history_element.
	Give {previous,next}_history_element errors like Emacs.

	Specify URLs for required libraries.

2011-04-01  Reuben Thomas  <rrt@sc3d.org>

	Tidy up marker code slightly.

	Simplify markers code.

	Fix typo.

	Simplify enlarge-window slightly.

	Convert window list from linked list to normal Lua list.

	Fix left-over reference to cur_bp.next.

2011-03-30  Reuben Thomas  <rrt@sc3d.org>

	Simplify popup_window slightly.

	Avoid a possible NULL pointer dereference.

	Add comment.

	Move setup_main_screen to after files are loaded, so it really works.

	Update list-buffers docstring.

	Change buffer list from linked list to ordinary Lua list.

	Update ax_lua.m4.

2011-03-28  Reuben Thomas  <rrt@sc3d.org>

	Add a couple of FIXMEs.

2011-03-25  Reuben Thomas  <rrt@sc3d.org>

	Add a FIXME for streamlining next release.

	post-release administrivia
	* NEWS: Add header line for next release.
	* .prev-version: Record previous version.
	* cfg.mk (old_NEWS_hash): Auto-update.

	Improve comments.

	Bump release date for 2.4.0alpha1.

	Remove obsolete comment and unneeded VC_LIST_ALWAYS_EXCLUDE_REGEX pattern.

	Remove obsolete comment.

	Simplify and fix minibuf_read_filename.

	Fix a typo (inverted sense of test).

2011-03-24  Reuben Thomas  <rrt@sc3d.org>

	Exclude two Lua files from sc_unmarked_diagnostics.

	Update ax_lua.m4 to fix sc_prohibit_test_minus_ao errors.

	Bump NEWS hash.

	Update prerequisite version of luaposix to release 5.1.9, now that it's released.

	Update information about how Zile is written.

	Simplify move_marker slightly.

2011-03-23  Reuben Thomas  <rrt@sc3d.org>

	Make marker_new local to marker.lua.

	Move mark ring functions into marker.lua.

	Simplify drawing of modeline background.

	Use term_addstr instead of term_addch.

	Fix for multiple matches in completion_try, and some simplification and tidy-up.

	Fix a mistranslation from C in do_minibuf_read.

	Apply fix to std.lua.

	Replace COMPLETION_* constants with strings.

	Add buffer_name_history, and fold minibuf_read_completion into minibuf_read.

	Bump some copyright years.

	Convert thisflags and lastflags from bitfields to boolean-valued tables.

	Bump copyright year list.

2011-03-22  Reuben Thomas  <rrt@sc3d.org>

	Fix current-prefix-arg support, and other minor tidy-up.

2011-03-20  Reuben Thomas  <rrt@sc3d.org>

	Update copyright years.

	Add a FIXME.

	Make current-prefix-arg default to nil, not 1, and fix get_variable_number to return nil for no value, not 0.

2011-03-19  Reuben Thomas  <rrt@sc3d.org>

	Fix typo (wrong field name).

	Simplify normalize_path further.

	Fix and simplify normalize_path.

	Update std.lua to release 20.

2011-03-18  Reuben Thomas  <rrt@sc3d.org>

	Add FIXME to reactivate -Wbad-function-cast.

	Fix -Wcast-qual warnings, and reactivate sc_cast_of_argument_to_free check.

	Correct minimum required version of autoconf.

	Correct minimum required version of autoconf.

	Bump required version of autoconf.

	Merge master.

	Correct setting of filename flag for file name completions.

	Fix previous commit.

	Catch last remaining Clue macro call.

	Read errno correctly in read_file.

	Fix a mistranslation from C in execute-extended-command.

	Add debugging with ldb.

	Remove texinfo files and add log to .gitignore.

2011-03-17  Reuben Thomas  <rrt@sc3d.org>

	Remove long-unnecessary cosmetic code in term_close.

	Update instructions for Lua branch.

	Bump copyright date.

	Add ncftp to dependencies for automated releases.

	Improve portablity by not using test -o.

2011-03-15  Reuben Thomas  <rrt@sc3d.org>

	Get rid of headings for Freshmeat announcements, which are not formatted.

2011-03-14  Reuben Thomas  <rrt@sc3d.org>

	Fix release notes parser to match new format of NEWS.

	Fix bogus release headings.

	Add gnupload.

	post-release administrivia
	* NEWS: Add header line for next release.
	* .prev-version: Record previous version.
	* cfg.mk (old_NEWS_hash): Auto-update.

	Bump NEWS hash.

	Match heading with format accepted by announce-gen.

	Remove unnecessary customization of news-check-regexp (was the same as the default).

	Rewrite 2.3.23's NEWS in accepted format.

	Update date for 2.3.23.

	Update format of Release lines in NEWS for finding release notes.

2011-03-13  Reuben Thomas  <rrt@sc3d.org>

	Add .prev-version.

	Bump NEWS hash.

	Correct formatting of release lines.

	Remove unnecessary setting.

	Sort out noreturn attributes.

	Make make syntax-check pass.

	Remove useless include of assert.

	Use gnulib progname module.

	Quote first argument of AC_DEFINE_UNQUOTED.

2011-03-12  Reuben Thomas  <rrt@sc3d.org>

	Update ax_with_curses.m4 to satisfy AC_DEFINE check in maint.mk.

	Opt out of checks Emacs would fail, and add rationales.

	Remove casts of x*alloc result.

	Don't perform check for cast of free's arg.

	Don't run sc_bindtextdomain check.

	Add news about build system improvements.

	Use gnulib warnings and manywarnings, and fix all warnings.

	Remove most of the release code, just leaving that for Freshmeat.

	Make {beginning,end}-of-buffer work in transient-mark-mode.

	Make Valgrind quiet.

	Fix for reading empty files.

	Add config.cache.

	Bump version to 2.3.23 and add NEWS.

	Make {beginning,end}-of-buffer take account of transient-mark-mode.

	Remove transient_mark_mode C function; pointless.

	Bump copyright message year.

	Iron out some make distcheck errors.

	Fix various bugs in regex isearch.

	Fix path of zile.lua.

	Change version to 2.4.0alpha1 and write some NEWS.

	Add missing files to Makefile.am.
	Make commented announcement into a FIXME.

	Fix backward-kill-word with no arg.

	Remove unwonted parens from require argument.

	Make zile startup set Lua environment, using trick from Jörg Richter to make a dual shell-Lua script. Hardwire path to Lua interpreter according to build.

	Update std.lua, fixing problem with _DEBUG.

2011-03-09  Reuben Thomas  <rrt@sc3d.org>

	Merge from master.

2011-03-07  Reuben Thomas  <rrt@sc3d.org>

	Add a missing string.format.

	Remove most of release target; use maint.mk in future.

	Use euidaccess to check files to write.

	Remove spurious dependency of loadlua.lua on Lua source.

	Fix installation.

	Exit immediately on error rather than allowing atexit functions to run, for compatibility with C Zile (and visibility of error messages).

	Remove an extraneous space in the regex for escaping regexps.

2011-03-03  Reuben Thomas  <rrt@sc3d.org>

	Modify isearch_forward_regexp test to catch just-fixed bug.

	Fix space leak.

	Add more NEWS for 2.3.22.

	Add NEWS for 2.3.22.

	Bump version and copyright year.

	Fix regex isearch forward.

	Re-add wrongly removed setting.

	Update gnulib.

	Remove unused variable.

2011-03-01  Reuben Thomas  <rrt@sc3d.org>

	Escape non-regex search rather than using non-standard RE_PLAIN flag.

	Use signal name, not number.

	Load default bindings from path.

2011-02-26  Reuben Thomas  <rrt@sc3d.org>

	Improve comment.

	Use new AX_PROG_LUA macro.

	Update macros.

	Reorder more logically, and remove some unnecessary quotes.

	Compact a few lines.

	Clarify comment.

	Sync FAQ with reality and improve layout slightly.

	Remove obsolete entries.

	Be more precise.

	Remove unused variable.

	Add license, to satisfy the cautious.

	Update run-lisp-tests.lua to match master.

	Use license shorter than the code.

	Remove tests for removed feature.

	Merge HEAD.

	Add silent building and update copyright dates.

	Don’t mention config.h, as we no longer use it.

	Default to false if help2man not found, for better error messages.

	No longer have a lib directory.

	Don't use C, so no longer need config.h.

	No longer use C, nor, hence, libgnu.

	Remove gnulib's dirname module, no longer used.

2011-02-25  Reuben Thomas  <rrt@sc3d.org>

	Add some missing dependencies.

2011-02-24  Reuben Thomas  <rrt@sc3d.org>

	Remove main.c, replace with zile.lua. We have no more C!

	Bump copyright year.

	Fix a typo.

	Fix a typo.

	Bump copyright year.

	Fix typo.

	Various fixes and improvements to .gitignore files.

2011-02-23  Reuben Thomas  <rrt@sc3d.org>

	Merge branch 'lua' of git.sv.gnu.org:/srv/git/zile into lua

	Add missing require.

	Update gnulib.

2010-11-17  Reuben Thomas  <rrt@sc3d.org>

	Add NEWS for 2.3.21 and bump version.

	Make isearch-backward test test repeated isearch.

	Fix a couple of off-by-one errors in backward search introduced in commit 4a5ffc94eff.

	Merge master.

	Simplify test harness so that it doesn’t need a list of tests.
	Use wildcards, and separate the three classes of tests (run on Zile &
	Emacs, run on Zile only, disabled) into three different directories.

	Simplify test harness so that it doesn’t need a list of tests.
	Use wildcards, and separate the three classes of tests (run on Zile &
	Emacs, run on Zile only, disabled) into three different directories.

2010-11-09  Reuben Thomas  <rrt@sc3d.org>

	Remove some unused gnulib modules.

2010-11-09  Reuben Thomas  <rrt@sc3d.org>

	Use getopt_long from luaposix.
	Remove now-empty lua.c and extern.h.

	Remove some unused code from main.c.

2010-11-09  Reuben Thomas  <rrt@sc3d.org>

	Use explicit initialisation of zero fields rather than memset.

	Correct comment.

	Allocate all values in Lua state to simplify code.

2010-11-08  Reuben Thomas  <rrt@sc3d.org>

	Don't do unnecessary and misleading lua_pop.

	Fix FIXMEs: allow opterr and intial value of optind to be set by caller.

	Remove obsolete functions.

	Fix FIXME: call resize_windows now that it is in Lua.

	Fix FIXME: use a table of markers for each buffer, not a linked list.
	As a result, free_buffer is no longer needed.

	Convert texinfo formatting to plain text in docstrings.

	Add missing argument type list to auto-fill-mode.

	Add note that loadlua.lua is generated to the file.
	Make loadlua.lua be deleted when it is remade, not just appended to.

	Remove unused X, D, O and A functions from lib.lua (in fact, everything!) and add recase (from main.lua, fixing a FIXME), and texi (from texinfo.lua, which is now empty and is deleted).
	lib.lua now becomes part of the Zile sources, not buildtime, which
	means the buildtime sources list is empty, so the Makefile can be
	simplified a little.

	Fix FIXME: make strtochord’s return values consistent with strtokey’s.
	Incidentally, make strtochord local.

2010-11-08  Reuben Thomas  <rrt@sc3d.org>

	Move initialisation of functions_history to lisp.lua, so it can be local there.
	In order to allow history_new to be called from lisp.lua, put
	history.lua before lisp.lua in ZILE_LUA.

	Make loadlua.lua depend on Makefile.am, so that changes in ZILE_LUA
	cause it to be rebuilt.

2010-11-08  Reuben Thomas  <rrt@sc3d.org>

	Fix FIXME: Ensure that freed upvalues for getopt_long are never accessed.
	Move comment for getopt_long to the start of the correct function.

	Fix minor whitespace problem.

	Move process_keys to bind.lua, fixing a FIXME.

	Add missing module descriptions and license blocks.

	Generate loadlua.lua directly in Makefile.am.

	Remove defunct entries.

	Fix some bogus struct element references.

	Implement FIXME to get configure constants from configure script.

2010-11-07  Reuben Thomas  <rrt@sc3d.org>

	Add config.cache.

	Fix FIXME: combine Lua and C program_name.

2010-11-05  Reuben Thomas  <rrt@sc3d.org>

	Add a couple of FIXMEs.

	Update FIXME.

	Fix an off-by-one error in line_replace_text.

	Fix output and grammar of number of occurrences changed in query-replace.

	Use AM_SILENT_RULES for easier-to-read builds.

	Fix line_replace_text’s interpretation of case-replace, broken 18 months ago.
	Improve comment for line_replace_text.

2010-10-26  Reuben Thomas  <rrt@sc3d.org>

	Rewrite getopt_long Lua binding as an iterator, so that memory used can be safely freed.

2010-10-23  Reuben Thomas  <rrt@sc3d.org>

	Move lua_getargs into main.c and rename it getargs, making it static.

	Improve comment.

	Remove unused euidaccess.

	Use isprint and isgraph from luaposix.

	Use string.match instead of isspace.

	Use Lua string.match instead of isdigit.

	Use BUFSIZ from luaposix.

2010-10-22  Reuben Thomas  <rrt@sc3d.org>

	Fix a couple of FIXMEs.

	Put draw_minibuf_read above its caller, and add file header.

	Fix FIXMEs for identifiers which were local in C but were temporarily not in Lua (so they could be accessed from C), and now can (in most cases) be made local.

	Update FIXME to match reality.

	Remove raise and abort (added to luaposix).
	Use raise and abort from luaposix.

2010-10-17  Reuben Thomas  <rrt@sc3d.org>

	Fix test of EMACS environment variable.

2010-10-16  Reuben Thomas  <rrt@sc3d.org>

	Fix copying keystrokes in name-last-kbd-macro.

2010-10-15  Reuben Thomas  <rrt@sc3d.org>

	Fix a couple of typos.

	Fix a couple of typos.

2010-10-14  Reuben Thomas  <rrt@sc3d.org>

	Merge branch 'master' of git.sv.gnu.org:/srv/git/zile

	Update to previous fix, to make sure we only capture arguments that are requested.

	Simplify token types in parsing Lisp.
	Coerce any argument of type other than number or bool is a string, so
	that ignoring non-string arguments works.

	Fix returning of return value in shell-command.

	Read arguments for lisp defuns in correct order.

	Rename prog_name to program_name to provide value for gnulib's error/lib.c (from HEAD).

	Rename prog_name to program_name to supply value for gnulib's lib/error.c.

2010-10-12  Reuben Thomas  <rrt@sc3d.org>

	Add back proper backtrace from C calls into Lua; will need signal handling later\!

	Fix callers of copy_or_kill_region which erroneously believed it returned a truth value.

	Update std.lua.

2010-10-10  Reuben Thomas  <rrt@sc3d.org>

	Fix an off-by-one error in fill-paragraph.

	Fix typo in delete-blank-lines.

	Remove ability to use octal codes in quoted-insert.

	Translate run-lisp-tests into Lua, to cope with paths containing spaces.

	Add a FIXME.

	Work with spaces in paths.

	Update std.lua

2010-10-09  Reuben Thomas  <rrt@sc3d.org>

	Merge changes from lua branch.

	Remove check for unused fchmod.

	Remove lcurses from Zile sources; assume it can be loaded dynamically.

	Merge branch 'lua' of git.sv.gnu.org:/srv/git/zile into lua

	Remove bogus mode setting of created files.

2010-10-03  Reuben Thomas  <rrt@sc3d.org>

	Update .gitignore files to cope with moving aux_dir to build_aux.

	Remove redundant entries and tighten up existing ones.

	Go back to using gnulib's cyclo code.

2010-10-03  Reuben Thomas  <rrt@sc3d.org>

	Remove now-redundant stamp machinery for building tbl_vars.h and dotzile.sample, now that only the former remains.
	Remove traces of dotzile.sample.

	Make LOC counting more like the Lua branch (don’t include tests by
	default).

	No longer need --no3 flag to cloc, as it’s the default.

2010-10-03  Reuben Thomas  <rrt@sc3d.org>

	Add build-aux.

2010-10-03  Reuben Thomas  <rrt@sc3d.org>

	Add maintainer-makefile module from gnulib.
	Switch aux_dir to build-aux for autoconf.

	Add some more autoconf warning options, long used in the Lua branch.

2010-10-03  Reuben Thomas  <rrt@sc3d.org>

	Improve wording.

	Bump copyright date.

	Improve prerequisites documentation.

	Remove Lua from repository build prerequisites.

	Add Perl to build prerequisites.

	Update POSIX standard used.

	Update build prerequisites.

	Remove VALGRIND support, now we are a Lua program.

	tbl_vars.lua is not generated, so should not be in MAINTAINERCLEANFILES!

	Remove unused gnulib modules and tbl_opts.h{,.in}.

	Fix printing of --help.

	Nearly total translation into Lua (just initialisation and signal handling missing).

	Update gnulib.

	Move aux dir to build-aux.

	Add Scott Lawrence back.

2010-10-01  Reuben Thomas  <rrt@sc3d.org>

	Update man-extras to reflect reality.

	loadlua.h has become loadlua.lua.

	Remove unused prog stanza.

2010-09-29  Reuben Thomas  <rrt@sc3d.org>

	Update NEWS.

	Simplify delete-blank-lines slightly.

	Fix an off-by-one possible buffer overflow.

2010-09-28  Reuben Thomas  <rrt@sc3d.org>

	Shorten is_regular_file.

2010-09-26  Reuben Thomas  <rrt@sc3d.org>

	Use logical negation rather than XORing with 1.

2010-09-25  Reuben Thomas  <rrt@sc3d.org>

	Push code into free_kill_ring, which becomes maybe_free_kill_ring, and make it static.

	Avoid a compiler warning.

2010-09-23  Reuben Thomas  <rrt@sc3d.org>

	Update NEWS.

	Change name of target so that report is always remade.

	Use gnulib modules vasprintf-posix and xalloc-die to provide the relevant functions, which no longer have to be implemented in Zile. It turns out that we had different prototypes for x[v]asprintf, so the callers all had to be changed.
	Use memcmp2 from gnulib to implement astr_cmp.

	Rewrite build scripts in Perl, to avoid needing Lua.
	As a result, make Perl a build dependency (Lua wasn’t), which allows
	src/Makefile.am to be simplified slightly.

	Minor simplification of logic.

	Escape string as necessary for Perl evaluation.

	Remove some redundant code.

2010-09-22  Reuben Thomas  <rrt@sc3d.org>

	Last fix was bogus; revert.

	Remove spurious quotes (fix from master).

	Simplify setcase_region slightly.

2010-09-21  Reuben Thomas  <rrt@sc3d.org>

	Simplify calling tab/untabify actions.

2010-09-20  Reuben Thomas  <rrt@sc3d.org>

	Fix some markup.

2010-09-19  Reuben Thomas  <rrt@sc3d.org>

	Add cyclo-zile.html.

	Add cyclometric complexity report generation from gnulib.

	Add patches to GNU regex to add RE_PLAIN.

	Change form of include to match new gnulib requirement.

	Update gnulib.

2010-09-18  Reuben Thomas  <rrt@sc3d.org>

	Add to 2.3.20’s NEWS.

	Make (un)tabify_string take source as an astr. As a result, reintroduce astr_cmp, but make it use strncmp, so that it works with embedded NULs.

	Fix a bug introduced in 2.3.17 in kill_ring_push (astr_cpy was used instead of astr_cat). Thanks to Chris Leyon for a precise report.

2010-09-16  Reuben Thomas  <rrt@sc3d.org>

	Make (un)tabify_string return an astr as result rather than taking a buffer.
	Incidentally, make the newtext parameter to replace_line_text a const
	char *.

2010-09-13  Reuben Thomas  <rrt@sc3d.org>

	Simplify and correct astr_recase.

	Fix check_case to return 0, not 1, for strings which start with more than one uppercase character then contain non-uppercase, or contain uppercase after the first non-uppercase character.

2010-09-12  Reuben Thomas  <rrt@sc3d.org>

	Make do_search decide what message to print rather than having it passed in, allowing isearch to call it directly, thus simplifying isearch.

	Simplify do_search slightly.

2010-09-12  Reuben Thomas  <rrt@sc3d.org>

	Fold goto_linep into search, and make it much more efficient, by not always starting from the top of the buffer, but just stepping in the direction of search from the current position.
	Simplify find_substr slightly.

	Remove redundant #includes.

2010-09-12  Reuben Thomas  <rrt@sc3d.org>

	Remove a comment that is now explained in the regex documentation.
	Simplify goto_linep, and fix a display bug: resync the display after
	moving to destination, not before. This was hidden by other resyncs
	when using incremental search/replace, so affects only non-incremental
	search.

	Force built-in regex if necessary.

	Simplify search code further by using new RE_PLAIN mode of GNU regex to do non-regex searches, and RE_ICASE to do case-fold searches.
	N.B. RE_PLAIN is not yet accepted by the regex maintainers.

2010-09-11  Reuben Thomas  <rrt@sc3d.org>

	Simplify search code; do not use GNU regex translate tables any more.

2010-09-10  Reuben Thomas  <rrt@sc3d.org>

	Use new version of ax_lua.m4 which renames AX_LUA_LIB_VERSION to AX_LUA_HEADERS_VERSION, and check that the library really has been found.

	Add and use new AX_LUA_READLINE macro from autoconf-archive.

	Revert commit 7a039b25699, as it caused zile.1 always to be rebuilt, and hence requires help2man for all users.

2010-09-07  Reuben Thomas  <rrt@sc3d.org>

	Update NEWS for EMACS environment variable fix.

	Explicitly unset EMACS when running Zile-only tests, in case there’s an EMACS environment variable (e.g. when building in an Emacs shell).

2010-09-06  Reuben Thomas  <rrt@sc3d.org>

	Update from gnulib.

	Bump version to 2.3.20 and add NEWS.

	Add missing zile$(EXEEXT) as a dependency of zile.1.in; thanks to Ulrich Mueller for the report and fix.

2010-08-13  Reuben Thomas  <rrt@sc3d.org>

	Bump version to 2.3.19 and add NEWS.

	Fix bug in get_buffer_dir introduced by commit d47e9935.

	Add TAGS.

2010-07-20  Reuben Thomas  <rrt@sc3d.org>

	Simplify search code slightly.

2010-07-15  Reuben Thomas  <rrt@sc3d.org>

	Fix a security race condition: don’t close the temporary file before calling pipe_command, so that it can’t be removed and another one created in between closing it and re-opening it to read.

	Simplify logic slightly.

	Make it clearer that we don’t try running the command unless we were able to open the temp file.

	Fix a potential space leak.

	Shorten some code.

2010-07-13  Reuben Thomas  <rrt@sc3d.org>

	Bump copyright date.

	Don't shorten name of file in buffer list, as Emacs doesn't (any more?).

2010-07-12  Reuben Thomas  <rrt@sc3d.org>

	Fix style of comment.

2010-07-11  Reuben Thomas  <rrt@sc3d.org>

	Add missing output file.

	Uncomment code that was commented out for a test.

	Update NEWS for 2.3.18.

	Fix a bug in quoted_insert_octal, and simplify the code: in particular, print characters directly rather than as numbers, and don’t return a boolean since the return value is not used.
	Add a test for quoted-insert of an octal code.

	Make minibuf_clear call minibuf_write, not term_minibuf_write, to ensure display is updated.

	Remove redundant call to minibuf_write.

	Remove some redundant code.

2010-07-03  Reuben Thomas  <rrt@sc3d.org>

	Make overwrite-mode use lisp arg as well as prefix arg.

2010-07-03  Reuben Thomas  <rrt@sc3d.org>

	Simplify get_buffer_dir and save_some_buffers.
	Fix an incorrect call to minibuf_error (too many format arguments).

	Make a minor improvement to write_buffer.

2010-06-25  Reuben Thomas  <rrt@sc3d.org>

	Add explicit initializer for cur_mp even though it makes no difference (statics are initialized to NULL anyway) for clarity.

	Bug fix to std.lua.

	Move body of call_zile_command into execute_function as in C.

	Make call_zile_c_command take uniarg and is_uniarg as well as list.

	Fix call to minibuf_error.

	Add WAITKEY_DEFAULT.

	Fix replace-o's.

	See previous commit message; previous commit should have committed all these too.

	Translate indent-relative, indent-for-tab-command, newline-and-indent, activate_mark, deactivate_mark, following_char, and preceding_char into Lua.
	Add isspace to Lua ctype functions.

2010-06-24  Reuben Thomas  <rrt@sc3d.org>

	Fix a Lua comparison.

2010-06-23  Reuben Thomas  <rrt@sc3d.org>

	Replace point_copy by table.clone.

	Fix last_command.

	Activate Lua debugging.

	Translate set_mark into Lua.

2010-06-21  Reuben Thomas  <rrt@sc3d.org>

	Remove a debugging statement.

	Make all Lua Defuns return a Lisp truth value, and not take an argument unless they use it.
	Improve universal-argument, execute-function, and Lua bindings of
	ctype.h functions.

	Translate the rest of getkey.c, and universal-argument, into Lua.

	Make last_command always return a string, never NULL.

	Tiny simplification.

	Small simplification.

	Translate add_cmd_to_macro and append_key_list into Lua.

	Minor Lua fix.

	Translate process_command and execute_function into Lua.

2010-06-20  Reuben Thomas  <rrt@sc3d.org>

	Add a missing CLUE_SET and make a Lua function temporarily non-local.

	Fix typo.

	Remove set_cur_wp and set_head_wp.

	Two small fixes for open-line.

	Small Lua comparison fix.

	Fix some small bugs in describe-bindings.

	Minor fix update.

	Remove intercalate_newline.
	Rewrite insert_char_in_insert_mode in terms of Lua version.

	Fix an out-by-one error in delete_char.

	Fix various logic and arithmetic bugs.

	Use Lua insert_newline.

	Remove insert_newline.

	Remove C insert_newline.

	Translate minibuf_error into Lua.

	De-localise a function temporarily for use from C.

	Translate a couple of missing functions.

2010-06-19  Reuben Thomas  <rrt@sc3d.org>

	A big lump of translation into Lua, largely working.

	Remove testing code so we can see which routines are really used.

2010-06-15  Reuben Thomas  <rrt@sc3d.org>

	Add TAGS.

2010-06-14  Reuben Thomas  <rrt@sc3d.org>

	Change the style of a comment to be consistent.

	Fix a Lua comparison.

	Improve formatting of comment.

	Fixes for dealing with no key pressed in waitkey.

	Fix a typo.

2010-06-13  Reuben Thomas  <rrt@sc3d.org>

	Update NEWS.

	Don't try to display a NULL minibuffer_contents.

	Fix a read of freed memory (thanks, valgrind\!).

	Plug a space leak.

	Bump version and add NEWS.

	Don't catch SIGQUIT, it's a user signal.

	Plug a space leak.

	Fix a Lua comparison.

	Add missing initialisation.

	Fix an incomplete translation from C.

	Fix a Lua comparison.

2010-06-12  Reuben Thomas  <rrt@sc3d.org>

	Add code to call Lua Defuns from execute_command.

	Fix name of function in call.

	Fix Lua comparison.

	Fix a string subscription bug.

	Need unchain_marker to be global.

	Fix a couple of small bugs.

	Remove strict.lua as it's now in stdlib.

	Update to release 5, and tweak to use a custom routine to call Lua.

	Update from CVS.

2010-06-11  Reuben Thomas  <rrt@sc3d.org>

	Fix some minor errors.

	Fix potential bug in ctype functions.

2010-06-07  Reuben Thomas  <rrt@sc3d.org>

	Add strict.lua to catch missing functions and globals.

	Remove keycode.c, now completely implemented in Lua.

	Fix missing return value and add FIXME.

	Update to release 14.

2010-06-03  Reuben Thomas  <rrt@sc3d.org>

	Remove unused list_free.

	Merge branch 'master' of git.sv.gnu.org:/srv/git/zile into lua

	Replace make_completion by a call to keyvectostr. D'oh.

	Fix some Lua comparisons and remove a debug statement.

	Fix some Lua comparisons.

	Merge changes from master.

	Fix Lua comparison.

	Simplify setting of fill-column.

	Fix copy_marker.

	Fix kill_buffer and unchain_marker.

	Simplify unchain_marker slightly.

2010-06-02  Reuben Thomas  <rrt@sc3d.org>

	Fix an off-by-one error.

	Update clue.h. The new version (with the same release number, because release 4 is only now being released) asserts that the code given to CLUE_DO compiles and runs, so there is no longer a return code, and the result no longer needs to be cast to void to avoid a compiler warning; more importantly, a whole class of bugs caused by malformed or buggy Lua will now result in an immediate assertion failure.

	Slight simplification.

	Fix a Lua comparison.

	Remove macro_delete in preparation for translation into Lua.

	Add Lua file missing from last commit.

	Rewrite minibuf_refresh in Lua.

	Make some functions local now that entire module is in Lua.

	Merge changes from head.

	Remove extern use of minibuf_contents static variable.

	Simplify end-of-line code handling slightly.

	Remove some unnecessary (even for understanding) parentheses.

	Merge changes from head (no changes).

	Finish translation of term_redisplay.c into Lua with term_redisplay and term_full_redisplay.

2010-06-01  Reuben Thomas  <rrt@sc3d.org>

	Translate draw_status_line into Lua, hence also get_goalc_bp, thisflag and lastflag (adding C accessors for the two variables).

2010-05-31  Reuben Thomas  <rrt@sc3d.org>

	Translate make_mode_line_flags and calculate_start_column into Lua.

2010-05-30  Reuben Thomas  <rrt@sc3d.org>

	Fix lack of initialisation.

	Update std.lua.

	Initialise Point properly in point_new.

	Replace calls to non-existent point_copy with calls to table.clone.

	Update std.lua from stdlib.

2010-05-29  Reuben Thomas  <rrt@sc3d.org>

	Improve comment.

	Simplify make_mode_line_flags.

	Translate draw_width, get_variable_bp and tab_width into Lua.

	Simplify tab_width (copy from master).

	Make get_variable_bp static as it’s unused outside variables.c.

	Minor simplification.

	Simplify tab_width.

	Rewrite calculate_highlight_region in Lua, which required head_wp and cur_wp to have C accessors, and various other utility functions to be translated into Lua.

2010-05-28  Reuben Thomas  <rrt@sc3d.org>

	Expand transient_mark_mode into its callers.

	Simplify calculate_highlight_region.

	Translate draw_end_of_line and draw_line into Lua.

	Translate in_region into Lua.
	Rename “end” member of Region to “finish” not to conflict with Lua
	keyword.

	Simplify in_region.

	Simplify outch.
	Move some variable declarations into block where they are used.

	Fix crash in read_file.

	Translate draw_minibuf_read, term_minibuf_write, outch and make_char_printable into Lua.

	Remove debugging statements.

2010-05-27  Reuben Thomas  <rrt@sc3d.org>

	Remove debug message.

	“Translate” free_undo into Lua by simply removing it.
	Remove some other defunct prototypes from extern.h.

2010-05-27  Reuben Thomas  <rrt@sc3d.org>

	Implement undo_set_unchanged in Lua.
	Remove C setters for Undo, as they are no longer used.

	Some of these files should have been in the previous commit.

2010-05-27  Reuben Thomas  <rrt@sc3d.org>

	Implement copy_text_block and undo_save in Lua. In order to do this, access cur_bp via accessors, and make the text fields of Line and Undo into char *’s for Lua compatibility.

2010-05-25  Reuben Thomas  <rrt@sc3d.org>

	Add FIXME.

	More bindings and keycode stuff in Lua.

	Merge changes from Lua (oops).

	Merge changes from master.

	Merge changes from master.

	Merge changes from master.

2010-05-24  Reuben Thomas  <rrt@sc3d.org>

	Expand NEWS for 2.3.17.

	Update gnulib.

	Put undo-specific fixup of copy_text_block into the caller.

	Fix undo bug introduced in fix in 1a0e6b42.

	Add comment to goto_point mentioning that pt.p is not used.

	Avoid future bugs by storing explicit position, not Point, in Undo.

	Fix a crash bug introduced in 2.3.16: we can’t rely on copy_text_block’s pt.p, as it may have come from an out-of-date pointer when called from undo_save.
	This needs a proper fix in undo.c.

	Add a FIXME

2010-05-21  Reuben Thomas  <rrt@sc3d.org>

	Add a lua_refeq test.

	Change test to assert.

	Add function_exists.

2010-05-20  Reuben Thomas  <rrt@sc3d.org>

	Add missing comparison with LUA_REFNIL.

2010-05-19  Reuben Thomas  <rrt@sc3d.org>

	Merge changes from master.

	Add temporary isprint and isgraph Lua functions.

	Remove pointless function init_bindings.

	Make strtochord static, as it is not called outside keycode.c

2010-05-18  Reuben Thomas  <rrt@sc3d.org>

	Remove erroneous mention of Lisp file.

	Move default bindings into a Lisp file.

	Remove unused C struct accessor macros.

	Make Binding a Lua table.

2010-05-16  Reuben Thomas  <rrt@sc3d.org>

	Don’t sort keys in bindings, as I have no evidence that Emacs does. Instead, re-order the default bindings so they come out in the same order as Emacs’s.

	Fix a bug in delete_window introduced by earlier modifications.

	Make Binding use accessor methods.

2010-05-15  Reuben Thomas  <rrt@sc3d.org>

	Add some missing fixes for Lua-isation of Macro.

	Improve comments.

	Remove defunct opaque type declaration.

	Make Macro into a Lua table.

	Add and use accessor methods for Macro.

	Make Undo a Lua table.

	Add and use getter and setter methods.

	Move Undo struct definition into undo.h with FIELD macros.

	Break out block struct into individual fields within Undo struct.

	Hide Binding type completely in bind.c.

	Make Region a Lua table.

	Change Point into a Lua table.

2010-05-14  Reuben Thomas  <rrt@sc3d.org>

	Add a comment, and remove unnecessary FLAG_RESYNC (we resynced everything already.

	Fix redraw after kill_buffer.

	Simplify draw_line slightly.

	Make resync_redisplay take the window to resync as a parameter.

	Count .h files as C source, not separate headers.

	Add comment.

	Simplify kill_buffer.

	Improve comment.

	Add a FIXME.

	Improve comment.

	Improve function name.

	Add NEWS and bump version for 2.3.17.

	Fold free_window into its only caller.

	Fix a bug in delete_window that would always delete the current window, not the requested one, and simplify delete-other-windows by making it call delete_window.

	Don't remove other windows when only one buffer, as Emacs doesn't.

	Simplify adjust_markers.

	Reduce free_marker function to alias.

	Use unchain_markers in Lua.

	Fix a test on a Lua field.

	Fix a mistakenly inverted test.

	Add new files, oops.

	Make Buffer into a Lua table.
	Use LUA_REFNIL for defaults, not LUA_NOREF, so that it works for
	reading real values from Lua.

2010-05-13  Reuben Thomas  <rrt@sc3d.org>

	Start translating Marker into Lua.

	Start to implement Line functions in Lua, and make Marker into a Lua table.

	Remove warning about unused arg at the expense of a cast to void.

	Make codetokey table driven, and initialise its table and keytocode’s in term_init, so that curses.initscr has run and the curses key value constants are defined.

	Make Line a Lua table.

2010-05-11  Reuben Thomas  <rrt@sc3d.org>

	Add a missing point_copy.

2010-05-10  Reuben Thomas  <rrt@sc3d.org>

	Merge changes from master.

	Make kill_ring_push take an astr, not a counted char *.

2010-05-09  Reuben Thomas  <rrt@sc3d.org>

	Merge changes from master.

	Merge changes from master.

	Fix an ISO-ism.

	Add news for 2.3.16.

	Fold astr_vafmt into astr_afmt, its only caller.

	Make copy_text_block return an astr rather than a char *, simplifying its code further. It was simplest to make undo.block.text an astr too as a result of this.
	Fold register_free into its only caller.

	Simplify copy_text_block (takes a Point instead of a start line and position, does not need to reallocate buffer while copying), and fix a bad call to astr_new_cstr (potential buffer overread) in copy-to-register that this uncovered.

	Remove underused kill_ring_push and rename kill_ring_push_nstring to kill_ring_push.

	Remove freeing functions which are only called at program shut-down.
	Update some copyright dates, including adding some missing years.

2010-05-08  Reuben Thomas  <rrt@sc3d.org>

	Fold point_min_marker into its only caller.

	Fold term_tidy into its only caller.

	Get rid of unused count_lines and fold point_dist into its only caller.

2010-05-06  Reuben Thomas  <rrt@sc3d.org>

	Make Point opaque.
	Use variable names less likely to clash with field names in GETTER and
	SETTER macros.

2010-05-05  Reuben Thomas  <rrt@sc3d.org>

	Convert Point to being accessed by pointers, so it can be Lua-ised.

	Make Window struct into Lua tables.

2010-05-01  Reuben Thomas  <rrt@sc3d.org>

	Use accessor methods to access Windows, so that a Lua data structure can be substituted for the C one.

	Simplify code slightly.

2010-04-30  Reuben Thomas  <rrt@sc3d.org>

	Translate term_addnstr into Lua as term_addstr.

	Fix some whitespace typos.

	Reimplement show_splash_screen in Lua.

	Use correct method name for wtimeout.

2010-04-29  Reuben Thomas  <rrt@sc3d.org>

	Merge branch 'master' of git.sv.gnu.org:/srv/git/zile into lua
	Conflicts:
		src/extern.h

	Reimplement the rest of term_curses.c in Lua, and fix some bugs in term_curses.lua in the process.

2010-04-28  Reuben Thomas  <rrt@sc3d.org>

	Remove two unused function prototypes.

2010-04-25  Reuben Thomas  <rrt@sc3d.org>

	Merge changes from master.

	Re-add a lost FIXME.

	Merge changes from master.

2010-04-24  Reuben Thomas  <rrt@sc3d.org>

	Simplify handling of C-_, and correct a long-standing bug (turning code into key was back to front).
	Add a missing (cosmetic) space.

	Add getopt.h

	Fix typo in comment.

	Add getopt.h.

2010-04-23  Reuben Thomas  <rrt@sc3d.org>

	Correct fetching of function value in execute_function.

	Update gnulib.

	Change gnulib version to "up to date".

	Use hex constant.

2010-04-21  Reuben Thomas  <rrt@sc3d.org>

	Add 2.3.16 to NEWS to make autotools happy.

	Changes from gnulib update.

	Bump version.

	Add two more files.

	Put variables in more logical order.

	Merge branch 'master' of git.sv.gnu.org:/srv/git/zile

2010-04-10  Reuben Thomas  <rrt@sc3d.org>

	Bump copyright year in ZILE_COPYRIGHT_STRING and main.c.

2010-03-27  Reuben Thomas  <rrt@sc3d.org>

	Fix make from bootstrapped sources by having zile’s object files depend on tbl_funcs.h to force tbl_funcs.h to be made before trying to compile Zile. Thanks to  Rob Vermass for the bug report.

2010-03-26  Reuben Thomas  <rrt@sc3d.org>

	Update gnulib.

2010-03-17  Reuben Thomas  <rrt@sc3d.org>

	Implement codetokey in Lua.
	Move Lua definitions of leNIL and leT to a slightly better place (more
	consistent with main.h).

	Move initialisation of functions_history into history.lua from lisp.c.
	Remove some mistakenly left debugging from lisp.c.

	Store C functions in Lua usercmd table, not C array, and get them thence.
	Small improvement to function_exists: make sure we really set exists
	to a boolean in Lua.

	Remove incorrect copyright year.

	Update copyright year.

	Move some declarations around.

	Fold init_eval into init_lisp.

	Use Lua leNIL and leT in C, and hence get rid of unused leNew.

	More consistent treatment of nil and t in Lisp, plus FIXME to improve further.

	Fold get_function into execute_function.

2010-03-16  Reuben Thomas  <rrt@sc3d.org>

	Convert remaining calls of lisp_loadstring to use Lua version and remove C version.

	Convert remaining calls of lisp_loadfile to use Lua version and remove C version.

	Translate Lisp `load' into Lua and remove C version, along with now-unused countNodes.

	Fix incorrect prompt message for zero-length minibuffer matches.

	Compact some Lua code into one CLUE_DO.

	Fix setting of local variables.

	Fix a printf format argument.

	Change tests of arglist comparing it to zero to use LUA_NIL, now that we no longer (inconsistently) set it to 0.

	Add tbl_funcs.lua

	Move the function table into Lua, except for pointers to C functions, which now, along with the Function type, is private to lisp.c, other uses being replaced by the use of function names (strings) instead of function pointers (Functions).

	Add a FIXME.

	Add a FIXME.

	Add Zile user commands written in Lua, and make setq the first such.

	Fold get_variable_doc into describe-variable, its only caller.

	Remove useless code and add a comment.

	Remove unused defval field of variables.

	Translate more of the variable routines into Lua, fixing some bugs in the process.

2010-03-15  Reuben Thomas  <rrt@sc3d.org>

	Tidy up some small problems with lua.c.

	Rewrite variable access with CLUE.

	Rewrite term_finish in Lua.

	Update copyright year.

	Rewrite term_tidy and term_close in Lua.

2010-03-14  Reuben Thomas  <rrt@sc3d.org>

	Add a FIXME.

	Shorten a variable name.

	Add Lua debugging support.

	Generate filenames without .lua for require

	Load Lua files via a LUA_PATH that works for both installed and non-installed Zile.

	Update copyright year list.

2010-03-12  Reuben Thomas  <rrt@sc3d.org>

	Update lua.m4 to ax_lua.m4.
	Update gnulib.

	Use AC_CHECK_FUNCS_ONCE instead of AC_CHECK_FUNCS, for speed.

2010-03-11  Reuben Thomas  <rrt@sc3d.org>

	Generate list of Lua files to load, as per FIXME in main.c
	Move tbl_vars.h from zile_BASE_SOURCES to zile_SOURCES, as it’s
	generated.

2010-03-10  Reuben Thomas  <rrt@sc3d.org>

	Merge 2.3.15 changes from master.

2010-03-02  Reuben Thomas  <rrt@sc3d.org>

	Bump version to 2.3.15.

	Update NEWS for 2.3.15.

	Set FLAG_UNIARG_EMPTY on starting execute-extended-command.

	Default uniarg with C-u was 16; fix so it's 4 as it should be.

	Use gnulib xlist module and update gnulib (thanks to Giuseppe Scrivano).

	Respect GNULIB_SRCDIR (patch from Giuseppe Scrivano).

2009-12-03  Reuben Thomas  <rrt@sc3d.org>

	Merge branch 'master' of rrt@git.sv.gnu.org:/srv/git/zile into lua
	Conflicts:
		configure.ac
		src/file.c

	Bump version to 2.3.14 and write NEWS for release.

	Fix string comparison in compact_path to actually find the entire home directory, not just an arbitrary prefix. Thanks to Mikel Ward for the bug report.

2009-10-29  Reuben Thomas  <rrt@sc3d.org>

	Avoid a warning.

	Apply changes from master.

2009-10-28  Reuben Thomas  <rrt@sc3d.org>

	Fix flag passed to command to indicate uniarg is set.

	Fix incorrect setting of flag indicating blank characters to end of line.

2009-10-20  Reuben Thomas  <rrt@sc3d.org>

	Don't add KBD_NOKEY to key sequences.

	Don't treat non-8-bit key codes as chars.

	Fix casts for various arches. Thanks to Christian Weisgerber.

2009-10-06  Reuben Thomas  <rrt@sc3d.org>

	Remove FIXME.

	Update NEWS with more 2.3.13 fixes.

	Fix a memory leak found by valgrind.

	Add extra argument to Lisp function type Function so that we can explicitly signal if there’s a uniarg, so we can accurately work out whether or not any sort of argument was supplied.

	Fix punctuation in comment.

	Improve minibuffer display of negative uniargs.

	Squash some space leaks found by Valgrind.

	Sort out kill-line mess.

2009-10-05  Reuben Thomas  <rrt@sc3d.org>

	Merge branch 'master' of git://git.sv.gnu.org/zile into lua

	Switch old mp_with_curses.m4 to new ax_with_curses.m4.

	Remove obsolete file.

	Fix incorrect setting of mp_cv_curses=yes even when curses is not found.

2009-10-04  Reuben Thomas  <rrt@sc3d.org>

	Merge changes from master.

2009-10-03  Reuben Thomas  <rrt@sc3d.org>

	Update NEWS for 2.3.13.

	Update gnulib; use getopt-gnu instead of obsolete getopt.

	Bump version to 2.3.13

	Factor out tests for whether the top and bottom of a window is visible into functions, and use them both to display the “Top”, “Bot” and “All” indicators, and to fix scroll_up and scroll_down (thanks to Nelson Beebe for pointing out the bug).

2009-09-19  Reuben Thomas  <rrt@sc3d.org>

	Write NEWS for 2.3.12.

	Ensure line is always initialised.

	Merge changes from master.

	Bump version to 2.3.12.

	Fix +LINE.

2009-09-13  Reuben Thomas  <rrt@sc3d.org>

	Turn on more error checking by automake.

	Add missing file to EXTRA_DIST.

2009-09-09  Reuben Thomas  <rrt@sc3d.org>

	Implement term_attrset, term_set_size, term_width and term_height in Lua.

	Reimplement term_addch in Lua; need LuaBitOp for this!

	Remove erroneous change.

	Update gnulib

	Generalise name of Lua libraries flag variables.

	Make comment more precise.

	Add a FIXME.

2009-09-08  Reuben Thomas  <rrt@sc3d.org>

	Start reimplementing term_curses.c in Lua, using lcurses.c by Tiago Dionizio from lua-cui (http://sf.net/projects/lua-cui/).

	Set cp.matchsize, so completion display works again\!

	Improve a comment.

	Remove redundant includes.

	Remove last Completion setter.

2009-09-08  Reuben Thomas  <rrt@sc3d.org>

	Call Lua completion_try directly; remove C wrapper.
	Remove Completion type alias for int.

	Remove FIELD_STR macro calls from main.h’s section for completion.c,
	and public definitions of setters (only one used, and that’s in
	completion.c).

2009-09-08  Reuben Thomas  <rrt@sc3d.org>

	Move completion_scroll_{up,down} to window.c as they have nothing to do with completion structures.

	Remove unused FIELD_STR macro definition.

	Update std.lua to release 12 of stdlib.

2009-09-07  Reuben Thomas  <rrt@sc3d.org>

	Reimplement histories in Lua, using code from Zee.

2009-09-06  Reuben Thomas  <rrt@sc3d.org>

	Remove completion_new from completion.c, using Lua version directly.

2009-09-04  Reuben Thomas  <rrt@sc3d.org>

	Simplify completion_new.

	Group sources better and make different loc targets for production sources (loc), test sources (loc-tests) and all sources (loc-all), as we’re principally interested in the first.

	Rewrite completion_try in Lua.

	Add a FIXME.

	Small simplification.

	Merge branch 'master' of git://git.sv.gnu.org/zile into lua

	Popups should be marked unmodified.

2009-09-03  Reuben Thomas  <rrt@sc3d.org>

	Remove commented-out debug code.

	Merge changes from master.

	Don't cast pointers to bool; thanks Nelson Beebe.

2009-09-01  Reuben Thomas  <rrt@sc3d.org>

	Convert flag word into individual flags that are easier to work with in Lua.

2009-08-31  Reuben Thomas  <rrt@sc3d.org>

	Implement expand_path in terms of Lua normalize_path.

	Don't count std.lua in sources any more, since it's pristine from stdlib project.

	Use mk1file version of std.lua because trying to pick out just the functions we need is error-prone and time-consuming.

2009-08-31  Reuben Thomas  <rrt@sc3d.org>

	Implement compact_path in Lua, and write (but do not use) expand_path in Lua (but called normalize_path).
	To help with this, add file.lua and std.lua with some useful routines,
	and use lua-posix to provide basename and dirname (and we'll use it
	for other POSIX functions later).

	Split LUA_RUNTIME into LUA_RUNTIME and LUA_BUILDTIME, and rename old
	LUA_BUILDTIME to LUA_BUILDSCRIPTS.

2009-08-31  Reuben Thomas  <rrt@sc3d.org>

	Simplify some code.

	Remove some debugging.

2009-08-25  Reuben Thomas  <rrt@sc3d.org>

	Fix comment to reflect reality.

	Merge changes from trunk and fix some compiler warnings.

	Update for 2.3.11

	Push universal_argument's argument into the function, and since it is no longer called except by universal-argument, push it into the DEFUN.
	Simplify process_command too as a result.

2009-08-25  Reuben Thomas  <rrt@sc3d.org>

	Overhaul keyboard input so that all keys are read in process_command rather than the first key being passed in to old process_key, and separate out looking up the command from getting the keys for it.
	All this to make describe-key display the key binding properly!

	Incidentally, fix a couple of FIXMEs.

2009-08-25  Reuben Thomas  <rrt@sc3d.org>

	Fix typo from last commit.

	Fix some problems with killing the sole window. Thanks to the ever-persistent Rugxulo.

2009-08-24  Reuben Thomas  <rrt@sc3d.org>

	Expand comment.

	Improve comment cosmetically.

	Improve comment cosmetically.

2009-08-23  Reuben Thomas  <rrt@sc3d.org>

	Bump version to 2.3.11.

	Remove completed FIXME.

	Merge branch 'master' of git://git.sv.gnu.org/zile into lua

	Remove spurious newline.

	Prevent number of replacements being written out along with result of string.gsub.
	Correct comment at top of file: we are generating tbl_funcs.h, not
	tbl_funcs.lua.

2009-08-20  Reuben Thomas  <rrt@sc3d.org>

	Fix minibuf_test_in_completions.

2009-08-19  Reuben Thomas  <rrt@sc3d.org>

	Make Completion.completions a Lua table.

	Make Completion.matches a Lua table.

	Merge branch 'master' of git://git.sv.gnu.org/zile into lua

	Fix scrolling of completions after recent changes in scrolling.

	Remove dead code.

	Make non-API functions local.
	Remove Zee-specific functions.

	Merge branch 'lua' of git://git.sv.gnu.org/zile into lua
	Conflicts:
		src/main.h

	Change Completion to a Lua table.

	Add back implementation of LUA_SETTER accidentally reverted by previous commit.

	Merge branch 'master' of git://git.sv.gnu.org/zile into lua

	Define LUA_SETTER (special case LUA_STR_SETTER not needed).

	Reformat comments.

	Split up sources for Zile into those that contain function docs and those that don't, so we can have a non-circular dependency for extern.h.
	Add clue.h (previously unmentioned, oops).

	Merge branch 'master' of rrt@git.sv.gnu.org:/srv/git/zile

	Merge branch 'lua' of git://git.sv.gnu.org/zile into lua

2009-08-18  Reuben Thomas  <rrt@sc3d.org>

	Fix exit status of run-lisp-tests to return sum of fails rather than (owing to previous changes) always 0. Thanks to Ulrich Mueller for reporting this bug.

	Remove redundant code as per FIXME.

2009-08-17  Reuben Thomas  <rrt@sc3d.org>

	Move functions that act on Competion internals into completion.c.

	Remove unnecessary include.

	Generalise Lua getters and setters.

2009-08-16  Reuben Thomas  <rrt@sc3d.org>

	Remove a line of code as per FIXME.

	Remove defunct FIXME.

2009-08-13  Reuben Thomas  <rrt@sc3d.org>

	Remove obsolete FIXME.

	Merge branch 'master' of rrt@git.sv.gnu.org:/srv/git/zile into lua

	Swap m4 file to match usage.

	Merge branch 'master' of rrt@git.sv.gnu.org:/srv/git/zile into lua

	Add a missing &&.

2009-08-12  Reuben Thomas  <rrt@sc3d.org>

	Merge branch 'master' of rrt@git.sv.gnu.org:/srv/git/zile into lua

	Change indent-tabs-mode's default value to t to match Emacs.

	Small simplification.

	Make arguments start and end STRs so they can be safely ignored whatever form they take.

	When calling Lisp commands from C with argument, pass second argument as LUA_NOREF, not something else.

	Merge branch 'master' of git://git.sv.gnu.org/zile into lua

	Fix interpretation of kill-whole-line.

2009-08-11  Reuben Thomas  <rrt@sc3d.org>

	Remove UTF-8 characters and note work on portability to DOS.

	Merge changes from HEAD.

	Merge changes from HEAD.

	Make sure a non-interactive arg always counts as a uniarg.

	Use goto-line with non-interactive arg.

	Make goto-line take a non-interactive arg.

2009-08-10  Reuben Thomas  <rrt@sc3d.org>

	Merge changes from HEAD.

	Push change from HEAD.

	Push change from HEAD.

	Add LISP_TESTS_ZILE_ONLY to EXTRA_DIST.

	Fix reference to zile_test.input to refer to test.input.

	Add NEWS for 2.3.10.

	Fix describe-bindings test to work in Emacs.

	Fix describe-function to work as in Emacs.

	Fix describe-key to work as in Emacs.
	Remove an unnecessary #include of ctype.h from help.c.

	Change help buffer names all to "*Help*" as in Emacs.

	Fix describe-variable test for Emacs.

2009-08-08  Reuben Thomas  <rrt@sc3d.org>

	Deactivate scroll-up and scroll-down tests, as I don't know how to make them work in general any more.
	Revert call-last-kbd-macro test to earlier version that works.

	Fix typo in list-buffers test.

2009-08-08  Reuben Thomas  <rrt@sc3d.org>

	Make tests that can't easily be made to work in Emacs run in Zile only.
	Make some still-failing tests run without Lisp errors in Emacs.

	Fix copy-region-as-kill test to work in Emacs.

2009-08-08  Reuben Thomas  <rrt@sc3d.org>

	Fix register commands to work with registers being given as numbers not text.

2009-08-07  Reuben Thomas  <rrt@sc3d.org>

	Fix a couple of typos.

2009-08-04  Reuben Thomas  <rrt@sc3d.org>

	Make more user commands more Emacs-compatible to fix tests.

	Revise lots of tests to make them work with Emacs, and remove some from testing for now, as they can't easily be made to.

	We are really in Fundamental mode, not Text mode.

	Revise register commands to work more like Emacs.

	Change scratch buffer message to match Emacs.

	Add \r to the list of key names to kludge it working in execute-kbd-macro.

	Change conditions under which scroll-{up,down} return an error, to match Emacs.

	Bump minimum version of Emacs to 23.1 now that 23 is released.

2009-08-02  Reuben Thomas  <rrt@sc3d.org>

	Cope with malformed arguments.

	Count Lisp code in loc target.

	Add argument to case-changing functions, to be consistent with Emacs.
	Simplify universal-argument slightly.

	Change call_keys to process_keys, which calls process_key repeatedly until all the keys supplied have been processed, so that macros are now executed in the right order relative to Lisp code.

	Add term_buf_len, which returns the number of characters currently in the buffer.

	Move an initialisation after a declaration to make code correctly ANSI.
	Add a FIXME.

	Push most of main loop function loop() into process_key, and expand the rest into main(), so that process_key can meaningfully be called from elsewhere.

	Add a FIXME.

	Rename zile_test.input to test.input as we're running with Emacs too!
	Count and report Emacs and Zile passes and fails separately, so it's
	easier to read the results.

	Use LISP_TESTS rather than a wild card to run tests, for consistency.

	The last edit to this was incorrect as (delete-char 4) only records one undo step; need to expand it out to four calls, as it used to be.

	Don't enforce ANSI, as that messes up gnulib compilation (forcing a compiler to be ANSI when gnulib has worked out that it supports extensions).

2009-08-01  Reuben Thomas  <rrt@sc3d.org>

	Remove a declaration in the middle of code.

	Use AX_CFLAGS_WARN_ALL_ANSI (closes FIXME).

	Clarify FIXME.

2009-07-31  Reuben Thomas  <rrt@sc3d.org>

	Run Emacs with --batch rather than --no-window-system, as the latter complains about stdin not being a tty.

	Run Emacs with --no-window-system to make it work when building on a server and also so as not to annoy the developer by popping up windows all the time.

2009-07-24  Reuben Thomas  <rrt@sc3d.org>

	Make root_bindings static to bind.c; need to change process_key not to take a BInding and make free_bindings static while adding a new public free_default_bindings.

2009-07-23  Reuben Thomas  <rrt@sc3d.org>

	Fix a typo.

2009-07-23  Reuben Thomas  <rrt@sc3d.org>

	Start making tests Emacs-compatible.
	run-lisp-tests: fix assignment of args so it is always made; copy
	input file for both tests, not just the first.

	Add macros for arguments that can be either non-interactively supplied
	in Lisp or interactively supplied by universal argument, and start
	using it with those commands that should take an argument
	non-interactively.

	Start making tests work on Emacs.

2009-07-23  Reuben Thomas  <rrt@sc3d.org>

	Fix --without-foo.

	Factor command-line arguments for tested program (Zile or Emacs) into a variable.

2009-07-22  Reuben Thomas  <rrt@sc3d.org>

	Use AX_WITH_PROG for better and shorter tests for programs.

	Have automake do the check that we've written release notes, by using the check-news option to AM_INIT_AUTOMAKE.

	Run tests in Emacs too.

	Add ax_compare_version.m4 for Emacs version check.

2009-07-22  Reuben Thomas  <rrt@sc3d.org>

	Add configure check for recent Emacs.
	Add some FIXMEs to configure.ac.

	Use AC_ARG_VAR to make program name variables precious.

	Improve help string for CONFIGURE_HOST.

2009-07-22  Reuben Thomas  <rrt@sc3d.org>

	Add Anthony Williams.

	Fix a double free and a memory leak.

	Stop get_goalc_bp from overrunning line.

2009-07-21  Reuben Thomas  <rrt@sc3d.org>

	Add a note about using non-standard curses.

	Update mp_with_curses to allow CURSES_LIB to be set on the command-line.

	Simplify function and loadfile handling, and fix a FIXME.

	Make command-line argument handling work in order, like Emacs.

2009-07-20  Reuben Thomas  <rrt@sc3d.org>

	Rename zile->emacs

	Smarten a comment.

	Rename commands containing -zile to -emacs, so that Emacs can run the tests.

	Merge changes from head.

	Add some FIXMEs.

	Change kill-line test's output, to be like Emacs's.

	Add this_command, to be more like Emacs.

	Use kill-region as token for kill commands, as in Emacs.

	Remove FLAG_DONE_KILL and use last_command instead, with special pseudo-command KILL_COMMAND; add set_last_command to make this possible. This is closer to Emacs's implementation.

2009-07-19  Reuben Thomas  <rrt@sc3d.org>

	Simplify term_attrset.

	Font codes no longer need to fit in an int or have room for a char underneath.

	Make goal column per-buffer.

	Simplify goto-line.

	Factor guts of forward_char and backward_char into move_char.

	Fold ngotodown and ngotoup into move_line.

2009-07-18  Reuben Thomas  <rrt@sc3d.org>

	Simplify goto-line.

	Simplify ngotoup and ngotodown.

	Make ngotoup and ngotodown static.

	Simplify ngotoup and ngotodown.

	Remove pointless identity conversions from bool to bool.

	Reimplement previous-line and next-line with execute_with_uniarg.

	Simplify move_line.

	Factor previous_line and next_line into move_line.

	Reimplement goal column tracking by previous-line and next-line using last_command (), as it is both simpler and the way that Emacs does it.

2009-07-18  Reuben Thomas  <rrt@sc3d.org>

	Add support for non-interactive arg to kill-line.
	Fix a missing initialisation in kill_to_bol.

	Add a test for kill-line with arg. Unfortunately, this uncovers
	problems with goal column support when used non-interactively.

2009-07-18  Reuben Thomas  <rrt@sc3d.org>

	Merge branch 'master' of rrt@git.sv.gnu.org:/srv/git/zile

	Fix up clean files to avoid needing Lua or help2man after make clean.

	Remove duplicate settings of FLAG_CPCN.

2009-07-17  Reuben Thomas  <rrt@sc3d.org>

	ungetting needs to work at the character, not the key level (d’oh, we’ve been here before). Hence, push the new ungetting machinery down into term_curses.c.

2009-07-16  Reuben Thomas  <rrt@sc3d.org>

	Only need to check $mp_cv_curses with latest mp_with_curses.m4.

	Add Piotr Wieczorek’s email address.

	Add Piotr Wieczorek, and make RMS’s entry less overblown.

	We cannot rely on ungetch to support more than one character of pushback (thanks Piotr Wieczorek), so reinstate old method of dealing with ungetkey inside getkey.c, only this time use gl_list_t to make it able to cope with arbitrary pushed-back keystrokes.

	assert hash_insert, i.e. abort if insert fails.

	Add first cut of completion.lua.

	Sort out some confusion from trunk merge in previous commit.

	Merge changes from master.

	Pull popup_completion calls out of completion_try to make it easier to rewrite the latter in Lua.
	Simplify completion_try and write_completion.

	Ignores added by gnulib update.

	Convert some return types back to int that were erroneously made bool.

2009-07-16  Reuben Thomas  <rrt@sc3d.org>

	Make kill-line work with non-positive universal args, fix undo to operate in one step, and add documentation for `kill-whole-line'.
	Make more functions return bool instead of int for a flag.

	Make ESC - work to introduce a negative universal arg.

	Fix delete_region to work for arbitrary regions.

	Fix find-alternate-file for buffers without a file name: the path
	should be suffixed by "/".

2009-07-16  Reuben Thomas  <rrt@sc3d.org>

	Remove maintainer files from CLEANFILES.

	Bump version to 2.3.10.

	Merge branch 'master' of rrt@git.sv.gnu.org:/srv/git/zile

	Use dir_name instead of dirname to avoid problems with libgen.h on some platforms, and greater portability all round.

	Update to latest autoconf-archive version.

2009-07-11  Reuben Thomas  <rrt@sc3d.org>

	Use gnulib's dir_name so we don't need libgen.h.

2009-07-10  Reuben Thomas  <rrt@sc3d.org>

	Update copyright year.

	Merge branch 'master' of git://git.sv.gnu.org/zile into lua

	Implement the Lisp interpreter in Lua.

	After git pushing for a release, pull to be up-to-date.

	Add Lua to maintainer dependencies, and move help2man from build deps to maintainer deps.

2009-07-09  Reuben Thomas  <rrt@sc3d.org>

	Update from autoconf-archive.

2009-07-08  Reuben Thomas  <rrt@sc3d.org>

	Merge branch 'lua' of rrt@git.sv.gnu.org:/srv/git/zile into lua

	Merge changes from master.

2009-07-07  Reuben Thomas  <rrt@sc3d.org>

	Update copyright year.

	Bump version to 2.3.9 and write NEWS entry.

	Rename kill to kill_text to avoid clash with the system function of the same name. Thanks to Nelson Beebe.

2009-07-05  Reuben Thomas  <rrt@sc3d.org>

	Update RMS’s email address.

	Add NEWS and bump version for 2.3.8.

	Fix crash in find-file-alternate for buffers with no filename (thanks Ulrich Mueller).
	Also fix a possible crash in agetcwd.

	Fix a quote

2009-04-25  Reuben Thomas  <rrt@sc3d.org>

	Make Lisp lists type le a pointer type, rather than using “le *” so it can more easily be changed to a non-pointer type.

2009-04-24  Reuben Thomas  <rrt@sc3d.org>

	Remove unnecessary include.

	Remove leDup, which isn't needed for Lua reimplementation.

	Remove unused le accessors and prototypes.

	Remove le * destructors, which won’t be needed when we reimplement lists in Lua.

	Don't change permissions on zile.1 when creating it.

	Add getters and setters for struct le.

2009-04-24  Reuben Thomas  <rrt@sc3d.org>

	Merge branch 'master' of rrt@git.sv.gnu.org:/srv/git/zile into lua
	Conflicts:
		configure.ac
		lib/.gitignore

	Conflicts:
		configure.ac
		lib/.gitignore

2009-04-24  Reuben Thomas  <rrt@sc3d.org>

	Remove unneeded lisp_free for simplicity.

	Fix tbl_funcs.h dependencies.

	Merge changes from master.

2009-04-22  Reuben Thomas  <rrt@sc3d.org>

	Mention highlighting bug fix in NEWS for 2.3.7.

	Remove defunct swap_point’s prototype.

	Simplify count_lines considerably and since swap_point is now only called once fold it into its call site. It’s not a very good function anyway.

	Fix calculate_highlight_region (bug introduced in 2.3.5).
	Rename draw_end_of_line’s Region * argument to “rp” for consistency.

2009-04-17  Reuben Thomas  <rrt@sc3d.org>

	Simplify term_attrset to take one argument only, as all its calls pass exactly one argument.

2009-04-16  Reuben Thomas  <rrt@sc3d.org>

	Remove spurious calls to update terminal.

	Make query-replace count of replacements a size_t.

	Fix space leak on C-g in query-replace.

	Simplify query-replace, removing gotos and loop exit flag.

	Add notes for 2.3.7.

	Bump version to 2.3.7.

	line_replace_text doesn’t need to update the Line * it is passed, so pass a Line *, not a Line **.
	This change then applies also to edit_tab_line.

	Don't update point needlessly and wrongly after replace.

2009-04-14  Reuben Thomas  <rrt@sc3d.org>

	Don't fail if help2man not found.

	Add two files added by gnulib.

2009-04-08  Reuben Thomas  <rrt@sc3d.org>

	Merge changes from head.

	Add news for 2.3.6.

	Distribute tbl_vars.h & mkvars.stamp so that we don't need Lua for building releases.
	Bump version to 2.3.6.

	Fix a typo.

2009-04-07  Reuben Thomas  <rrt@sc3d.org>

	Merge rrt@git.sv.gnu.org:/srv/git/zile into lua

	Add tbl_vars.h and mkvars.stamp to CLEANFILES.

	Merge rrt@git.sv.gnu.org:/srv/git/zile into lua

	Fix space leak.

	Merge rrt@git.sv.gnu.org:/srv/git/zile into lua

	Distribute tbl_vars.h.in.

	Update 2.3.5's release notes.

	Merge rrt@git.sv.gnu.org:/srv/git/zile into lua

	Reinit scratch buffer after load files loaded.

	Merge rrt@git.sv.gnu.org:/srv/git/zile into lua

	Add a missing cast.
	Load files after opening files on command line, so that tests work
	again. Oops.

	Merge rrt@git.sv.gnu.org:/srv/git/zile into lua

	Reintroduce --funcall for backwards compatibility with Zile 2.2.

	Merge rrt@git.sv.gnu.org:/srv/git/zile into lua

	Make --load files affect default settings.

	Merge rrt@git.sv.gnu.org:/srv/git/zile into lua

	Revert mistaken change to use /bin/bash.

	Commit fixes from HEAD.

	Process tbl_vars.h with mkvars.lua, to process formatting directives.

	Fix formatting in auto-fill-mode's help (from master).

2009-04-06  Reuben Thomas  <rrt@sc3d.org>

	Fix formatting in fill-column's help.

	Fix describe-variable.

	Fix describe-variable (from master).

	Fix fill_break_line not taking its call of delete-horizontal-space into account when calculating where to put point afterwards; use a Marker, as we should have done all along.
	Fixes Debian bug #522836.

	Fix to break_line from master.

	Fix syntax error in for loop.

	Fix problem with compilation due to bad #define on some systems.

	Add a FIXME and improve another.

	Fix short options processing.

	Fix short option processing.

	Update changes from autoconf-archive.

	Remove unused include.

	Fix a comment typo.

	Fix a comment typo.

2009-04-04  Reuben Thomas  <rrt@sc3d.org>

	Remove defunct file.

	Remove defunct file.

	Add dependencies needed for building from git.

	Merge branch 'lua' of rrt@git.sv.gnu.org:/srv/git/zile into lua

	Revert earlier mess, where we reverted a commit on both the master and lua branches that should only have been reverted on the lua branch.
	Also commit Lisp lexer in Lua.

	Convert Lisp lexer into Lua.

2009-04-03  Reuben Thomas  <rrt@sc3d.org>

	Revert "Merge branch 'lua' of rrt@git.sv.gnu.org:/srv/git/zile"
	This reverts commit fab016cbd19c8293c8eb111460d799afa32c9301.

	Merge branch 'lua' of rrt@git.sv.gnu.org:/srv/git/zile

	Merge rrt@git.sv.gnu.org:/srv/git/zile into lua

	Fix checks for ncurses after --with-ncurses.

	Changes from adding maintainer-makefile module.

2009-04-02  Reuben Thomas  <rrt@sc3d.org>

	Remove some files we no longer have.

	Update gnulib, removing the hash module, which is no longer used.

	Merge changes from HEAD.

	When a buffer is saved, clear its nosave flag, so that it is covered by future calls to save_some_buffers.
	When a buffer is written, clear rather than invert its modified flag.
	Having saved, it's always unmodified! This fixes a bug when a scratch
	buffer was saved.

	Don't append buffer name to path when needname is true.

	Add zile.1.in to EXTRA_DIST. Double d'oh.

	Add man-extras to EXTRA_DIST. D'oh.

	Fix another incorrect path to man-extras.

	Remove non-existent man-extras.in from EXTRA_DIST.

	Remove over-general pattern.

	Restore dependency of zile.1 on Makefile.

2009-04-02  Reuben Thomas  <rrt@sc3d.org>

	Remove man-extras from CLEANFILES, as it's no longer generated.
	Correct dependency on man-extras from $(builddir)/man-extras to just
	man-extras.

	Remove some spurious "$(srcdir)/" prefixes in dependencies.

2009-04-02  Reuben Thomas  <rrt@sc3d.org>

	Process zile.1 rather than man-extras to expand paths, thus allowing help2man to become a maintainer tool rather than a build dependency.

	Now that man-extras isn't processed (rather, zile.1 is), no need to call the "original" file man-extras.in.

	Fix text not being added to man page.

	Expand relative filenames.
	Make agetcwd extern, as it's now needed in funcs.c.

	Make make_buffer_name static, and tidy it slightly.

	Clarify a comment.

	Reduce calls to accessors, shortening code.

	Simplify the Buffer API, especially the functions for setting the name and filename.
	Fix a space leak in set_variable_in_list.

	Fix a space leak.

2009-04-01  Reuben Thomas  <rrt@sc3d.org>

	Simplify is_regular_file: return false if file does not exist.
	Check whether file exists before calling is_regular_file.

	Remove pointless call to waitkey.

	Merge branch 'master' into lua

2009-03-31  Reuben Thomas  <rrt@sc3d.org>

	Remove -std=c89 flag from CFLAGS, as this causes build failures on some systems.

	Remove CFLAGS -std=c89 for gcc, as that causes builds to fail on some systems.

	Merge branch 'master' of rrt@git.sv.gnu.org:/srv/git/zile

2009-03-30  Reuben Thomas  <rrt@sc3d.org>

	Fix set_variable for setting non-existent variable.

	Remove debugging include.

2009-03-30  Reuben Thomas  <rrt@sc3d.org>

	Use a global table, "main_vars" for the main vars list rather than an anonymous reference, for easier future use from Lua.
	Fix a typo in the splash screen (copied from stable branch).

	Call abort() on Lua panic so we get a core dump.

	Remove free_variables, as there's no point clearing up after Lua's
	allocator.

2009-03-30  Reuben Thomas  <rrt@sc3d.org>

	Start a new version series for Lua Zile.
