2015-06-01  David Lutterkort  <lutter@watzmann.net>

	Version 1.4.0

	* src/augeas_sym.version: correct version for aug_escape_name
	The (unreleased) version for aug_escape_name was erroneously set to 0.19.0
	in commit 1aa51f93; the correct version for the next release is 0.20.0

	Httpd: add test to verify that issue #140 is fixed
	Issue: https://github.com/hercules-team/augeas/issues/140

2015-06-01  David Lutterkort  <lutter@watzmann.net>

	Fix SEGV when target file is not writable
	When the file we want to wirte to is not writable by us, we used to
	segfault. With this change, we now report a proper error.

	Fixes https://github.com/hercules-team/augeas/issues/178

2015-06-01  David Lutterkort  <lutter@watzmann.net>

	Add the default ssl.conf from CentOS 6.6
	This shows that Issue #191 is fixed

2015-06-01  Matt Dainty  <matt@bodgit-n-scarper.com>

	Passwd: fix @nisdefault on OpenBSD
	Following passwd(5) on OpenBSD results in an /etc/passwd NIS entry like:

	    +:*:0:0:::

	Passwd lens barfs on the '*' password. Change to match how normal entries are
	matched.

2015-06-01  Borislav Stoichkov  <borislav.stoichkov@gmail.com>

	Passwd: support nis [+-]username syntax
	The /etc/passwd file can contain nis users with the syntax [+-]username for
	the pruprose of including or excluding specific accounts.

	Importing of particular users' accounts can be restricted by using the
	prefix "+" with a username.

	    root:x:0:0:root user:/home/root:/bin/bash
	    +bob::::::
	    +alice::::Alice:/home/alice:/bin/bash

	Certain users' accounts can be excluded from being imported by using the
	"-" prefix with a username.

	    root:x:0:0:root user:/home/root:/bin/bash
	    -bob::::::
	    +

	The string that can comprise a valid username has been updated to cover a
	range slightly larger that the definitions in POSIX
	(http://pubs.opengroup.org/onlinepubs/9699919799/ , section 3.431),
	is_valid_name() in chkname.c in shadow-utils and the NAME_REGEX definition
	in distributions where defined. Rx.word was too broad and did not allow for
	the -username syntax.

2015-05-27  Michael Moll  <kvedulv@kvedulv.de>

	integrate two patches from FreeBSD ports
	- /boot/loader.conf can be parsed with the sysctl lens
	- /etc/perodic.conf can be parsed with the shellvars lens

2015-05-22  David Lutterkort  <lutter@watzmann.net>

	Grub: support a password stanza inside a boot/title section
	The biggest change in this commit is changing the structure of lns: it now
	says that boot sections have to come after the general menu_setting and
	debian sections. Since 'password' is legal in both a top-level menu_setting
	and in a boot section, that is necessary to keep the lens unambiguous.

	Fixes https://github.com/hercules-team/augeas/issues/229

2015-05-22  Borislav Stoichkov  <borislav.stoichkov@gmail.com>

	Shadow: allow NIS entries
	Add support for the NIS default entry + and the nis default entry with
	overrides +::::::::

	Based on https://github.com/hercules-team/augeas/pull/237

2015-05-22  Geoffrey Gardella  <gardella@gmail.com>

	Updated tests/test-put-symlink-augsave.sh to remedy failure on Solaris
	Due to output from 'sum' command containing the filename.

	Fixes #242

2015-05-21  David Lutterkort  <lutter@watzmann.net>

	Nginx: change how we handle indentation of lines
	Before this change, any change to the file would drop all indentation from
	it. Now, we preserve existing indentation. Newly inserted lines don't get
	the indentation of their block, but at least we preserve it for existing lines

2015-05-20  David Lutterkort  <lutter@watzmann.net>

	* NEWS: add note about errors command and better error messages
	Should have been part of the last 4 commits, but I fat-fingered the push.

	Suppress repeated errors about not finding a module
	We used to print 'Could not load module XYZ' every time that module wsa
	mentioned. To cut down the number of annoying error messages, we now create
	an empty dummy module when we fail to look one up; subsequent lookups will
	find that and therefore not print the error message again.

2015-05-20  David Lutterkort  <lutter@watzmann.net>

	* src/lens.c (lns_format_atype): make output more readable
	Try to make the output more readable by using better formatting:
	  - each entry in a concatenation and a union now goes on its own line
	  - indent formatted entries

	This is not perfect, but much better than splatting everything into one line

2015-05-20  David Lutterkort  <lutter@watzmann.net>

	Add an 'errors' command that pretty prints /augeas//error messages

2015-05-20  David Lutterkort  <lutter@watzmann.net>

	Analyze 'short iteration' errors better
	When an iteration fell short, we would just throw our hands in the air and
	produce not very helpful information. We now try to find the exact place
	where some part of the iterated lens still matched and the rest didn't and
	provide that information to the user.

	Note that these errors will only be produced for regular lenses, not for
	recursive lenses

2015-05-20  David Lutterkort  <lutter@watzmann.net>

	* src/get.c (vget_error): replace unchecked CALLOC with checked ALLOC
	One more place where a failing allocation won't cause a crash

2015-05-20  David Lutterkort  <lutter@watzmann.net>

	Nginx: rework to support a much broader set of valid configurations
	The Nginx.lns is now recursive and can handle nested blocks.

	It can now also deal with some special block-start directives like
	'location' and 'if' which have additonal stuff between the keyword and the
	opening brace.

	The file tests/root/etc/nginx/nginx.conf if the stock Nginx configuration
	example from their siurce control, with everything that was commented out
	activated. Having that file makes sure (via tests/test-get.sh) that we
	successfully parse that file.

	Fixes https://github.com/hercules-team/augeas/issues/179

2015-05-20  David Lutterkort  <lutter@watzmann.net>

	Test_Nginx: no functional change, reformatted

2015-05-20  Raphaël Pinson  <raphael.pinson@camptocamp.com>

	Shellvars: more associate array syntax

	Shellvars: support associative arrays

	Known_Hosts: support aliases

2015-05-15  Michael Smith  <michael.smith@puppetlabs.com>

	Add /etc/puppetlabs/mcollective to mcollective lens
	In the latest release of Puppet, the mcollective paths have been updated
	to reflect the documentation at
	https://github.com/puppetlabs/puppet-specifications/blob/master/file_paths.md

	This commit adds server.cfg and client.cfg in
	/etc/puppetlabs/mcollective to the mcollective filter.

2015-04-29  Raphaël Pinson  <raphael.pinson@camptocamp.com>

	Puppetfile: Use seq instead of a fixed label

2015-04-20  Haotian Liu  <liuhaotian.air@gmail.com>

	Postgresql: add default paths used on Red Hat-based distros
	As of Postgres 9.4, postgresql.conf is stored in the database cluster's
	data directory

	See:
	http://www.postgresql.org/docs/9.4/static/runtime-config-file-locations.html

2015-04-20  timdeluxe  <tim.eilers@web.de>

	Limits: allow comments at end of line
	Here is my proposal for changing limits.aug lens to allow comments at the end of the line, which are no problem for the OS and heavily used in the limits.conf on our systems. Without that change you get a parse error.

2015-04-20  Steve Shipway  <steve@steveshipway.org>

	Jaas: add several improvements to cover more valid syntax
	Add flexibility to Jaas lens: allow comments within Modules, optionless
	flags, options without intervening linebreaks, and true/false option
	values without quotes.  All of these are valid syntax in the Shibboleth
	file.

2015-04-20  David Lutterkort  <lutter@watzmann.net>

	* src/get.c: fix possible NULL dereference
	Reported in https://github.com/hercules-team/augeas/issues/218 by ggardella

	* src/fa.c: fix a number of possible NULL dereferences
	Reported in https://github.com/hercules-team/augeas/issues/218 by ggardella

	* src/augtool.c: fix minor memory leak

2015-04-20  Dominic Cleal  <dcleal@redhat.com>

	Logrotate: support 'maxsize' directive
	Fixes RHBZ#1213292

2015-04-10  Jurjen Bokma  <j.bokma@rug.nl>

	Krb5: add keyword 'krb524_server'

	Krb5: allow realm names that start with lower case characters

2015-04-10  David Lutterkort  <lutter@watzmann.net>

	* src/parser.y: update to work with Bison 3.0.2

2015-04-09  Raphaël Pinson  <raphael.pinson@camptocamp.com>

	Httpd: Properly manage eol after opening tag
	Allow comments and empty lines after opening tag.

	Fix #220

2015-04-09  Raphaël Pinson  <raphael.pinson@camptocamp.com>

	Httpd: Make \ illegal in char_arg_dir
	Add tests to check non-recursive behaviour
	of partial lenses

	Fix #223

2015-04-09  Raphaël Pinson  <raphael.pinson@camptocamp.com>

	Httpd: Do not pass empty as body to section
	This causes a conflict with eol_comment over newlines.
	`empty` is just a generic part of `section`, not really a body.

	.travis.yml: Use sudo false and the apt addons

2015-04-03  David Lutterkort  <lutter@watzmann.net>

	Logrotate: do not require a space before the opening brace
	The actual fix was in the previous commit c2abb62c, this just adds a test

	Fixes issue #123

2015-04-03  David Lutterkort  <lutter@watzmann.net>

	Build (block_newlines): make the space before the opening brace optional
	Added block_newlines_spc for the palces where we really need a block to
	start with ' {'; it seems that everywhere else requiring that space was an
	oversight.

	The two lenses that needed the space are Dovecot and Xinetd.

2015-04-03  David Lutterkort  <lutter@watzmann.net>

	Dovecot: no functional change; remove trailing whitespace

	Logrotate: no functional change; remove tabs

	NEWS: mention augtool fix from previous commit
	The fix came from https://github.com/hercules-team/augeas/pull/93

2015-04-03  Robert Drake  <rdrake@direcpath.com>

	* src/augtool.c: fix for readline add_history with interactive mode
	If you use interactive mode, augtool never adds anything to history that
	you type once the input becomes a normal tty.

	This is because it was checking stdin, which as far as the system is
	concerned is still !isatty().

2015-04-03  fonfon  <blubb@fonfon.at>

	Allow more fine-grained control of service_on entries

2015-04-03  David Lutterkort  <lutter@watzmann.net>

	* tests/Makefile.am: fix breakage introduced in c1b7784e

2015-04-03  Kaarle Ritvanen  <kaarle.ritvanen@datakunkku.fi>

	Dns_Zone: new lens to parse DNS zone files

2015-04-03  Pat Riehecky  <riehecky@fnal.gov>

	AFS_Cellalias: new lens
	https://github.com/hercules-team/augeas/pull/210

2015-04-03  Pat Riehecky  <riehecky@fnal.gov>

	Iscsid: new lens
	Thanks to Joey Boggs for writing tests

	Fixes issue #174

	https://github.com/hercules-team/augeas/pull/216

2015-04-03  David Lutterkort  <lutter@watzmann.net>

	NEWS: mention Logrotate change and issue # for Postfix_sasl_smtpd
	Minor changes for commits 2face8cf and c1b7784e

	Logrotate: support 'dateformat' directive
	Fixes issue #217

2015-04-03  David Lutterkort  <lutter@watzmann.net>

	Postfix_sasl_smtpd: new lens
	Fixes issue #182

	Contributed by larsen0815

2015-04-02  David Lutterkort  <lutter@watzmann.net>

	* src/pathx.c (pathx_escape_name): also escape backslash
	Since backslash is an escape character in parse_name, we need to escape it
	with a backslash to make sure that parse_name is really the inverse of
	pathx_escape_name.

	Thanks to Eric Blake for spotting this problem with the initial attempt to
	escape names introduced in e4f0a677

2015-04-02  David Lutterkort  <lutter@watzmann.net>

	Revert previous commit 27e36585; that change did more than was needed
	I overlooked that pathx_escape_name already escaped whitespace, and
	therefore we only need to also escape backslashes. The next patch will add
	escaping of backslashes to patchx_escape_name.

2015-04-01  David Lutterkort  <lutter@watzmann.net>

	* src/pathx.c (pathx_escape_name): also escape backslash and space
	Since backslash is an escape character in parse_name, we need to escape it
	with a backslash to make sure that parse_name is really the inverse of
	pathx_escape_name.

	We also escape a space as that is used in some circumstances to end a name
	(when we encounter ' or ' or ' and ')

	Thanks to Eric Blake for spotting this problem with the initial attempt to
	escape names introduced in e4f0a677

2015-03-13  David Lutterkort  <lutter@watzmann.net>

	Shellvars: fix insertion at top of file that starts with blank lines
	Possible blank lines at the start of a file were mapped with Util.empty
	which produces empty 'hidden' nodes (nodes with NULL label and value)

	This causes problem when a user inserts something before these nodes, for
	example with "insert 'foo' before /*[1]". Even though the nodes that
	Util.empty produces are generally hidden from the user, they are still in
	the tree and /*[1] selects such a node. The resulting tree has a hidden
	node in the middle, something that Shellvars.lns does not allow and
	therefore putting this tree fails. This is really hard to understand for
	users as the tree they see with 'print' is indistinguishable from one that
	doesn't have these hidden nodes.

	To fix this, the changed lens simply deletes the blank lines at the
	beginning of the file without creating any tree nodes. This makes the above
	insertion work at the cost of losing these blank lines as soon as anything
	is inserted into or deleted from the file.

	Fixes #202

2015-03-13  David Lutterkort  <lutter@watzmann.net>

	Sysconfig: accept leading whitespace before variables
	Make sure we allow '  var=value' and similar entries in files

	Fixes part of https://bugzilla.redhat.com/show_bug.cgi?id=761246

2015-03-02  Pat Riehecky  <riehecky@fnal.gov>

	Chrony: fix error in spelling of 'measurements' and add test for that

2015-02-27  Jeremy Lin  <jjlin@cs.stanford.edu>

	augtool: on interrupt, cancel current line instead of exiting

2015-02-27  David Lutterkort  <lutter@watzmann.net>

	New API aug_escape_name
	Provide a way to escape the characters that are special in a path
	expression

	* src/internal.c (path_expand): escape path components as needed
	    path_expand, which is used to turn the name of a tree node into a path
	    component, now escapes special characters for path expressions so that the
	    resulting paths can be used to look up that node even if the node name
	    contains special characters.

	* src/transform.c (remove_file): do not use path_of_tree
	remove_file uses path_of_tree to derive the name of the file that should be
	removed. Since we will change path_of_tree so that it escapes certain
	characters, we need to use a different way to get at the filename.

	* src/pathx.c (pathx_escape_name): new function
	Several characters in a path component are treated special, such as '[' and
	']'; to treat a string containing such characters as a literal path
	component, they need to be escaped with a '\\'.

	Move constant 'follow' out of parse_name

	* src/try: when running from the cli, exec augtool
	Before, when using this script, it was not really possible to put the
	resulting augtool run into the background.

2015-02-25  Russell Knighton  <russellk@motionpicturesolutions.com>

	Added support for conf-available apache config file location

2015-02-09  Andrew Colin Kissa  <andrew@topdog.za.net>

	Add Mailscanner_Rules lens for MailScanner rules files

	Add Pylonspaste lens

	Add Pgbouncer lens

	Add Mailscanner lens

	Add Clamav lens

2015-02-02  Kaarle Ritvanen  <kaarle.ritvanen@datakunkku.fi>

	Dnsmasq: add structure to 'address' and 'server' options
	This is a backwards incompatible change.

2015-02-02  Raphaël Pinson  <raphael.pinson@camptocamp.com>

	Authorized_keys: Allow double quotes in option values (GH #135)

2015-02-02  Kaarle Ritvanen  <kaarle.ritvanen@datakunkku.fi>

	Shellvars: case: support ;; on same line with multiple commands

2015-01-28  Vincent Desjardins  <vincent.desjardins@lacapitale.com>

	exports: add bracket support to the supported machine name formats.

2015-01-20  David Lutterkort  <lutter@watzmann.net>

	NEWS: mention previous commit

2015-01-20  grueni  <andreas.grueninger@lgl.bwl.de>

	Fix: '+' in user_alias
	Users of Samba may use '+' as separator between group and user name if
	domain accounts are used.

2015-01-06  Dominic Cleal  <dcleal@redhat.com>

	Erlang: parse kernel app config, handle empty lists
	Fixes RHBZ#1175546

2015-01-05  Dominic Cleal  <dcleal@redhat.com>

	PythonPaste: parse "set" keyword for default overrides
	Fixes RHBZ#1175545

2014-12-08  Raphaël Pinson  <raphael.pinson@camptocamp.com>

	Puppetfile: New lens to parse the Puppetfile format

2014-12-02  Raphaël Pinson  <raphael.pinson@camptocamp.com>

	Shellvars_list: Support double-quoted continued lines

2014-11-25  Raphaël Pinson  <raphael.pinson@camptocamp.com>

	NagiosCfg: default to no spaces around equal, fix #177

2014-11-19  Raphaël Pinson  <raphael.pinson@camptocamp.com>

	Exports: Do not use Hosts lenses

	Hosts: Refactor module

2014-11-13  Raphaël Pinson  <raphael.pinson@camptocamp.com>

	Ssh: allow indented commas_entry

2014-11-07  David Lutterkort  <lutter@watzmann.net>

	Version 1.3.0

	* tests/test-save.c (teardown): make <root>/etc writable after test
	Leaving it non-writable, as testRemovePermission does, causes 'make
	distcheck' to fail

2014-10-31  Chris Hollowell  <hollowec@bnl.gov>

	Cgconfig: permit quoted spaces in parameter values
	Allow quoted spaces in controller parameter value assignments, making valid
	statements such as the following permissible:

	  blkio.throttle.read_iops_device="8:0 50";

2014-10-30  Kenaniah Cerny  <kenaniah@users.noreply.github.com>

	Added config.d files to the filter
	Used by systems running Red Hat or a variant

2014-10-28  Raphaël Pinson  <raphael.pinson@camptocamp.com>

	Build: remove unused indent definition

2014-10-22  Raphaël Pinson  <raphael.pinson@camptocamp.com>

	Update NEWS

	Httpd: Allow comparison operators in tags (GH #154)

2014-10-17  Tomáš Chvátal  <tomas.chvatal@gmail.com>

	Add more possible SUSE extensions to read from multipath config.

2014-10-17  Alastair Lynn  <arplynn@gmail.com>

	Inifile: allow single-character keys

2014-10-17  Yanis Guenane  <yguenane@gmail.com>

	xml.aug: Allow nmotoken rather than plain word after !DOCTYPE
	Currently, the lens only accepts a word after the !DOCTYPE word.

	A - valid - Doctype can have the following form :
	<!DOCTYPE log4j:configuration SYSTEM "log4j.dtd"> making the xml
	file invalid with the current lens. This commits aims for the lens
	to accept nmtoken rather than strict word after the DOCTYPE string.

2014-10-17  fonfon  <blubb@fonfon.at>

	Pagekite: new lens and tests

2014-09-23  Dominic Cleal  <dcleal@redhat.com>

	Iptables: parse /etc/sysconfig/iptables.save
	Fixes RHBZ#1144651

2014-09-23  Pino Toscano  <ptoscano@redhat.com>

	LVM: handle also /etc/lvm/lvm.conf
	The syntax should be the same, so use the lvm lens also for the main
	lvm2 configuration file.

	LVM: support negative numbers
	Use Rx.relinteger instead of Rx.integer so negative numbers as values
	can be read.

2014-09-18  Dominic Cleal  <dcleal@redhat.com>

	Systemd: parse environment variables where only value is quoted
	Fixes regression introduced in 5226ae7, which added support to parse fully
	quoted "NAME=value" environment vars.  To support both, this commit stores
	the quotes in the value if it's only the value quoted.

	Fixes RHBZ#1138508

2014-09-12  Dominic Cleal  <dcleal@redhat.com>

	Dhclient: parse hash statements with dhcp-eval strings

	Systemd: parse semicolons inside entry values, not as EOL comments
	Fixes RHBZ#1139498

2014-09-09  Dominic Cleal  <dcleal@redhat.com>

	Kdump: parse new options, permit EOL comments, refactor
	Fixes RHBZ#1139298

	Test_Kdump: fix test of complete config file

2014-09-05  Dominic Cleal  <dcleal@redhat.com>

	Xml: enable CDATA parsing
	Fixes GitHub #80

2014-09-04  Dominic Cleal  <dcleal@redhat.com>

	* src/augeas.c (unlink_removed_files): ensure aug_save returns non-zero result   when unable to delete files
	Fixes RHBZ#1091143

2014-09-03  Dominic Cleal  <dcleal@redhat.com>

	Syslog: permit IPv6 loghost addresses
	Fixes RHBZ#1129388

	Aliases: permit missing whitespace between colon and recipients

2014-07-24  Raphaël Pinson  <raphael.pinson@camptocamp.com>

	NEWS

	Xml: Allow backslash in #attribute values

2014-07-21  Dominic Cleal  <dcleal@redhat.com>

	Services: permit colons in service name
	Fixes RHBZ#1121263

2014-07-09  Dominic Cleal  <dcleal@redhat.com>

	Rmt: new lens to parse /etc/default/rmt
	Fixes RHBZ#1100549

	Systemd: parse /etc/sysconfig/*.systemd as used in 389-ds
	Fixes RHBZ#1083022

	Shellvars: support $(( .. )) arithmetic expansion in variable assignment
	Fixes RHBZ#1100550

	Systemd: allow quoted Environment key=value pairs
	Fixes RHBZ#1100547

2014-06-30  Raphaël Pinson  <raphael.pinson@camptocamp.com>

	Simplevars: Support empty values

2014-06-26  Raphaël Pinson  <raphael.pinson@camptocamp.com>

	Sshd: support doseol and standardize code

	Sshd: Use Build.opt_list

	Sshd: Also make Host entries case-insensitive

	Ssh: support case-insensitive entries everywhere

2014-06-24  Andy Grimm  <agrimm@redhat.com>

	Add other valid controllers to cgconfig lens

2014-06-19  Raphaël Pinson  <raphael.pinson@camptocamp.com>

	Xymon_Alerting: refactor lens (GH issue #89)

2014-06-11  Nick  <npiace@mars.asu.edu>

	Sudoers: Allow quoted string in default str/bool parameters
	  Made string or bool parameters able to be quoted strings like non-bool strings.
	  Also added "mailfrom" parameter to the list of string/bool parameters
	  and removed duplicates from that list.

2014-06-06  Frank Grötzner  <frank@unforgotten.de>

	add support for mtu relevant parameters fragment and mssfix

2014-06-05  Raphaël Pinson  <raphael.pinson@camptocamp.com>

	Update NEWS and AUTHORS

2014-06-05  fonk  <frank@unforgotten.de>

	OpenVPN/ Add support for setting script-security
	Setting script security is especially needed when using learn-address,
	which we can already set via augeas but is useless without script-security.

2014-06-04  Dominic Cleal  <dcleal@redhat.com>

	* man/augtool.pod: fix description of 'move' alias

2014-06-03  Dominic Cleal  <dcleal@redhat.com>

	* src/augrun.c: remove unused "filename" argument from dump-xml command
	Fixes RHBZ#1100106

	* man/augtool.pod: update man page with --span option

2014-06-02  Raphaël Pinson  <raphink@gmail.com>

	Update AUTHORS and NEWS

2014-06-02  Joel Loudermilk  <joel@loudermilk.org>

	Multipath: add support for rr_min_io_rq

2014-06-02  Dominic Cleal  <dcleal@redhat.com>

	* man/augtool.pod: update man page with new commands
	Fixes RHBZ#1100077

	* src/augtool.c: add command aliases to autocomplete
	Fixes RHBZ#1100184

	Ldso: handle "hwcap" lines
	Fixes #100

	Rsyslog: parse property filters and file actions with complex templates
	Fixes RHBZ#1083016

2014-06-02  Raphaël Pinson  <raphael.pinson@camptocamp.com>

	Update NEWS

2014-06-02  Pat Riehecky  <riehecky@fnal.gov>

	Added tuned lense

2014-06-02  Raphaël Pinson  <raphael.pinson@camptocamp.com>

	Update NEWS and AUTHORS

2014-06-02  Lorenzo M. Catucci  <lorenzo@sancho.ccd.uniroma2.it>

	Add a little bit of ducumentation
	for both the shadow and the gshadow lenses

2014-06-02  Lorenzo M. Catucci  <lorenzo@sancho.ccd.uniroma2.it>

	Add a lens for /etc/gshadow file format
	and wire-up its test to the runner's list in Makefile.am

	Also add a mock /etc/gshadow in tests/root

2014-06-02  Lorenzo M. Catucci  <lorenzo@sancho.ccd.uniroma2.it>

	Add a lens for /etc/shadow file format
	and wire-up its test to the runner's list in Makefile.am

	Also add a mock /etc/shadow in tests/root

2014-06-02  Lorenzo M. Catucci  <lorenzo@sancho.ccd.uniroma2.it>

	Refactor and document
	 - import already defined lenses from the respective modules
	   instead of defining them internally

	 - add a missing \r to the excluded chars in sto_to_col

	 - add some documentation

2014-05-14  Michael Tiernan  <michael.tiernan@gmail.com>

	* HACKING: fix git repository URL

2014-05-11  Mike Latimer  <mlatimer@suse.com>

	Device_map: Parse all device.map files under /boot

2014-05-08  Raphaël Pinson  <raphink@gmail.com>

	CPanel: Allow colons in keys

	CPanel: New lens to parse cpanel.config files

2014-05-05  Raphaël Pinson  <raphael.pinson@camptocamp.com>

	Simplevars: Support flags

2014-04-24  Raphaël Pinson  <raphink@gmail.com>

	Shellvars: Allow any kind of quoted values in block conditions (GH issue #118)

2014-04-17  Raphaël Pinson  <raphael.pinson@camptocamp.com>

	Sssd: Allow ; for comments

2014-04-15  Raphaël Pinson  <raphael.pinson@camptocamp.com>

	Allow empty quoted values (GH issue #115)

	Allow continued lines inside quoted value (GH issue #104)

2014-04-12  Raphaël Pinson  <raphael.pinson@camptocamp.com>

	Update NEWS and AUTHORS

2014-04-12  Robert Drake  <rdrake@direcpath.com>

	syslog, support for "# !" style comments
	This makes it so if a comment begins with "# " then +, -, or ! it's
	treated as a comment and won't have a special meaning.

	fixes #65

2014-04-12  Robert Drake  <rdrake@direcpath.com>

	dhclient, add support for option modifiers
	This adds basic support for append|prepend|supercede|default

	I believe it has the same limitations as the existing "option" support.
	Any arguments supplied to the option can't have a space.

	fixes #95

2014-04-12  Vincent Brillault  <vincent.brillault@cern.ch>

	pam: partial support of arguments enclosed in [ .. ]
	Pam.conf(5) manual page states 'module-arguments are a space separated list
	of tokens that can be used to modify the specific behavior of the given PAM.
	Such arguments will be documented for each individual module. Note, if you
	wish to include spaces in an argument, you should surround that argument with
	square brackets.', but such arguments are not supported by the pam lenses, as
	expressed in the comments 'This isn't entirely right: arguments enclosed in
	[ .. ] are allowed and should be parsed as one'.

	This commit add basic support of such arguments via the regex:
	'/(\[[^]#\n]+\]|[^[#\n \t][^#\n \t]*)/'

	It is only a partial support as some corner cases are not covered:
	- Multi line arguments (lines ending with '\')
	- Arguments containing a '[' (escaped via '\')

2014-04-12  Robert Drake  <rdrake@direcpath.com>

	added seq to vim syntax highlight

2014-04-03  Simon Séhier  <simon.sehier@camptocamp.com>

	add missing } in file path for nagios/icinga objects

2014-03-13  Raphaël Pinson  <raphink@gmail.com>

	UpdateDB: Update tests to ensure spaces around = are OK

	Update NEWS

	UpdateDB: New lens to parse /etc/updatedb.conf

2014-03-13  Dominic Cleal  <dcleal@redhat.com>

	* augeas.spec.in: improve augeas-libs description

2014-03-12  Raphaël Pinson  <raphael.pinson@camptocamp.com>

	Httpd: Add unit test for comment on next line

	Httpd: Define an eol_comment in section to allow for \n before comment

2014-03-11  Raphaël Pinson  <raphael.pinson@camptocamp.com>

	Httpd: Allow eol comments after section tags

2014-03-06  Raphaël Pinson  <raphael.pinson@camptocamp.com>

	Rx: Add iso_8601 simple regex

	Update NEWS

	Update AUTHORS and NEWS

2014-03-06  Robert Drake  <rdrake@direcpath.com>

	dhcpd, style and test changes suggested by raphink
	I also updated the NEWS entry to note the incompatible change

	dhcpd, fix for put on dhcp option records
	Type cannot be blank.  I fixed this by making it use record instead of
	nesting through "type"

	dhcpd, fix for key block puts
	I discovered this after thinking I was done.  It actually was a problem
	before I started messing with the code but I didn't notice it because
	there was never any test for keys.

	dhcpd, removed unused variable and reformatted
	stmt_subclass was a little too cluttered so I changed it to multiple
	lines for readability.  I had also introduced an unused lens sep_to_ncl
	which I removed.

2014-03-06  Robert Drake  <rdrake@direcpath.net>

	dhcpd, changing quotes on stmt_block_arg
	This patch can break users parsers.

	Fixes failover-peer, shared-network, class, host, zone, group, and "on" to
	handle quoted values properly.

	It also allows optional semicolon at the end of key {} block.

2014-03-06  Robert Drake  <rdrake@direcpath.net>

	dhcpd, adding support for "on" statement
	For things like:

	on commit {
	      set ClientIP = binary-to-ascii(10, 8, ".", leased-address);
	      set ClientMac = binary-to-ascii(16, 8, ":", substring(hardware, 1, 6));
	}

2014-03-06  Robert Drake  <rdrake@direcpath.net>

	dhcpd, added fddi to stmt_hardware
	getting pretty obscure..

2014-03-06  Robert Drake  <rdrake@direcpath.net>

	dhcpd, adding support for set command
	This allows you to define variables in your dhcp configuration.  They
	can be arbitrarily complicated.

	Things like this:

	      set ClientIP = binary-to-ascii(10, 8, ".", leased-address);
	      set ClientMac = binary-to-ascii(16, 8, ":" , substring(hardware, 1, 6));

	I also added most of the rest of the functions from dhcp-eval and listed
	the limitations of the current parser.  I don't think I'm going to be
	able to fix most of it but I think I'm getting into obscure features
	that most people don't bother using.

	At this point if they need to do very strange class maps they could put
	them in an include file and not have augeas parse it.

2014-03-06  Robert Drake  <rdrake@direcpath.net>

	dhcpd, added support for match if suffix|option
	I also relaxed the rules on matching quoted and unquoted values.

	Things like:
	    match if suffix (option vendor-class-identifier,6)="123456";
	or
	    match if option vendor-class-identifier="Brave, Warrior Pidgins";

	work now.

2014-03-06  Robert Drake  <rdrake@direcpath.net>

	dhcpd fix to allow subclasses values to be quoted
	DHCP subclass values can have spaces in them.

	Here is an example:
	subclass "consoles" "Xbox 360";
	subclass "consoles" "Nintendo 3DS";
	subclass "consoles" Wii;
	subclass "consoles" NintendoDS;

2014-03-06  Robert Drake  <rdrake@direcpath.net>

	dhcpd known-clients allows spaces in it's value
	This is a fix for lines like these:

	   deny unknown clients;
	   deny known clients;
	   allow known clients;
	   allow unknown clients;

2014-03-06  Robert Drake  <rdrake@direcpath.net>

	dhcpd, fix for quoted characters in members of
	Some of my "allow members of" statements have more complicated names
	that include things like parenthesis.  This change makes it so semicolon
	and space are the only things not allowed in barewords, and quotes and
	newlines are the only thing not allowed in quoted things.

2014-03-06  Robert Drake  <rdrake@direcpath.net>

	dhcpd, fix whitespace problems with blocks
	Most blocks should support braces at the end of a line or
	on the next line.

	Like this:

	class "test class"
	{

	}

	or

	class testclass {}

2014-03-06  Robert Drake  <rdrake@direcpath.net>

	dhcpd, expanding support for user-defined-options
	This incorporates changes suggested by raphink.

	It should be able to parse all of the following DHCP options now:

	    option name-service-search code 117 = array of unsigned integer 16;
	    option domain-search code 119 = string;
	    option sip-servers code 120 = string;
	    option classless-static-route code 121 = string;
	    option space cable-labs;
	    option cable-labs.tsp-primary-dhcp-server code 1 = ip-address;
	    option cable-labs.tsp-secondary-dhcp-server code 2 = ip-address;
	    option cable-labs.tsp-provisioning-server code 3 = string;
	    option cable-labs.tsp-as-backoff-retry code 4 = { unsigned integer 32, unsigned integer 32, unsigned integer 32 };
	    option cable-labs.tsp-ap-backoff-retry code 5 = { unsigned integer 32, unsigned integer 32, unsigned integer 32 };
	    option cable-labs.tsp-kerberos-realm-name code 6 = string;
	    option cable-labs.tsp-ticket-granting-server-utilization code 7 = boolean;
	    option cable-labs.tsp-provisioning-timer code 8 = unsigned integer 8;
	    option cable-labs-encapsulation code 122 = encapsulate cable-labs;
	    option tftp-server-address code 150 = array of ip-address;
	    option ip-telephone code 176 = string;
	    option wpad-url code 252 = text;

2014-03-06  Robert Drake  <rdrake@direcpath.net>

	dhcpd, add support for omapi-key statement
	You can use this along with omapi-port to specify a secure way to talk
	to your DHCP server.

	key myspecialkey {
	    algorithm hmac-md5;
	    secret "base64string==";
	}

	omapi-key myspecialkey;
	omapi-port 7911;

2014-03-06  Robert Drake  <rdrake@direcpath.net>

	dhcpd, add support for named groups
	Things like group Special_users {

	}

2014-03-04  Raphaël Pinson  <raphael.pinson@camptocamp.com>

	Update NEWS

	Desktop: Allow @ in keys (GH issue #92)

2014-03-03  KaMichael  <KaMichael@users.noreply.github.com>

	Group: Dropped nisentry (not valid here)

	group: Testcase for NIS default

2014-03-03  KaMichael  <KaMichael@gmail.com>

	Update group.aug

	Update group.aug to parse NIS entries

2014-02-28  Raphaël Pinson  <raphael.pinson@camptocamp.com>

	Update NEWS

2014-02-28  Pat Riehecky  <riehecky@fnal.gov>

	Added chrony lense

2014-02-25  Dominic Cleal  <dcleal@redhat.com>

	Krb5: permit braces in values when not in sub-section
	Fixes RHBZ#1066419

2014-02-21  Dominic Cleal  <dcleal@redhat.com>

	Keepalived: add more virtual/real server settings and checks
	Fixes RHBZ#1064388

2014-02-21  Raphaël Pinson  <raphael.pinson@camptocamp.com>

	NetworkManager: Use the Quote module, support # in values (no eol comments)

2014-02-20  Raphaël Pinson  <raphael.pinson@camptocamp.com>

	AptPreferences: Support spaces in origin fields

	Remove mercurial legacy files

	Sshd: Allow all types of issues in Match groups (GH issue #75)

	Update NEWS

	Add cp to manpage (issue #78)

	Update AUTHORS and NEWS

2014-02-20  Mykola Nikishov  <mn@mn.com.ua>

	Support configuration file for Squid 3

2014-02-12  Dominic Cleal  <dcleal@redhat.com>

	IPRoute2: handle "/" in protocol names, swap ID and name fields
	This is an incompatible change.

	Fixes RHBZ#1063968

2014-02-12  Dominic Cleal  <dcleal@redhat.com>

	IPRoute2: handle hex IDs and hyphens in names, as present in rt_dsfield
	Fixes RHBZ#1063961

2014-02-10  Dominic Cleal  <dcleal@redhat.com>

	Shellvars: handle case statements with same-line ;; tokens
	Fixes RHBZ#1033799

2014-02-08  Raphaël Pinson  <raphael.pinson@camptocamp.com>

	Update NEWS

	Fix release date for 1.2.0 in NEWS

	Add Known_Hosts lens

2014-01-30  Miguel Armas  <kuko@canarytek.com>

	Grub: handle "foreground" option
	Fixes RHBZ#1059383

2014-01-27  David Lutterkort  <lutter@watzmann.net>

	Version 1.2.0

2014-01-27  Raphaël Pinson  <raphink@gmail.com>

	Update NEWS with span info in XML dump

2014-01-27  Dominic Cleal  <dcleal@redhat.com>

	Add %check to RPM spec, fix download URL
	  * augeas.spec.in: add %check to run `make check` during build, skipping
	    SELinux tests which don't work in a mock environment

	Original %check patch from Richard Jones <rjones@redhat.com>

2014-01-27  Raphaël Pinson  <raphink@gmail.com>

	Add span info to XML dump
	For a node, add span information for the label, value, and node overall if
	it is present in the tree. The resulting XML looks like

	  <node label="..." file="..." path="...">
	    <span for="label" start="..." end="..."/>
	    <span for="value" start="..." end="..."/>
	    <span for="node" start="..." end="..."/>
	    <value>...</value>
	  </node>

2014-01-27  David Lutterkort  <lutter@watzmann.net>

	Rename build/aux to build/ac-aux
	The directory name 'aux' is special on Windows, and using it keeps the
	build from working.

	You will need to rerun autogen.sh after this change

2014-01-23  Raphaël Pinson  <raphink@gmail.com>

	Update NEWS

	Sshd: let all special keys be case-insensitive

	Update NEWS

	Sshd: Support Ciphers and KexAlgorithms groups, GH issue #69

	Update NEWS

	Grub: Add 'verbose' option, GH issue #73

	Update NEWS

	Shellvars_list: Allow end-of-line values, bug #342

	Fix xymonalerting into xymon_alerting in tests/Makefile.am

	Add Xymon_Alerting lens to NEWS, update AUTHORS

	Rename XymonAlerting lens as Xymon_Alerting

	Fix NaturalDocs comments in XymonAlerting lens

2014-01-23  Francois Maillard  <fmaillard@gmail.com>

	Add NaturalDocs documentation to the xymonalerting lens and its tests

	add basic doc

	Add the test lens to the Makefile

	New lens for xymon alerting rules

2014-01-23  Raphaël Pinson  <raphink@gmail.com>

	Update NEWS with Authorized_Keys change

2014-01-23  Jasper Lievisse Adriaanse  <jasper@humppa.nl>

	Allow 'ssh-ed25519' as a valid authorized_key type

2014-01-23  Raphaël Pinson  <raphael.pinson@camptocamp.com>

	Update NEWS and AUTHORS

2014-01-13  Kaarle Ritvanen  <kaarle.ritvanen@datakunkku.fi>

	Interfaces: map bond-slaves and bridge-ports options to arrays
	This is a backwards incompatible change, as these would previously show up
	as strings in the tree

2014-01-13  Tomas Klouda  <tomas.klouda@gooddata.com>

	Fix MongoDB Server lens - MongoDB doesn't accept quoted values
	This lens worked for already defined values, but once you wanted to
	add new value, it was created with quotes and MongoDB failed to start

2014-01-13  Dominic Cleal  <dcleal@redhat.com>

	Fix umask handling when creating new files
	  * src/transform.c (transform_save): faulty umask arithmetic would cause
	    overly-open file modes when the umask contains "7", as the umask was
	    incorrectly subtracted from the target file mode

	Fixes CVE-2013-6412, RHBZ#1034261

2014-01-13  Freakin  <brendanaye@gmail.com>

	OpenVPN: additional config options
	Support
	  1) daemon
	  2) client-config-dir
	  3) route
	  4) management

2014-01-13  David Lutterkort  <lutter@watzmann.net>

	* NEWS: describe Slapd changes in last few commits

2014-01-13  Raphaël Pinson  <raphael.pinson@camptocamp.com>

	Slapd: move by/who to the value of by

	Slapd: Allow any allowed combination of who/access/control in by field

	Slapd: support smart quotes in database entry

	Slapd: remove duplicate entry in database_re

	Slapd: rename by parameters
	* Rename by/what as by/access (as per official doc)
	* Allow access to be absent (as per official doc)

2014-01-07  Raphaël Pinson  <raphael.pinson@camptocamp.com>

	Slapd: Add unit test for by/control

2013-12-18  Dominic Cleal  <dcleal@redhat.com>

	Shellvars, Sysconfig: map "bare" export and unset lines using seq to handle multiple variables
	Fixes RHBZ#1033795

2013-12-18  Raphaël Pinson  <raphael.pinson@camptocamp.com>

	Shellvars.lns: Actually test continued lines and fix support

	Shellvars.lns: add unit test for continued lines in double quoted values

2013-12-16  Dominic Cleal  <dcleal@redhat.com>

	Sysconfig: permit empty comments after comment lines
	Fixes RHBZ#1043636

2013-12-05  Dominic Cleal  <dcleal@redhat.com>

	Shellvars: fix syntax error in filter

2013-12-04  David Lutterkort  <lutter@watzmann.net>

	Shellvars: exclude /etc/sysconfig/ip*tables.save files

2013-12-03  Raphaël Pinson  <raphael.pinson@camptocamp.com>

	Sudoers.lns: Allow uppercase characters in user names (ticket #376)

	Build: Add combine_three_ord and combine_three

	Build: Add combine_two_ord and combine_two

	Yum.lns: split excludes as lists (ticket #275)

	Build: Add combinatorics group

	Yum.lns: simplify code for combinatory logic of list_entry elements

2013-12-02  Tomas Hoger  <thoger@redhat.com>

	Corrections for CVE-2012-0786 tests
	- test-put-symlink-augsave.sh - variable $HOSTS_AUGNEW was used to check if
	  file was still symlink, while it wasn't set before.  Fix to use
	  $HOSTS_AUGSAVE.
	- test-put-symlink-augnew.sh, test-put-symlink-augsave.sh - 'test -f'
	  dereferences symlink and hence can not be used to check if file is regular
	  file or symlink to a regular file.  Use 'test -h' instead.

2013-12-02  Tomas Hoger  <thoger@redhat.com>

	Correct locations table for transform_save()
	Commit 16387744 introduced a table with locations of temporary, destination and
	backup file in various modes as part of the comment for transform_save().  This
	corrects two incorrectly listed temporary file locations.

	Note that PATH_canon is somewhat misleading, as canonicalized path is always
	used when not using NEWFILE save flag, while it is meant to indicate whether
	file is created in a directory that contains symlink, or a directory that
	contains symlink's target.

2013-12-02  Raphaël Pinson  <raphael.pinson@camptocamp.com>

	Desktop.lns: Support square brackets in keys

2013-11-19  Dominic Cleal  <dcleal@redhat.com>

	* src/transform.c (filter_matches): wrap fnmatch to ensure that an incl   pattern containing "//" matches file paths
	Fixes RHBZ#1031084

2013-11-09  Sean Millichamp  <sean.millichamp@secure-24.com>

	Enhance Nagiosobjects lens
	This adds support and tests for three additional Nagios
	supported behaviors:
	- An optional space between the object name and the {
	   Example: "define host{"
	- An optional indent prior to the closing }
	   Example: "    }"
	- Whole-line comments that start with ;
	   Example: "; This is a comment"

	It does not add support for end-of-line comments with ;

2013-11-09  Yanis Guenane  <yguenane@gmail.com>

	Dhcpd: support a wider variety of DHCP allow/deny/ignore statement
	The Dhcpd.aug was missing a part of the allow/deny/ignore possible
	statement. This commit updates the lense so it supports the list
	of options available here

	http://www.ipamworldwide.com/declarations-topological/declarations-allowdenyignore.html

	Also this bug was preventing a Foreman user to parse the dhcpd.conf
	generated by theforeman/dhcp puppet module

2013-11-09  Dominic Cleal  <dcleal@redhat.com>

	Yum: permit spaces after equals sign in list options
	Fixes GitHub issue #45

2013-11-08  Matteo Cerutti  <matteo.cerutti@hotmail.co.uk>

	Sudoers: permit underscores in group names
	Fixes ticket #370

2013-11-01  Andrew N Golovkov  <a.golovkov@dwteam.ru>

	include only *.repo files from yum.repos.d;

2013-10-24  Michael Haslgrübler  <work-michael@haslgruebler.eu>

	Use Quote module in dovecot
	* use Quote.dquote_spaces for quoting

	dovecot enchancement and bug fixes
	* add mailbox to block_names
	* fix for block_args in quotes
	* fix for block's brackets upon write
	* fixes broken tests for mailbox
	* fixes indention
	* test case for block_args with "
	* fixes broken indention

2013-10-17  Dominic Cleal  <dcleal@redhat.com>

	Shellvars_list: handle backtick variable assignments
	Fixes ticket #368

2013-10-08  Yanis Guenane  <yguenane@gmail.com>

	Update NEWS

2013-10-07  Dietmar Kling  <baldur@email.de>

	Cyrus_Imapd: create new entries without space before separator
	Fixes RHBZ#1014974

2013-10-05  Dominic Cleal  <dcleal@redhat.com>

	Exports: permit colons for IPv6 client addresses
	Fixes ticket #366

2013-09-20  Esteve Fernandez  <esteve.fernandez@gmail.com>

	Added dhclient.conf path for Debian/Ubuntu

2013-09-09  Yanis Guenane  <yguenane@gmail.com>

	Fix Trac#364. Syslog lense accept UDP(@) and TCP(@@) protocol
	Currently the syslog lense only accept sending log to another host
	via UDP - a single @ -, and was discarding TCP - a double @ -. This
	PR fixes that.

	Fix test_rsyslog.aug

	Remove unused variable at

2013-09-07  Yanis Guenane  <yguenane@gmail.com>

	Fix NagiosCfg lense so /etc/nagios/nrpe.cfg is parsed by Nrpe and not NagiosCfg
	Currently NagiosCfg lense is in charge of parsing all files under /etc/nagios/*.cfg
	but /etc/nagios/commands.cfg. /etc/nagios/nrpe.cfg should be also added as an exception
	since it needs to be parsed by the Nrpe lense. This issue currently causes the following
	error : "Lenses @NagiosCfg and @Nrpe could be used to load this file"

2013-09-02  Dominic Cleal  <dcleal@redhat.com>

	* tests/test-load.c (testPermsErrorReported): skip permissions test when root

2013-08-27  Tom Hendrikx  <tom@whyscream.net>

	Postfix_virtual: allow '+' and '=' in email addresses
	+ ('plus') and = ('equals') are valid characters in email addresses.
	Example is from postfix docs, see:
	http://www.postfix.org/MULTI_INSTANCE_README.html#quick

2013-08-27  Raphaël Pinson  <raphink@gmail.com>

	Add aug_cp and the cp and copy commands

2013-08-27  Dominic Cleal  <dcleal@redhat.com>

	Grub: handle makeactive menu command
	Fixes ticket #340

	Postfix_Main: handle stray whitespace at end of multiline lines
	Fixes ticket #348

2013-08-27  Pat Riehecky  <riehecky@fnal.gov>

	Koji: new lens to parse Koji configs

2013-08-27  Dominic Cleal  <dcleal@redhat.com>

	Access: support DOMAIN\user syntax for users and groups
	Fixes ticket #353

	Samba: permit asterisk in key name
	Fixes ticket #354

	Shellvars: support all types of quoted strings in arrays
	Patch from webmeister.  Fixes ticket #357.

2013-08-27  Pat Riehecky  <prieheck@iwu.edu>

	Yum: add yum-cron*.conf files

2013-08-27  Pascal Lalonde  <plalonde@google.com>

	Interfaces: allow numeric characters in stanza options

2013-08-27  David Lutterkort  <lutter@watzmann.net>

	Shellvars: read /etc/firewalld/firewalld.conf
	Fixes https://fedorahosted.org/augeas/ticket/363

2013-08-27  Matthew Booth  <mbooth@redhat.com>

	Grub: support the 'lock' directive

	Grub: NFC fix whitespace errors introduced by 4e09d15
	Kill tabs!

	Grub: support the 'setkey' directive

2013-08-27  Michael Wisheu  <wisheu@google.com>

	Interfaces: add /etc/network/interfaces.d/* as another commonly used location

2013-08-06  Raphaël Pinson  <raphink@gmail.com>

	Update NEWS

	Fix NaturalDocs comments in lenses

2013-08-06  Stephen P. Schaefer  <sschaefer@acm.org>

	Allow augeas to deal with one variant of /etc/sysconfig/network-scripts/route-*

2013-08-01  Raphaël Pinson  <raphael.pinson@camptocamp.com>

	Update NEWS

	Properties: Support multiline starting with an empty string, GH issue #19

	Dhcpd: support conditionals, GH issue #34

	Update NEWS

	PHP: Allow php-fpm syntax (GH issue #35)

2013-08-01  Patrick Adair  <padair@he.net>

	Interfaces: add in support for the source stanza in /etc/network/interfaces files

2013-07-30  Dominic Cleal  <dcleal@redhat.com>

	Simplevars: adopt /etc/selinux/semanage.conf due to spaces around delimiters

2013-07-30  Michael Scherer  <misc@zarb.org>

	Shellvars: add /etc/selinux/semanage.conf

2013-07-30  Raphaël Pinson  <raphael.pinson@camptocamp.com>

	Start new NEWS section

	Fix documentation links in c_api naturaldocs menu

2013-07-24  Raphaël Pinson  <raphael.pinson@camptocamp.com>

	Sshd: also indent comments by 2 spaces by default in Match groups

	Sshd: Indent Match entries by 2 spaces by default

2013-06-27  Jan Vansteenkiste  <jan@vstone.eu>

	Fixes #27: Automounter lens does not handle hostnames with dashes in them

2013-06-24  Jasper Lievisse Adriaanse  <jasper@humppa.nl>

	Fix my name

2013-06-14  David Lutterkort  <lutter@watzmann.net>

	Version 1.1.0

	Make tree_unlink safer to use
	tree_unlink used to only remove nodes from the tree, leaving the
	possibilities of dangling references from variables stored in the
	symtab. The new incarnation is safer in that it cleans up the symtab first.

2013-06-14  David Lutterkort  <lutter@watzmann.net>

	Do not interpret file names as path exprs during load
	We used to interpret file names as path expressions at various points in
	the process of loading the tree. That lead to nasty failures if the file
	names contained characters that have a special meaning in path expressions,
	like '!', '[' etc.

	When the loading code now creates nodes or looks them up based on filenames
	(e.g. to create the file's top level node in /files or the info node in
	/augeas/files), we now use tree_fpath/tree_fpath_cr to do that.

	The workaround introduced into shellvars.aug to fix tiecket #246 is also no
	longer needed.

	Fixes https://fedorahosted.org/augeas/ticket/343
	Fixes https://fedorahosted.org/augeas/ticket/333
	Improves on the fix for https://fedorahosted.org/augeas/ticket/246

2013-06-14  David Lutterkort  <lutter@watzmann.net>

	* src/transform.c (xfm_error): do not segfault when msg is NULL

	* src/try: make 'try gdb' work with emacs-24 and gdb-7.5.1

2013-06-11  David Lutterkort  <lutter@watzmann.net>

	LVM: fix handling of quoted strings that contain quotes
	Fixes https://github.com/hercules-team/augeas-do-not-use/issues/28 reported
	by brianredbeard

2013-06-11  Erik B. Andersen  <erik.b.andersen@gmail.com>

	AptCacherNGSecurity: new lens for /etc/apt-cacher-ng/security.conf

2013-06-11  brian redbeard  <brian@dead-city.org>

	Added node config for OpenShift
	When the intial lens was developed there was a missing transform
	on /etc/openshift/node.conf

	This is a fix for bug hercules-team/augeas#22

2013-06-04  David Lutterkort  <lutter@watzmann.net>

	Xorg: allow 'Screen' in Device section
	Patch from merkela

	Fixes bug https://fedorahosted.org/augeas/ticket/344

2013-06-03  David Lutterkort  <lutter@watzmann.net>

	Xorg: support extmod section
	Patch by merkela

	Partial fix for https://fedorahosted.org/augeas/ticket/344

2013-05-30  Raphaël Pinson  <raphael.pinson@camptocamp.com>

	Yum: optimize regexp substractions

	Nrpe: optimize regexp substractions

	Mdadm_Conf: optimize regexp substractions

	Fai_Diskconfig: Optimize regexp substractions

	Shellvars: Optimize regexp substraction

2013-05-28  Dominic Cleal  <dcleal@redhat.com>

	Automaster: accept spaces between options

2013-05-24  Raphaël Pinson  <raphael.pinson@camptocamp.com>

	Update NEWS

	Add Rob Tucker to AUTHORS

	Add README as a symlink to README.md to make autogen relax

2013-05-24  Rob Tucker  <rtucker11@gmail.com>

	Added augeas lens and test for the asterisk sip.conf file

2013-05-22  Raphaël Pinson  <raphael.pinson@camptocamp.com>

	postfix_master: Allow [] in words (ticket #345)

2013-05-17  David Lutterkort  <github@watzmann.net>

	Update README.md
	Reformat as GH-flavored markdown; add a License section

	Rename README to README.md

2013-05-17  David Lutterkort  <lutter@watzmann.net>

	* tests/test-run.c (load_module): do not downcase the lensdir
	We should not touch the lensdir, since it is user provided; we only want to
	downcase the module name.

	Patch by aponomarenko

	Fixes bug #332

2013-05-17  Raphaël Pinson  <raphael.pinson@camptocamp.com>

	Add --echo alias to augtool manpage

	Add -t option to augtool manpage

2013-05-17  Enrico Stahn  <mail@enricostahn.com>

	PHPFPM Support

2013-05-16  Francis Giraldeau  <francis.giraldeau@gmail.com>

	Add Splunk lens
	Lens to parse Splunk configuration. Based on IniFile lens, with few differences:

	* Accepts empty value in entry
	* Entries without parent section are children of .anon node

	Thanks to Tim Brigham for this contribution.

2013-05-16  Francis Giraldeau  <francis.giraldeau@gmail.com>

	Add CR as a white space char in RX.space_in
	CR is used in the IniFile lens as of EOL. To avoid concat ambig between
	IniFile.store_to_eol and IniFile.eol, CR has to be added to Rx.space_in. This
	change do not break any existing lens in the repository.

2013-05-16  Davide Guerri  <davide.guerri@gmail.com>

	adds support for iptoute2 configuration files (/etc/iproute2/*)

2013-05-16  Simon Vocella  <voxsim@gmail.com>

	JaaS: lens for the Java Authentication and Authorization Service

2013-05-15  David Lutterkort  <lutter@redhat.com>

	Function composition: fix the typing of the generated lambda
	When f and g are functions, 'f ; g' gets translated into
	  lambda x: g (f x)

	The resulting function wasn't typed right, which led to an internal error.

	This fixes bug #328

2013-05-08  Raphaël Pinson  <raphink@gmail.com>

	Update AUTHORS

2013-05-08  Brian Harrington  <bharrington@redhat.com>

	Added support for OpenShift
	Added a series of lenses to support the corresponding configuration
	formats including conf, JSON, & HTTP.

2013-05-08  Brian Harrington  <bharrington@redhat.com>

	Add support for MongoDB Server
	A basic lens and test to support the configuration of MongoDB

	Added infrastructure components for MongoDB

	Included references to MongoDBServer to handle the auto testing of
	lenses on build & mention of lens in for autodoc generation.

	fixes hercules-team/augeas/#25

	Improved documentation on MongoDBServer filter

	Added improved reference and usage information for the lens

	Mistyped port path in MongoDBServer lens usage

	The port component was missing from the set command

	fixes herclues/team-augeas/#25

2013-05-08  Brian Harrington  <bharrington@redhat.com>

	Added support for ActiveMQ / Red Hat JBoss A-MQ
	Added a series of lenses to support the file formats utilized with
	the project ActiveMQ / Red Hat JBoss A-MQ.

	ActiveMQ is a standards-based, open source messaging platform
	shipped by Red Hat (Formerly Fuse Source).

	http://activemq.apache.org/
	http://www.redhat.com/products/jbossenterprisemiddleware/amq/

2013-04-30  Mathieu Alorent  <malorent@kumy.net>

	Add more flags
	add other flags, and use regexp to check

2013-04-30  Mathieu Alorent  <malorent@kumy.net>

	implement Downtime feature
	As seen in this thread, there is a downtime feature that is not
	parsed by Augeas.

	http://lists.xymon.com/archive/2011-March/030998.html

2013-04-20  Dominic Cleal  <dcleal@redhat.com>

	Rsyslog: support :omusrmsg: list of users in actions

2013-04-15  Raphaël Pinson  <raphael.pinson@camptocamp.com>

	Passwd: allow period in user names in spec (fixes #337)

	Passwd: allow overrides in nisentry

2013-03-31  Gonzalo Servat  <gservat@gmail.com>

	Nrpe: accept any config option, remove predefined list

2013-03-30  Branan Purvine-Riley  <branan@puppetlabs.com>

	Add support for port ranges to /etc/services lens
	The `/etc/services` file on AIX can contain entries with ranges of ports. This change allows Augeas to parse such files.

	Example from an AIX /etc/services file:
	    x11                      6000-6063/tcp  # X Window System
	    x11                      6000-6063/udp  # X Window System

2013-03-21  Dominic Cleal  <dcleal@redhat.com>

	Shellvars: reinstate /etc/sysconfig/network
	Fixes #330, RHBZ#904222, RHBZ#920609

2013-03-14  Gabriel  <g2p.code@gmail.com>

	Add some autodoc comments.

	Add a lens for LVM metadata.

2013-03-11  Raphaël Pinson  <raphael.pinson@camptocamp.com>

	Update NEWS

2013-03-11  Serge Smetana  <smetana@pluron.com>

	Added lens for Dovecot config files

2013-03-01  Dominic Cleal  <dcleal@redhat.com>

	* src/augtool.c (usage): fix spelling error

2013-02-07  Raphaël Pinson  <raphael.pinson@camptocamp.com>

	Krb5: Improve performances

2013-02-07  Raphaël Pinson  <raphael.pinson@camptocamp.com>

	IniFile: Support dos eol
	  Subversion: Support dos eol
	  Desktop: Support dos eol
	  MySQL: Support dos eol
	  Samba: Support dos eol
	  Yum: Support dos eol
	  Krb5: Support dos eol

	  IniFile: Add empty_generic_nocomment
	  Rx: make no_spaces compatible with doseol
	  Schroot: Use empty_generic_nocomment

2013-02-07  Raphaël Pinson  <raphael.pinson@camptocamp.com>

	IniFile: Allow quotes inside bare values

	IniFile: Multiline values can begin with a single newline

	IniFile: Add empty_generic and empty_noindent
	  Subversion: Use IniFile.empty_noindent

	IniFile: Add entry_generic and entry_multiline_generic
	Subversion: Use IniFile.entry_multiline_generic

	IniFile: Allow spaces in entry_multiline* values

2013-02-07  Raphaël Pinson  <raphael.pinson@camptocamp.com>

	IniFile: Use Util.comment_generic and Util.empty
	  Add put test for ace

	  Lightdm: empty comments are mapped as empty
	  PHP: empty comments are mapped as empty
	  Odbc: empty comments are mapped as empty
	  Samba: empty comments are mapped as empty
	  Krb5: Fix tests for new IniFile.empty
	  MySQL: Support smart quotes and empty comments
	  Yum: Use Util.empty instead of IniFile.empty
	  Subversion: Adapt to new IniFile.empty definition
	  Systemd: Fix tests for new IniFile.empty

2013-02-07  Raphaël Pinson  <raphael.pinson@camptocamp.com>

	IniFile: Support smart quotes
	  Add support for smart quotes in IniFile lenses.
	  Fix PHP lens to support smart quotes.
	  Subversion: Adapt to smart quotes but allow ; in values
	  Schroot: Support smart quotes

	IniFile: Add ready-to-use lns_loose and lns_loose_multiline lenses

2013-02-06  Andrew Anderson  <andrew@lirn.net>

	Krb5: fix parse error with IPA generated krb5.conf

2013-02-06  Igor Pashev  <pashev.igor@gmail.com>

	* configure.ac: better detection of how to pass version script to linker
	This now also works on Illumos when using GNU ld

	Fixes https://fedorahosted.org/augeas/ticket/289

2013-02-06  Jan Pokorný  <jpokorny@redhat.com>

	lenses.tex: fix typos, single-quote cleanup

2013-01-23  Dominic Cleal  <dcleal@redhat.com>

	Shellvars: ignore network configs with brackets in their name
	SSIDs containing brackets would cause aug_init failures, as the characters are
	parsed in path expressions.

	Fixes ticket #246

2013-01-23  David Lutterkort  <lutter@redhat.com>

	augparse: add --trace option
	Using --trace will print the filenames of all modules that are loaded.

	Shellvars: ignore network configs with ! in their name
	NetworkManager would write such files, but that leads to problems during
	aug_init, as the attempt to create the node
	/augeas/files/etc/sysconfig/network-scripts/FILE!NAME will fail as that is
	not a valid path expression

	* .gitignore: ignore test result files (*.trs)

	* acinclude.m4: only turn on FORTIFY_SOURCE if it won't anger gcc
	Following libvirt commits cf9bced0 and 1c2edf0f

2013-01-10  Raphaël Pinson  <raphael.pinson@camptocamp.com>

	Quote: Allow multiple spaces in quote_spaces

2013-01-10  Jasper Lievisse Adriaanse  <jasper@humppa.nl>

	Add two files found on OpenBSD to the simplevars lens.

2013-01-08  Jasper Lievisse Adriaanse  <jasper@humppa.nl>

	The nagios filters work for Icinga too

	Modify the Nagios lens to handle resources.cfg too.
	Fixes ticket #312

2013-01-04  Raphaël Pinson  <raphael.pinson@camptocamp.com>

	AptPreferences: adjust a little bit to simplified lens

	AptPreferences: Simplify/Standardize the module

2013-01-04  Jasper Lievisse Adriaanse  <jasper@humppa.nl>

	Make sure the usage shows up properly formated.

	sync another comment with ND definition

	Sync View comment with actual definition.

	Properly document this lens.

	Basic documentation for final apt lenses and sync Menu.txt

	regen Menu.txt after recent changes.

	Move the 'coding' comment to the end of the file to fix the menu entry.

	Fix some more broken module names

	Small fixes to improve documentation:
	- Declare a module name in test_yum, so that gets taken instead of Yum.lns
	- Filter is a view, not a variable in ntpd.aug
	- Properly declare the module name nginx.aug

	Correctly set the module name, and let it actually test the Lightdm lens.

2013-01-04  David Lutterkort  <lutter@redhat.com>

	Xml test (input1): modify to mildly check handling DOS line endings

2013-01-04  Jasper Lievisse Adriaanse  <jasper@humppa.nl>

	Add support for handling the "client-output-buffer-limit" to the Redis lens.

2013-01-03  Jasper Lievisse Adriaanse  <jasper@humppa.nl>

	Some small Rx tweaks: include regexes for octal and hex and simplify ipv4 matching.
	Fixes ticket #327

	Add a lens for OpenNTPD's config file (ntpd.conf).
	Extend rx.aug with some helpful regexes while here.
	Fixes ticket #324

	Adjust the fonts lens' exclusion rule to ignore all README files
	Fixes ticket #323

2013-01-03  Raphaël Pinson  <raphael.pinson@camptocamp.com>

	Quote: improve lens usage

	Quote: lens usage

	Quote: Improve documentation for functions

	Xorg: Fix filter

2013-01-03  Jasper Lievisse Adriaanse  <jasper@humppa.nl>

	Also handle /etc/monitrc
	Fixes ticket #326

2013-01-03  Jasper Lievisse Adriaanse  <jasper@humppa.nl>

	Remove bogus use of Util.stdexcl.
	It should only be used for wildcard includes.
	Add an exclude to Util.stdexcl for "#*#" while here.

	Fixes ticket #325

2013-01-03  Raphaël Pinson  <raphael.pinson@camptocamp.com>

	Erlang and Quote are generic lenses

2013-01-02  Jasper Lievisse Adriaanse  <jasper@humppa.nl>

	Add a new lens for OpenBSD's /etc/boot.conf.
	Fixes ticket #322

2013-01-02  Raphaël Pinson  <raphael.pinson@camptocamp.com>

	Networks: networks can have weird submasks, too

	Sysctl: exclude /etc/sysctl.d/README.sysctl

	Sudoers: Allow user aliases in specs

	Systemd: Allow backslashes inside values

	Systemd: Simplify expression

	Systemd: Don't use multiple negates in regexps

2012-12-30  Jasper Lievisse Adriaanse  <jasper@humppa.nl>

	* tests/cutest.c: include sys/wait.h for WIFEXITED and WEXITSTATUS.
	Fixes ticket #321

2012-12-30  Dominic Cleal  <dcleal@redhat.com>

	Inetd: support IPv6 addresses
	Fixes ticket #320

2012-12-30  Jasper Lievisse Adriaanse  <jasper@humppa.nl>

	Shellvars: parse /etc/rc.conf.local which is found on OpenBSD.
	Fixes ticket #320

	Dhclient: on OpenBSD dhclient.conf lives in /etc/dhclient.conf
	Fixes ticket #320

	Resolv: Add two new views (family and lookup)
	Fixes ticket #320

2012-12-29  Dominic Cleal  <dcleal@redhat.com>

	* src/augrun.c: fix spelling in defnode help

2012-12-28  Raphaël Pinson  <raphael.pinson@camptocamp.com>

	AptPreferences: Add "n" to pin keys

2012-12-23  Dominic Cleal  <dcleal@redhat.com>

	Xinetd: handle missing values in lists
	Fixes ticket #307

2012-12-22  Dominic Cleal  <dcleal@redhat.com>

	Update NEWS and AUTHORS

2012-12-21  David Lutterkort  <lutter@redhat.com>

	Version 1.0.0

2012-12-21  Dominic Cleal  <dcleal@redhat.com>

	Krb5: support semicolon comments, allow empty lines within subsections
	Fixes ticket #288

2012-12-21  Pat Riehecky  <riehecky@fnal.gov>

	Krb5: support host { } subsections inside v4_name_convert, handle multiple arguments to *_enctypes settings, support ticket_lifetime
	Contains a minor incompatible lens change for permitted_enctypes,
	default_tgs_enctypes and default_tkt_enctypes settings, where labels are now
	lower-cased.

	Fixes ticket #274

2012-12-21  Raphaël Pinson  <raphael.pinson@camptocamp.com>

	Update NEWS and AUTHORS

	Merge branch 'master' of ssh://git.fedorahosted.org/git/augeas into dev/nginx

	Add Nginx lens to parse /etc/nginx/nginx.conf, bug #319

2012-12-21  David Lutterkort  <lutter@redhat.com>

	* src/Makefile.am: add $(top_builddir)/gnulib/lib to GNULIB_CFLAGS
	Needed for building under IllumOS

	Fixes https://fedorahosted.org/augeas/ticket/270

2012-12-19  Matthaus Owens  <matthaus@puppetlabs.com>

	Add /etc/puppetlabs/puppet path to puppet lenses
	In Puppet Enterprise, puppet is rooted in /etc/puppetlabs/puppet instead of
	/etc/puppet, so that is also a valid location for puppet.conf, fileserver.conf,
	and auth.conf. This commit also adds /usr/local/etc/puppet/auth.conf as a
	filter for the puppet auth lens.

2012-12-17  Marc Fournier  <marc.fournier@camptocamp.com>

	Redis: new lens and tests

2012-12-17  Raphaël Pinson  <raphael.pinson@camptocamp.com>

	Quote: Add tests for *_nil entries

2012-12-17  Marc Fournier  <marc.fournier@camptocamp.com>

	Add Quote.*quote_opt_nil variables and functions
	... which are exactly the same as  Quote.*quote_opt, except they don't
	set quotes by default.

	This patch also completes a couple of existing comments.

2012-12-17  Marc Fournier  <marc.fournier@camptocamp.com>

	augeas.vim: added a couple of keywords recently introduced.

2012-12-17  Raphaël Pinson  <raphael.pinson@camptocamp.com>

	Dhcpd: force double quotes for filename attribute, bug #311

2012-12-16  Marc Fournier  <marc.fournier@camptocamp.com>

	Postgresql: properly support quotes
	Fixes trac#317

2012-12-14  Raphaël Pinson  <raphael.pinson@camptocamp.com>

	Postfix_Transport: allow host:port and [host]:port syntaxes, bug #303

	Really test Avahi.lns in test_avahi.aug

	Update NEWS

2012-12-14  Athir Nuaimi  <athir@nuaimi.com>

	Add new Avahi lens to manage /etc/avahi/avahi-daemon.conf

2012-12-14  Raphaël Pinson  <raphael.pinson@camptocamp.com>

	Merge branch 'trac#281' of git://github.com/mfournier/augeas into review/pr4

2012-12-14  Marc Fournier  <marc.fournier@camptocamp.com>

	Add a path to pg_hba.aug, fixes Trac ticket #281.

	Htpasswd: new lens and tests

2012-12-13  Raphaël Pinson  <raphael.pinson@camptocamp.com>

	Update NEWS

	src/augtool.c: honor --echo in run_args

	src/augtool.c: print_aug_error when run_args fails

	src/augtool.c: run_args is successful if code >= 0, bug #316

2012-12-12  Raphaël Pinson  <raphael.pinson@camptocamp.com>

	Update AUTHORS

	Prepare NEWS for 1.0 release

	Add Quote.dquote_spaces and Quote.squote_spaces

	Use Quote.quote_spaces in pg_hba.aug

	Add Quote.quote_spaces

	Automagically manage quotes in pg_hba.aug

2012-12-11  Raphaël Pinson  <raphael.pinson@camptocamp.com>

	pg_hba.aug: Support multiple options (ticket #313)

	Add test for ticket 313

	pg_hba.aug: fix method to avoid clashing with hostname

2012-12-11  Andreas Ntaflos  <daff@pseudoterminal.org>

	Support hostnames/FQDNs and FQDN suffixes in pg_hba.conf
	In pg_hba.conf the "address" column may also be a hostname, FQDN or part
	of an FQDN starting with a dot, in addition to IP addresses. This adds
	support for such hostnames and hostname suffixes.

2012-12-09  Raphaël Pinson  <raphael.pinson@camptocamp.com>

	Merge branch 'master' of ssh://git.fedorahosted.org/git/augeas into dev/shellvars_newlines

2012-12-09  Dominic Cleal  <dcleal@redhat.com>

	Shellvars: add locale.conf, vconsole.conf systemd configs
	Fixes BZ#881841

2012-12-09  Raphaël Pinson  <raphael.pinson@camptocamp.com>

	Fix support for empty comments after comments

	shellvars.aug: Fix newlines after comments being mapped as Util.empty

2012-12-06  Dominic Cleal  <dcleal@redhat.com>

	Shellvars: add locale.conf, vconsole.conf systemd configs
	Fixes BZ#881841

2012-12-03  Raphaël Pinson  <raphael.pinson@camptocamp.com>

	Add rsyslog.aug

2012-11-29  Raphaël Pinson  <raphael.pinson@camptocamp.com>

	No need for comment in rabbitmq.aug (managed in erlang.aug)

	Support comments in erlang.aug and rabbitmq.aug

2012-11-28  Raphaël Pinson  <raphael.pinson@camptocamp.com>

	Add rabbitmq.aug

	Add erlang.aug

2012-11-22  Raphaël Pinson  <raphael.pinson@camptocamp.com>

	Add /etc/audit/auditd.conf to simplevars.aug

2012-11-20  Domen Kožar  <domen@dev.si>

	correctly parse escaped string literals in vim syntax file

2012-11-20  Francois Lebel  <francoislebel@gmail.com>

	Add a lens for logwatch.

2012-11-20  Raphaël Pinson  <raphael.pinson@camptocamp.com>

	Add tests for regexp builtin with flag

	Add support for an 'i' flag in regexp builtin function

2012-11-20  David Lutterkort  <lutter@redhat.com>

	* src/pathx.c: pass the number of actual arguments to the func implementation

	* src/pathx.c: match functions by name and arity
	This makes it possible to have different numbers of arguments for the same
	function, e.g. count() and count(nodeset)

	* src/pathx.c: disallow ',' in names in path expressions
	Note that this breaks backwards compatibility, since, when searching for a
	node 'a,b' you now must write "match a\,b" rather than "match a,b"

2012-11-14  Raphaël Pinson  <raphael.pinson@camptocamp.com>

	Add Puppet_Auth lens

2012-11-09  Raphaël Pinson  <raphael.pinson@camptocamp.com>

	Add aug_label to retrieve the label from a path.

2012-11-09  David Lutterkort  <lutter@redhat.com>

	Sysconfig: handle end of line comments and semicolons; strip quotes
	Fixes RHBZ #761246

	square lens: correctly process skeletons during put
	The current code would identify a L_SQUARE skeleton to match even when it
	did not, meaning we would not trigger a create in all instances where it
	was needed.

	Shellvars: add tests for semicolon handling

	* lenses/tests/test_sysconfig.aug: use a variable 'lns' for Sysconfig.lns

	* lenses/tests/test_sysconfig.aug: use a variable 'lns' for Shellvars.lns

	* tests/Makefile.am (lens_tests): add quote test

2012-10-29  Raphaël Pinson  <raphael.pinson@camptocamp.com>

	Use the Quote module in dhcpd.aug

	Use the Quote module in openvpn.aug

	Add quote.aug to easily manage quotes

2012-10-27  Raphaël Pinson  <raphael.pinson@camptocamp.com>

	vmware_config: use square lens to manage quotes

2012-10-26  David Lutterkort  <lutter@redhat.com>

	square: properly handle first lens matching empty string
	The rewriting of the ctype of (square l1 l2 l3) introduced in commit
	1484afc3 was not correct when the ctype of l1 matched the empty string: the
	rewritten ctype did not match the empty string any more.

	This patch fixes that by making sure that fa_enumerate includes the empty
	word if the language contains it.

2012-10-26  Marc Fournier  <marc.fournier@camptocamp.com>

	improved documentation for carbon/mcollective/memcached/thttpd lenses.

2012-10-26  Raphaël Pinson  <raphael.pinson@camptocamp.com>

	VMware_Config accepts values without quotes

2012-10-23  Francis Giraldeau  <francis.giraldeau@gmail.com>

	Xml: support single _and_ double quoted attribute values
	Fixes RHBZ #799885
	Fixes ticket #258

2012-10-23  David Lutterkort  <lutter@redhat.com>

	Use precise ctype of a square lens if it is indeed regular

	libfa (fa_enumerate): new function
	Function to enumerate FA's with a finite language, given a preset limit of
	words.

	* src/syntax.c (compile_test): print which test failed when missing exception
	Tests which should produce an exception, but produce a regular value didn't
	print their line info when they failed.

	* tests/modules/fail_shadow_union.aug: fix unintended test failure

2012-10-19  David Lutterkort  <lutter@redhat.com>

	Gdm: also read /etc/gdm/custom.conf by default

2012-10-19  Filip Andres  <filip.andres@gooddata.com>

	cgconfig.aug adds space between group and id

2012-10-19  David Lutterkort  <lutter@redhat.com>

	Lightdm: new lens and tests
	Fixes ticket #302
	Contributed by David Salmen

2012-10-19  jmccann  <jacob.m.mccann@usps.gov>

	Ntp: add tos directive
	Fixes ticket #297

2012-10-19  David Lutterkort  <lutter@redhat.com>

	Phpvars: support classes and public/var values
	Fixes ticket #299

	Patch by aheahe

2012-10-19  Marc Fournier  <marc.fournier@camptocamp.com>

	Memcached: new lens and tests

	Thttpd: new lens and tests

	Carbon: new lens and tests for Carbon cache.

	MCollective: new lens and tests

2012-09-24  Dominic Cleal  <dcleal@redhat.com>

	Revert f04d7dfb3fe7c54b0be650e68aa7778eaf02ea66
	This was a subtle feature which uses counters named after the setting key to
	index the values beneath it, over all instances of the setting key.  This allows
	for path expressions such as /files/etc/ssh/sshd/AllowEnv/10 to map to the
	tenth value, irrespective of how many setting lines they are split over.

	Modprobe: revert inner lens name change, fixes Modules_conf
	Modules: define own entry regexp as referenced Modprobe inner lens doesn't
	match file format

2012-09-21  Dominic Cleal  <dcleal@redhat.com>

	Modprobe: support multiline split commands
	Fixes Ubuntu bug #1054306

2012-09-17  Dominic Cleal  <dcleal@redhat.com>

	Sshd: reset seq counter for each array setting

2012-09-13  Raphaël Pinson  <raphael.pinson@camptocamp.com>

	Fix test_syslog.aug

	Capital letters are allowed in tokens in syslog.aug

	Add collectd.aug and associated test

2012-09-10  Raphaël Pinson  <raphael.pinson@camptocamp.com>

	Add postfix_virtual.aug and associated test

	Remove /etc/postfix/virtual from postfix_transport.aug

2012-09-04  Dominic Cleal  <dcleal@redhat.com>

	Sshd: permit hyphens in subsystem names

2012-09-03  Raphaël Pinson  <raphael.pinson@camptocamp.com>

	Add apt_update_manager.aug and test

	Add vmware_config.aug and test

	Allow empty lines in gtkbookmarks.aug

	Use label instead of seq in gtkbookmarks.aug

	Add gtkbookmarks.aug and test

2012-08-27  Pat Riehecky  <riehecky@fnal.gov>

	Cachefilesd: new lens for /etc/cachefilesd.conf

2012-08-23  jmccann  <jacob.m.mccann@usps.gov>

	fixes #278 multipath: allow devices to override defaults

2012-08-22  Michal Filka  <mfilka@suse.cz>

	Fixed logrotate.aug.
	    Logrotate accepts integers prefixed by a sign. Added real world
	    ntp config file example from SLES into test_logrotate.aug.

2012-08-21  Jeroen van Meeuwen (Kolab Systems)  <vanmeeuwen@kolabsys.com>

	Add a lens for Cyrus IMAP configuration file /etc/imapd.conf (includes /etc/imap/*.conf)
	Fixes ticket #296

2012-08-14  Francis Giraldeau  <francis.giraldeau@gmail.com>

	Generic square lens v4
	Lens square now takes lenses instead of regular expressions as arguments, as follow:

	  square left body right

	The left and right lenses must accept the same language. The left lens can be
	either key or del, while the right lens must be del.

	This patch changes the semantic of the square lens and is thus not backward
	compatible. Modules must be updated accordingly. The definition of the square
	lens should now be definitive, and later addition may add support for
	additionnal lenses for left and right sides.

	  * builtin.c: change definition of the square lens.
	  * get.c: use the AST to recover the left and right strings matched by the
	    square lens.Regular lenses are handled with regexp registers.
	  * put.c: the variable state->override is used to indicate to a del part of a
	    square lens that it should use the provided value instead of the saved
	    string in the skel or the default value.
	  * lens.c: change the lns_make_square to match the new structure.

	Update square lens test to use lens arguments instead of regexp. The change
	consists to replace "square re lens" into "square right lens left", where right
	and left are lenses. Hence, legacy lens is converted this way:

	Legacy:
	  let x = square re body

	New definition:
	  let x =
		let right = key re in
		let left = del re "" in
		square right body left

	This patch splits pass_square.aug into regular and recursive tests. Other tests
	are added to verify constraints on the square lens arguments and typechecking.

	Finally, this patch updates httpd and xml lens according to square args

	Changes in v2:
	  * protect arg with parenthesis in child_first and child_last macros
	  * drop flag in_square, avoid lens copy, drop square_left/right strings
	    replaced by ast for rec lens and regs for regular lens. This
	    processing is more general than the previous approach, and thus
	    will help to extends the square lens more in the future.
	Changed in v3:
	  * Split the patch into smaller units
	Changed in v4:
	  * Rejoin patches to avoid breaking make check

2012-08-14  Francis Giraldeau  <francis.giraldeau@gmail.com>

	Build AST while visiting the parse v2
	The AST records the structure of the parse according to the lens tree. The
	indices of the text matched is recorded for later use.

	Changed in v2:
	  * Additional checks for correctness
	  * Create the root node in rec_process()
	  * Merge ast_add_child() and ast_append()

2012-08-14  Francis Giraldeau  <francis.giraldeau@gmail.com>

	Fix memory leak in dbg_visit
	dbg_visit() calls format_lens() to display the lens information. The caller of
	format_lens() must free the memory allocated, just do it.

	Ignore Eclipse settings directory

2012-08-12  Dominic Cleal  <dcleal@redhat.com>

	Simplevars: use to parse /etc/default/grub_installdevice
	Ticket #290

	Hosts_Access: add hosts_options(5) support
	Fixes ticket #256

2012-08-12  Dominic Cleal  <dcleal@redhat.com>

	Hosts_Access: permit more client list formats
	  * whitespace separated lists
	  * @netgroups
	  * IPv6 hosts, inc. zone indices
	  * paths to lists of clients
	  * wildcards

	Mostly fixes ticket #256

2012-08-11  Dominic Cleal  <dcleal@redhat.com>

	Fix regression in permissions of created files
	Commit 16387744 changed temporary file creation to use mkstemp, resulting in
	new files being created with 0600 permissions.  For brand new files created
	through Augeas, their permissions stayed at 0600 rather than being set by the
	umask as before.

	  * src/transform.c (transform_save): chmod after creating new files to
	    permissions implied by the umask

2012-08-11  Dominic Cleal  <dcleal@redhat.com>

	Fix issues reported by clang static analyser
	  * src/transform.c (text_retrieve): initialise variable before use
	  * src/transform.c (filter_generate): remove duplicate variable assignment
	  * src/jmt.c (parse_add_item): ensure return is defined on goto error

	Fix augtool --transform documentation
	  * src/augtool.c (usage): -t syntax is now same as 'transform' command
	  * src/augrun.c (cmd_transform_def): improve description

	Arrange commands into groups for better help
	  * src/augrun.c: create group definitions, move commands into arrays per
	    group, update help output to iterate over and announce each group

	Ldif: new lens to read LDIF files per RFC2849

	* src/augtool.c (add_transforms): move free() to prevent free(NULL) and run on   each iteration

2012-08-10  Raphaël Pinson  <raphael.pinson@camptocamp.com>

	Add a way to specify explict transforms
	Allow specifying transforms in three different ways:
	 - an aug_transform API call
	 - a transform command for aug_srun
	 - a -t|--transform option to augtool

2012-08-10  David Lutterkort  <lutter@redhat.com>

	* src/augeas.c: use constants for "lens", "incl" and "excl"

2012-08-10  Francis Giraldeau  <francis.giraldeau@gmail.com>

	Fix typo in previous commit
	Adjust comment and remove duplicated test case for primary statement in
	dhcpd.conf lens.

	Fix bug #293 primary statement in dhcpd.conf
	The "primary" statement does not support any arguments, while it should when
	it's used in the "zone" block statement. The solution is to add the primary
	statement in the statements that requires a string argument. The primary
	statement can thus take a value or not, and thus do not cause any ambiguity in
	the put direction.

2012-08-08  Raphaël Pinson  <raphael.pinson@camptocamp.com>

	Add entry_list and entry_list_nocomment to inifile.aug Use entry_list_nocomment in subversion.aug

2012-08-07  Raphaël Pinson  <raphael.pinson@camptocamp.com>

	Add aug_rename to rename node labels without moving them in the tree.

2012-08-07  Francis Giraldeau  <francis.giraldeau@gmail.com>

	Escape double quotes when dumping regexp
	Graphviz DOT is using double quotes to quotes the string of a label. Escape
	double quotes to avoid parsing errors with graphviz when the regexp of the lens
	includes double quotes.

2012-08-02  Raphaël Pinson  <raphael.pinson@camptocamp.com>

	Update doc/naturaldocs/conf/lenses/Menu.txt

2012-08-01  Raphaël Pinson  <raphael.pinson@camptocamp.com>

	Update email address for Raphaël Pinson in AUTHORS

2012-07-31  Raphaël Pinson  <raphael.pinson@camptocamp.com>

	Make get_square case insensitive on the ending key.

2012-07-29  Dominic Cleal  <dcleal@redhat.com>

	* src/augrun.c (cmd_retrieve_help): tidy line wrapping

	NetworkManager: support semicolons in values, spaces and brackets in entry names

	* src/transform.c (xread_file): catch failed fopen, e.g. EACCES

	Fix Valgrind memcheck errors
	  * src/augtool.c (main_loop): free memory allocated by readline
	  * src/augrun.c (aug_srun): free command opts after use

2012-07-27  Raphaël Pinson  <raphael.pinson@camptocamp.com>

	Notify #augeas channel

	Add valgrind test in .travis.yml

	Add Travis CI file

	Shellvars.aug fix empty comments

	Shellvars.aug: Allow double quotes around variables in case statements

	Shellvars.aug: Add shift and exit builtins, with optional args

	Shellvars.aug: Fix empty lines after comments

	Shellvars.aug: Support matching keys in var_action (ticket #290)

	Shellvars.aug: Add dbquot for double bquoted values

	Shellvars.aug: eol_comments must begin with a space char can contain #

	Shellvars.aug: Add bquot and dollar-assigned tests

	shellvars.aug: Allow semi-colons in bquot and dollar_assign Fix wrong test using bquot and eol_comment

	Allow newlines in quoted values

	Add lns_norec to shellvars.aug and fix ambiguities in the lens.

	Fix ambiguity in shellvars.aug by making semi-colons illegal in bquot and arrays.

2012-07-26  Raphaël Pinson  <raphael.pinson@camptocamp.com>

	Allow end of line comments in fstab.aug

2012-07-23  Michal Filka  <mfilka@suse.cz>

	Cron: records can be prefixed by '-'.

2012-07-19  Danny Yates  <danny@codeaholics.org>

	vsftpd.aug: Add require_ssl_reuse option

2012-07-19  David Lutterkort  <lutter@redhat.com>

	* augeas.spec.in: add bundled(gnulib) provides
	Fixes BZ 821745

2012-07-19  Dominic Cleal  <dcleal@redhat.com>

	Prevent cross-mountpoint attacks via .augsave during saving
	Previously Augeas would open PATH.augsave for writing if a rename from PATH to
	PATH.augsave failed, then write the file contents in.  Now if the rename fails,
	it tries to unlink PATH.augsave and open it with O_EXCL first.

	Mountpoints remain permitted at either PATH or PATH.augnew provided
	/augeas/save/copy_if_rename_fails exists.

	* src/transform.c (clone_file):
	    add argument to perform unlink and O_EXCL on destination filename after a
	    rename failure to prevent PATH.augsave being a mountpoint
	* src/transform.c (transform_save, remove_file):
	    always try to unlink PATH.augsave if rename fails, only allowing PATH to be
	    a mountpoint; allow PATH or PATH.augnew to be mountpoints
	* tests/
	    test-put-mount: check PATH being a mountpoint is supported
	    test-put-mount-augnew.sh: check PATH.augnew being a mountpoint is supported
	    test-put-mount-augsave.sh: check unlink error when PATH.augsave is a mount

	Fixes BZ 772261

2012-07-19  Dominic Cleal  <dcleal@redhat.com>

	Prevent symlink attacks via .augnew during saving
	Instead of saving into a predictable PATH.augnew file, save into a securely
	created PATH.augnew.XXXXXX

	* src/transform.c (transform_save):
	    write changes to a temporary file in the same directory as the destination
	    (either the file's canonical path or the path of .augnew), before renaming

	* src/transform.c (transfer_file_attrs):
	    use fchown, fchmod etc. on the same file handles to ensure consistent
	    permission changes

	* bootstrap: add mkstemp gnulib module
	* tests/
	    test-put-symlink-augnew.sh: test symlink attack when writing .augnew
	    test-put-symlink-augsave.sh: test symlink attack when writing .augsave
	    test-put-symlink-augtemp.sh: test symlink attack via temp .augnew
	    test-put-symlink.sh: also test file modification

	Fixes BZ 772257

2012-07-18  Dan Prince  <dprince@redhat.com>

	Pythonpaste: new lens for Python Paste configs.
	Added a new lense file for Python Paste configs. This is useful
	for editing a variety of Openstack config files including,
	Nova api-paste.ini, Glance *.ini files, keystone.conf, and the
	swift config files.

2012-07-18  David Lutterkort  <lutter@redhat.com>

	Xinetd: slight formatting improvements

	Case-insensitive regexps: fix a problem with number of groups
	When we expand a regexp to a case-sensitive regexp in regexp_expand_nocase,
	it is possible that the number of groups in that regexp changes,
	e.g. /(a)|(b)/i becomes /[AaBb]/. That confuses the parser when that regexp
	is used in a union or concatenation, since it expects the match following
	the match for this regexp to be in group 3, not group 1.

	* src/regexp.c (regexp_union_n, regexp_concat_n): fix bad memory access
	Avoid calling strlen on a possibly unintialized string (since we overwrite
	the trailing '\0' with a '(' just before calling REALLOC

2012-07-18  Michal Filka  <mfilka@suse.cz>

	made xinetd.aug case insensitive on attribute names

2012-07-18  David Lutterkort  <lutter@redhat.com>

	Update gnulib to commit cabce6b8

2012-07-18  David Lutterkort  <lutter@redhat.com>

	* src/builtin.c (pr_tree): new primitive print_tree
	Useful in 'put' tests, as in

	  test lns put ".." after
	    set .. ;
	    print_tree;
	    set ..
	  = ?

2012-07-17  David Lutterkort  <lutter@redhat.com>

	aug_text_store, aug_text_retrieve: fix segfault when passed in node was NULL
	When the node existed, but had a NULL value, we segfaulted instead of
	reporting an error. We now report ENOMATCH.

	Fixes https://fedorahosted.org/augeas/ticket/283

2012-07-15  Dominic Cleal  <dcleal@redhat.com>

	Fstab: options field is optional

2012-07-13  Dominic Cleal  <dcleal@redhat.com>

	Authorized_Keys: add more tests

2012-07-13  Raphaël Pinson  <raphael.pinson@camptocamp.com>

	Add authorized_keys.aug and associated test.

2012-07-04  Raphaël Pinson  <raphael.pinson@camptocamp.com>

	simplevars.aug: Add /etc/zabbix/*.conf to includes

	simplevars.aug: Allow quotes in variables that do not begin with a quote

2012-06-28  Dominic Cleal  <dcleal@redhat.com>

	Shellvars: exclude directories from /etc/sysconfig/* wildcard
	This prevents a bug where Augeas maps a directory such as
	/etc/sysconfig/network-scripts to a lens via a matching transform and fails
	to save if the user edits /etc/sysconfig/network-scripts/ifcfg-eth0.

2012-06-19  Micah Anderson  <micah@riseup.net>

	escape all possible regular expressions before they are sent to sed

2012-06-12  David Lutterkort  <lutter@redhat.com>

	Modprobe: allow spaces around '=' in option
	Fixes https://bugzilla.redhat.com/show_bug.cgi?id=826752

2012-06-05  David Lutterkort  <lutter@redhat.com>

	* man/augtool.pod: update mentions of default load path

2012-06-01  Luc Didry  <luc@didry.org>

	Add su logrotate.conf option in logrotate.aug

2012-05-31  David Lutterkort  <lutter@redhat.com>

	Tests for aug_text_store and aug_text_retrieve

	aug_text_store, aug_text_retrieve: expose in augtool and aug_srun

	aug_text_store, aug_text_retrieve: new API functions

	* src/transform.c (text_retrieve): new function to turn tree into text

	* src/transform.c (text_store): new function to write string to tree

	* tests/test-run.c: allow loading of a module with 'use'

2012-05-31  David Lutterkort  <lutter@redhat.com>

	Allow running individual tests with test-run
	Invoking 'test-run t1 t2 t3' will only run tests t1, t2 and t3

	  * tests/test-xpath.c: move checking if a test is mentioned in argv to
	    cutest
	  * tests/cutest.c, tests/cutest.h: add should_run
	  * Makefile.am: test-xpath now uses cutest.[ch]
	  * tests/test-run.c (run_tests): check if tests is mentioned on cmd line

2012-05-31  Raphaël Pinson  <raphael.pinson@camptocamp.com>

	Add postgresql lens

	Allow eol comments in simplevars.aug

	Add lens for cups

	Add lens for samba's smbusers

2012-05-21  David Lutterkort  <lutter@redhat.com>

	* src/augrun.c (cmd_span): better synopsis

	* tests/run.tests: fix lines with trailing whitespace

	* tests/test-run.c (errtokens): bring in sync with actual error codes

2012-05-17  David Lutterkort  <lutter@redhat.com>

	* src/transform.c (load_file): remove unused variable file

2012-05-16  David Lutterkort  <lutter@redhat.com>

	Fix behavior of set with empty strings
	  * src/augrun.c (cmd_set, cmd_setm): distinguish between empty string and
	    NULL value
	  * tests/run.tests (set-args): adapt to new behavior

2012-05-12  Dominic Cleal  <dcleal@redhat.com>

	* src/try: don't overwrite gdbcmds.txt if it exists

2012-05-11  Dominic Cleal  <dcleal@redhat.com>

	Fstab: handle options with empty values ("password=")

2012-05-06  Tim Bishop  <tim@bishnet.net>

	Puppet, PuppetFileserver: add /usr/local/etc/puppet paths

2012-04-26  Raphaël Pinson  <raphael.pinson@camptocamp.com>

	Shellvars: various edge cases in case entries

	AptPreferences: #comments are accepted within entries

	NagiosCfg: /etc/nagios3/commands.cfg and /etc/nagios3/resource.cfg have their own syntax, allow spaces in values.

	/etc/default/whoopsie is an IniFile

	Merge branch 'master' of ssh://git.fedorahosted.org/git/augeas

	Mke2fs: Add support for default_mntopts, enable_periodic_fsck, and auto_64-bit_support.

2012-04-26  Dominic Cleal  <dcleal@redhat.com>

	Make creating NULL value nodes more intuitive
	* src/augrun.c: add "touch" command to create node if it doesn't exist, make
	  <VALUE> argument to "set" and "setm" optional

	Fixes ticket #276

2012-04-23  David Lutterkort  <lutter@redhat.com>

	* src/augeas.h: include 'extern "C"' wrapper for C++
	Fixes https://fedorahosted.org/augeas/ticket/272

	Patch from Igor Pashev

2012-04-22  Raphaël Pinson  <raphael.pinson@camptocamp.com>

	Use Sys.getenv("HOME") in dput.aug

2012-04-19  Raphaël Pinson  <raphael.pinson@camptocamp.com>

	PHPVars: map arrays with @arraykey subnodes to make working paths

2012-04-12  Michal Filka  <michal.filka@suse.cz>

	Shellvars: handle bash's implicit concatenation of quoted strings

2012-04-12  Josh  <jokajak@gmail.com>

	Grub: add /boot/grub/grub.conf to transform

2012-04-12  Luc Didry  <luc@didry.org>

	Use Sys.getenv('HOME') in filter instead of ~ since it's not expanded

2012-04-12  Brett Porter  <brett@apache.org>

	Properties: improve handling of whitespace, empty props, and underscores in keys
	This brings the lens closer to the Java specification

	With help from Carlos Sanchez <csanchez@maestrodev.com> and Dominic Cleal
	<dcleal@redhat.com>

2012-04-11  Raphaël Pinson  <raphael.pinson@camptocamp.com>

	Use a more standard way of writing LGPL v2+ in lens headers

2012-04-10  Raphaël Pinson  <raphael.pinson@camptocamp.com>

	postfix_transport.aug also applies to virtual (5)

	Add postfix_transport.aug and associated test.

	Add subversion lens and associated test.

	Add networkmanager lens to tests and doc

	Add networkmanager.aug and associated test file.

2012-04-09  Dominic Cleal  <dcleal@redhat.com>

	Sudoers: allow quoted strings in Defaults parameters
	Fixes bug #263

2012-04-08  Dominic Cleal  <dcleal@redhat.com>

	Debctrl: allow control extensions for Python packages
	Fixes bug #267

	Debctrl: fixed package paragraph keywords, allow variables for version numbers in dependency lists, allow DM-Upload-Allowed keyword
	Fixes Debian bug #650887

2012-04-06  Dominic Cleal  <dcleal@redhat.com>

	AUTHORS: updated from recent commits

2012-04-06  Jason Kincl  <jkincl@gmail.com>

	Xymon: new lens for Xymon config files
	Fixes ticket #266

2012-04-06  Jim Meyering  <meyering@redhat.com>

	compile_exp: don't return an uninitialized pointer upon failure
	As a result of its improved flow analysis gcc-4.7.0 20111202 reported:

	  syntax.c: In function 'compile_exp':
	  syntax.c:1694:5: warning: 'v' may be used uninitialized in this \
	  function [-Wmaybe-uninitialized]

	However, compile_exp calls many functions that return values that are
	then assigned to "v".  Only two of those had a problem: in each there
	is an error path by which the returned pointer is not initialized.
	* src/syntax.c (compile_concat): Initialize "v".
	(compile_minus): Likewise.

2012-04-04  Duncan Mac-Vicar P  <dmacvicar@suse.de>

	bootloader is also present in shellvars_list, exclude from shellvars.

2012-04-01  Dominic Cleal  <dcleal@redhat.com>

	Sudoers: allow "!" as a type of Defaults entry
	Fixes Debian bug #650079

	Modprobe: support softdep command
	Fixes Debian bug #641813

2012-03-29  Dominic Cleal  <dcleal@redhat.com>

	* src/augrun.c (nexttoken): support \t and \n in aug_srun tokens
	Fixes bug #265

2012-03-23  Raphaël Pinson  <raphink@gmail.com>

	Add netmask to hosts_access.aug

2012-03-18  Dominic Cleal  <dcleal@redhat.com>

	Shellvars: add systemd's /etc/os-release file

	Systemd: new lens to parse systemd unit files

	* src/augeas.c (aug_save): remove loop that added a second iteration around   children of /files, causing multiple saves in newfile and noop modes when   editing under /files/boot
	Fixes ticket #264

2012-03-17  Dominic Cleal  <dcleal@redhat.com>

	Qpid: new lens to read Apache Qpid daemon/client configs
	Contributed by Andrew Replogle.

2012-03-12  David Lutterkort  <lutter@redhat.com>

	Make sure reloading discards changes after save with mode 'newfile'

2012-03-10  Dominic Cleal  <dcleal@redhat.com>

	Util: add *.bak and *.old to stdexcl, to match files in /etc/sysconfig

	Fix excl filters that only specify a filename or wildcard
	  * src/transform.c (transform_validate): only normalise excl paths with
	    directory separators into absolute paths
	  * src/transform.c (filter_generate): don't apply root prefix to excl filter
	    values when only comparing the base filename

	Shellvars: exclude non-shell files in tests/root/etc/sysconfig

	Shellvars: add /etc/selinux/config

2012-03-06  Dominic Cleal  <dcleal@redhat.com>

	Shellvars: include /etc/{default,sysconfig}/* and list exceptions instead

2012-03-03  Tim Mooney  <Tim.Mooney@ndsu.edu>

	src/augtool.c: rename echo to echo_commands to fix differing types reported with Solaris linker
	Fixes ticket #262

2012-02-24  Dominic Cleal  <dcleal@redhat.com>

	Up2date: change tree to distinguish between empty values and empty lists

	Up2date: change tree to fix ambiguity during put, remove list of known config options and separation of possible values

2012-02-22  Dominic Cleal  <dcleal@redhat.com>

	Protocols: change tree to support protocols named "a/n" and "tp++"

	Shellvars: remove non-shell files, up2date now has a lens, move updatedb.conf to Simplevars
	Fonts: exclude README

	Sep: add semicolon

	Ntp: allow deprecated 'authenticate' setting

2012-02-21  Raphaël Pinson  <raphink@gmail.com>

	Add up2date.aug and associated test file

2012-02-17  Raphaël Pinson  <raphink@gmail.com>

	Support \r in httpd.aug

	Support \r in comments in util.aug

	Support \r\n in xml.aug

	Do not allow \r in comment_or_eol

	Add Util.doseol

2012-02-13  David Lutterkort  <lutter@redhat.com>

	* src/transform.c (clone_file): do not leak from_fp

2012-02-13  Raphaël Pinson  <raphink@gmail.com>

	Allow commands without full path if they begin with a lowcase letter in sudoers.aug

	Allow = in commands in sudoers.aug (but force ! or / as first character if not an alias)

	Use Build.opt_list in sudoers.aug

2012-02-13  Dominic Cleal  <dcleal@redhat.com>

	Shellvars: add BSD's /etc/rc.conf
	Fixes ticket #255

2012-02-12  Dominic Cleal  <dcleal@redhat.com>

	Improve aug_srun quoting to permit concatenation and better detect bad quoting
	* src/augrun.c (nexttoken): permit shell-like concatenation of quoted and
	  unquoted strings, detect unmatched quotes and raise AUG_ECMDRUN.
	* tests/run.tests: add lots of tests to cover quoting mismatches, single and
	  double quote combinations, courtesy of David Schmitt

	Passwd: allow asterisk in password field
	Fixes ticket #255

	Pam: exclude /etc/pam.d/README
	Fixes ticket #255

2012-02-10  Raphaël Pinson  <raphink@gmail.com>

	Simplify Sudoers.sto_to_com_user to improve performance. Use more standard constructs.

	Add continued lines to rx.aug and sep.aug

2012-02-09  Raphaël Pinson  <raphink@gmail.com>

	Improve grub.aug's performances slightly

	Improve keepalived.aug: cut typechecking time and resident size by 2.

	Use Cron.shellvar in anacron.aug

	Simplify Cron.key_re to improve typechecking of cron.aug

	Allow # and ; in quoted values in inifile.aug (Fix ticket #243)

2012-02-08  Terence Haddock  <thaddock@tripi.com>

	* lenses/tests/test_iptables.aug: test that we accept blank lines

2012-02-08  Francis Giraldeau  <francis.giraldeau@gmail.com>

	Allocate exception instead of static const value
	The static const value returned by exn_error() may cause SIGSEGV in case
	the value is further changed. To avoid this situation, the structure is
	allocated early in aug_init instead and released in aug_close, and is
	accessible via aug->error->exn. The resulting exception value can be
	modified without adverse effect.

2012-02-08  Duncan Mac-Vicar P  <dmacvicar@suse.de>

	Shellvars: autoload some SuSe and RHN specific files

2012-02-07  David Lutterkort  <lutter@redhat.com>

	Add very simplistic leak test

	Fix some memory leaks
	  * src/augeas.c (tree_from_transform): do not do unneeded strdups which
	    lead to leaks
	  * src/lens.h: any lens can carry a jmt when it is recursive; this was a
	    pretty serious issue which could have lead to memory corruptions, since
	    struct lens was not right for that
	  * src/lens.c (free_lens, lens_release): call jmt_free for all lenses

2012-02-07  Raphaël Pinson  <raphink@gmail.com>

	Fix test-save by allowing (empty | comment)* in yum.aug.

2012-02-07  Dominic Cleal  <dcleal@redhat.com>

	CronAllow: remove accompanying test, moved into Simplelines test earlier

2012-02-06  David Lutterkort  <lutter@redhat.com>

	* src/transform.c (transform_save): different errors for parse and put failure

2012-02-06  David Lutterkort  <lutter@redhat.com>

	Graphviz: remove since it can not be typechecked
	Typechecking for the Graphviz lens requires too much memory right now,
	which makes it impossible to run 'mke check' on a reasonably sized machine
	(6GB memory)

	Backing out the lens until we can figure out a way to fix it so that 'make
	check' works with it in practice.

2012-02-06  Raphaël Pinson  <raphink@gmail.com>

	Disable recursive mode in graphviz.aug since it fails in the put direction.

	Pass Util.empty with entry in Build.block_generic. Fix ambiguity with Util.empty in graphviz.aug.

2012-02-03  Raphaël Pinson  <raphink@gmail.com>

	graphviz.aug: space is optional before options

	graphviz.aug: names can be empty

	Support crazy example in graphviz.aug

	Add a simple graphviz.aug and associated test

	Use Build.block_newlines in keepalived.aug

	Build.block_newlines takes a comment parameter, newline is optional

	Add variables for default delimiters and regexps in build.aug

2012-02-02  David Lutterkort  <lutter@redhat.com>

	* src/transform.c (filter_generate): take root into account for excludes
	When matching an exclude pattern against a path, only try to match against
	the part of path after the root. The paths found by globbing include
	patterns contain the root.

	Fixes bug #252

2012-02-02  Raphaël Pinson  <raphink@gmail.com>

	Improve logrotate, use Build, Rx, Sep

	Add lbracket and rbracket to sep.aug

	Add tests for build.aug

	Add Build.block_newlines and use it in xinetd.aug

	Rewrite xinetd.aug with Build, Sep, Rx

	Allow to set lbracket_re and rbracket_re in Build.block_generic

	Add Util.delim and use it in Sep.space_equal

	Add Build.block_setdefault

	Add default_lbracket and default_rbracket to Build.block_generic

	Add blocks to build.aug, add comment_noindent to util.aug Add test_build.aug

2012-02-01  Raphaël Pinson  <raphink@gmail.com>

	Support dollar assignment ($(bar)) in shellvars.aug

	Parse functions in shellvars.aug

	Shellvars.aug allows multiple elif statements

	Add test_fonts.aug

2012-01-31  Dominic Cleal  <dcleal@redhat.com>

	CronAllow: remove lens, add files to the Simplelines lens

2012-01-31  Raphaël Pinson  <raphink@gmail.com>

	Add fonts.aug

	Add ldso.aug and test

	Fix author

	Add /etc/sysctl.d to sysctl.aug, improve lens and add it to docs.

	Add protocols.aug and associated test

	Add /etc/wgetrc to simplevars.aug

	Add simplelines.aug and test

	Add simplevars.aug and associated test

	Add inputrc.aug and associated test

	Add anacron.aug and associated test

	cowpoke.conf

2012-01-30  Raphaël Pinson  <raphink@gmail.com>

	Ignore allow.pamlist from pam.aug

	Add a few files to shellvars.aug

	Add fuse.aug and associated test

2012-01-27  Dominic Cleal  <dcleal@redhat.com>

	Vfstab: new lens for /etc/vfstab config on Solaris

2012-01-22  Dominic Cleal  <dcleal@redhat.com>

	Automounter: exclude /etc/auto_master for Solaris, small tidyup

	Automounter: exclude /etc/auto.master

	Automaster: change to lowercase for consistency with Automounter

	Automounter: new lens to parse automounter maps (/etc/auto.*)

2012-01-21  Dominic Cleal  <dcleal@redhat.com>

	AutoMaster: new lens to parse autofs auto.master files

	CronAllow: new lens to parse both cron/at allow/deny files
	Cron: exclude cron allow/deny files

	Nsswitch: remove long list of databases, match by regexp

	PamConf: new lens to parse /etc/pam.conf with the additional service field

	Pam: allow uppercase chars in 'types', remove /etc/pam.conf from filter
	PamConf: new lens to parse /etc/pam.conf with the additional service field

	Networks: handle multiple missing network octets, fix sequencing of aliases

	Nsswitch: add extra databases used on Solaris

	Shells: permit same-line comments

2012-01-20  Dominic Cleal  <dcleal@redhat.com>

	Netmasks: new lens for parsing /etc/inet/netmasks on Solaris

2012-01-19  Travis Groth  <tgroth@gmail.com>

	Nsswitch: add passwd_compat, group_compat and shadow_compat GNU extensions

2012-01-18  Raphaël Pinson  <raphink@gmail.com>

	Add channels.aug and associated test.

2012-01-14  Dominic Cleal  <dcleal@redhat.com>

	Grub: parse "password --encrypted" properly, add tests for file subnode
	Fixes ticket #250

2012-01-11  Francis Giraldeau  <francis.giraldeau@gmail.com>

	Fix fatest linking with libfa
	fatest requires libfa symbols which are not exported by libaugeas library.

2012-01-09  Lubomir Rintel  <lubo.rintel@gooddata.com>

	Correctly parse empty object and arrays in JSON
	Add a test case.
	Fix from David Lutterkort <lutter@redhat.com>.

	https://fedorahosted.org/augeas/ticket/248

2012-01-09  Lubomir Rintel  <lubo.rintel@gooddata.com>

	Allow JSON number literals to be followed by whitespace
	Add a test case.

	Fixes https://fedorahosted.org/augeas/ticket/247

2012-01-09  David Lutterkort  <lutter@redhat.com>

	* build/aux/move-if-change: refresh with latest from gnulib
	Taken from gnulib commit 1602f0af

2012-01-02  Dominic Cleal  <dcleal@redhat.com>

	* src/augtool.c (main_loop): re-open rl_outstream/stdout only when stdout isn't   a tty (fixes -e -i); use /dev/tty instead of /dev/stdout when re-opening to   prevent permission errors
	Fixes ticket #241

2011-12-31  Dominic Cleal  <dcleal@redhat.com>

	* tests/test-augtool.sh: fix broken gsed check

2011-12-30  Dominic Cleal  <dcleal@redhat.com>

	Remove Linux-isms so tests can run on Solaris
	* tests/test-augtool-modify-root.sh: /bin/sh -> /bin/bash
	* tests/test-augtool.sh: /bin/sh -> /bin/bash, use 'gsed' if available (GNU sed
	  is required)
	* tests/test-load.c: don't use GNU sed in-place extension
	* tests/test-preserve.sh: handle Solaris `ls -il` output

	* bootstrap: add strchrnul gnulib module (for Solaris)

2011-12-24  Jim Meyering  <meyering@redhat.com>

	Don't use variables uninitialized upon error
	* src/transform.c (filter_generate): Move declarations and
	  initializations of pathv and pathc to precede possible
	  "goto error;" via which those variables are used.

2011-12-23  Francis Giraldeau  <francis.giraldeau@gmail.com>

	fix fatest linking

2011-12-19  Raphaël Pinson  <raphink@gmail.com>

	Rebase yum.aug on inifile.aug, support comments (except in lists) Fix ticket #217

	Add @return to shellvars.aug

2011-12-19  Erinn Looney-Triggs  <erinn.looneytriggs@gmail.com>

	Create lens and tests for sssd.conf heavily based on mysql and php lenses.

2011-12-18  Raphaël Pinson  <raphink@gmail.com>

	aliases.aug: commands can be fully enclosed in quotes (Fix ticket #229)

2011-12-18  Erinn Looney-Triggs  <erinn.looneytriggs@gmail.com>

	Add in single-request-reopen into lens and tests.

2011-12-16  Michael Chapman  <mike@very.puzzling.org>

	Add missing argument to escape()
	Fixes ticket #242.

2011-12-10  Dominic Cleal  <dcleal@redhat.com>

	* src/augeas.c (tree_root_ctx): create context path if it doesn't exist

2011-12-09  Raphaël Pinson  <raphink@gmail.com>

	Add libxml2-devel to requirements in HACKING

2011-12-08  Raphaël Pinson  <raphink@gmail.com>

	Debian-based distributions use /etc/mdadm/mdadm.conf

2011-12-05  Raphaël Pinson  <raphink@gmail.com>

	Support include() in phpvars.aug

	Add unit test for bug #239

	In aug_to_xml: do not replace pathin with '/*' unless the length is 0 or pathin is '/' (Fix ticket #239)

2011-12-03  Richard W.M. Jones  <rjones@redhat.com>

	pkg-config: Augeas requires libxml2.

2011-12-02  David Lutterkort  <lutter@redhat.com>

	Version 0.10.0

2011-12-02  Dominic Cleal  <dcleal@redhat.com>

	Implement escape sequences for whitespace, quotes and square brackets in command arguments to match Puppet provider.
	  * \<sp> or \<tab> will be escaped if not in quotes, else literal
	  * \' or \" will be escaped if in the same type of quotes, else literal
	  * \\ will be escaped
	  * \[ or \] will be passed through so they're escaped in path expressions

	  * src/augrun.c: implement escape sequences
	  * tests/run.tests: add covering tests

2011-12-02  Raphaël Pinson  <raphink@gmail.com>

	Add approx.aug and test to Menu.txt

	Document approx.aug

	Fix nocommand as nocomma in test_aliases.aug

	Add documentation to test_aliases.aug

2011-12-01  David Lutterkort  <lutter@redhat.com>

	* src/augtool.c (print_aug_error): print newline after error details

	augtool: rename 'print-xml' to 'dump-xml'
	That way, 'p' tab-completes to print as before.

	* src/augeas.c (tree_from_transform): handle alloc failure better

	* src/augeas.c (aug_init): make more robust
	  - propagate errors from aug_set and similar
	  - only call api_exit if we called api_enter before

	* src/augeas.c (aug_init): pull logic to set up loadpath into separate function

	* src/augeas.c (init_root): properly report out-of-memory

	* tests/test-api.c (testToXml): swap expected/actual values in assertions

	* src/augeas.c (aug_to_xml): rename 'path' attr on root to 'match'
	The attribute contains a path expression, not just a path.

2011-12-01  David Lutterkort  <lutter@redhat.com>

	Make it possible for aug_init to report initialization errors
	Sometimes initialization fails for mundane reasons, like syntax errors in
	lens files. So far, it was not possible for callers to report details for
	these errors, because they always got a NULL augeas handle back.

	The new flag AUG_NO_ERR_CLOSE causes aug_init to return a handle even if
	initialization fails, so that callers can use the aug_error* functions to
	extract error details before calling aug_close.

	  * src/augeas.c (aug_init): return a partially initialized struct augeas
	    if AUG_NO_ERR_CLOSE is set
	  * src/augeas.h (aug_flags): add AUG_NO_ERR_CLOSE
	  * src/augtool.c: call aug_init with AUG_NO_ERR_CLOSE and print errors on
	    initialization failure

2011-12-01  David Lutterkort  <lutter@redhat.com>

	Update documentation for augtool/augrun and man page

	Adjust more copyright notices

	Fstab: allow ',' in file names
	Fixes BZ https://bugzilla.redhat.com/show_bug.cgi?id=751342

	* man/augtool.pod: update copyright years, regenerate

2011-12-01  Raphaël Pinson  <raphink@gmail.com>

	Sub::Install is not necessary to override functions in Augeas.pm

	Fix white_spaces into with_spaces in test_faidiskconfig.aug

	Add documentation to test_fai_diskconfig.aug

	Extend copyright to 2011 in src/*

	Add test_xml.aug to the lens Menu.txt

	Improve documentation in test_xml.aug

	Add test_keepalived.aug doc to lens Menu.txt and keepaved.aug

	Add documentation to test_keepalived.aug

	Improve documentation for sep.aug

	Improve documentation for rx.aug

2011-12-01  Dominic Cleal  <dcleal@redhat.com>

	src/augrun.c: fix parsing of commands with trailing whitespace tests/test-run.c: use : to write tests with trailing whitespace

2011-12-01  Raphaël Pinson  <raphink@gmail.com>

	Improve documentation for access.aug and test_access.aug

	Fix examples note in inifile.aug

	Add examples note to reprepro_uploaders.aug

	Finalize doc for test_reprepro_uploaders.aug

2011-12-01  Dominic Cleal  <dcleal@redhat.com>

	Fix path context with trailing slash or whitespace

	Add tests from Puppet's Augeas provider, some commented out until fixed.

2011-12-01  Raphaël Pinson  <raphink@gmail.com>

	Fix test_inifile.aug's typo

	Add documentation to test_inifile.aug

	Better integration of tests in NaturalDocs, verbatim code display in doc.

2011-11-30  Raphaël Pinson  <raphink@gmail.com>

	Add unit tests for aug_to_xml

	libaugeas must now be linked to libxml, too.

2011-11-30  Dominic Cleal  <dcleal@redhat.com>

	* augeas.spec.in: add build req on libxml2-devel

2011-11-29  Raphaël Pinson  <raphink@gmail.com>

	Add an Examples section to reprepro_uploaders.aug's header

	ARG_CHECK errors when condition is met. Invert conditions in aug_to_xml.

2011-11-29  Francis Giraldeau  <francis.giraldeau@gmail.com>

	Sudoers: add more parameter flags/options
	Fixes bug #143

2011-11-29  Raphaël Pinson  <raphink@gmail.com>

	Add aug_to_xml to public API

2011-11-29  David Lutterkort  <lutter@redhat.com>

	New error code AUG_EBADARG and ARG_CHECK macro
	Use ARG_CHECK to check arguments passed through the public API for
	validity; invalid paramters lead to an error of AUG_EBADARG.

	  * src/augeas.h (aug_errcode_t): new error code AUG_EBADARG
	  * src/augeas.c (errcodes): human-readable text for AUG_EBADARG
	  * src/errcode.h (ARG_CHECK): new macro

2011-11-29  Raphaël Pinson  <raphink@gmail.com>

	Improve doc in test_reprepro_uploaders.aug and update Menu.txt for lenses.

	Fix parsing of tests in Augeas.pm, add a test doc to test_reprepro.aug

	Fix parsing of 'in[ \t\r\n]+let' in Augeas.pm

2011-11-29  David Lutterkort  <lutter@redhat.com>

	Normalize lens filters to absolute paths
	It doesn't really make sense to specify relative paths in lens filters; we
	treat them as absolute to avoid unpleasant surprises for users who think
	relative paths are relative to AUGEAS_ROOT. With this change, they are.

	Fixes bug #238

2011-11-29  David Lutterkort  <lutter@redhat.com>

	* tests/cutest.c: run one test when CUTEST env var is set

2011-11-29  Raphaël Pinson  <raphink@gmail.com>

	Add support for 'not' in reprepro_uploaders.aug

	Improve CSS for NaturalDocs

2011-11-28  Dominic Cleal  <dcleal@redhat.com>

	augtool: change readline tab completion to be context-aware

	path expressions: prepend context from /augeas/context to all relative paths
	A path context is prepended to all paths that do not begin at the root,
	changing relative paths into absolute paths.  The context is stored in
	/augeas/context and defaults to the value "/files".

2011-11-28  David Lutterkort  <lutter@redhat.com>

	* src/transform.c (load_file): fix segfault when storing span in NULL tree

	* src/syntax.c (print_tree): print something for a NULL tree

2011-11-28  Raphaël Pinson  <raphink@gmail.com>

	Add header to shellvars.aug

	Add Kdump and Ssh to Menu.txt

	Fix NaturalDocs CSS a bit

	Add a Tests and Examples group in naturaldocs

	Improve documentation for reprepro_uploaders.aug

	Add 'contain' subnodes to reprepro_uploaders.aug and improve documentation.

	Simplify logical tree in reprepro_uploaders.aug

	Improve parameter parsing in reprepro_uploaders.aug

	Add reprepro.aug and associated test.

	Fix small type in comment

2011-11-23  Raphaël Pinson  <raphink@gmail.com>

	Add support for until and select loops in shellvars.aug

	Add elif support to shellvars.aug

2011-11-22  Raphaël Pinson  <raphink@gmail.com>

	Add big WARNING to aptconf.aug

	Register modules.aug with naturaldocs

2011-11-22  Tom Limoncelli  <tal@whatexit.org>

	Xendconfsxp: new lens and tests for Xen configuration

2011-11-22  David Lutterkort  <lutter@redhat.com>

	* tests/Makefile.am (lens_tests): add missing tests

2011-11-22  Raphaël Pinson  <raphink@gmail.com>

	Add modules.aug and associated test file (Fix ticket #236)

	Add backuppchosts.aug and test (Fix ticket #233)

	mdadm.aug: dev_device cannot match dev_partitions_re

	Fix test_phpvars.aug as per using Util.empty_c_style

	Clean wrong lines in modprobe.aug's header

	Update tests and documentation for new lenses

	Add desktop.aug and associated test.

	Add aptconf.aug and associated test.

	Use Util.empty_c_style in phpvars.aug and don't map empty comments in Util.comment_multiline

	Add support for case in shellvars.aug

	Add for and while loops to shellvars.aug

	Adapt modules_conf.aug and test file to refect the changes in modprobe.aug

	Refactor modprobe.aug: * Parse commands in install/remove stanzas; * Drop support for include as it is not documented in manpages and no unit tests are shipped.

2011-11-21  Raphaël Pinson  <raphink@gmail.com>

	Fix unpriviliged into unpriviliged in test_postfix_master.aug, too.

	Add one-liner unit test for shellvars.aug

	shellvars.aug: Refactor lens, add end-of-line comment support, if/then/else/fi conditionals, one-liners support

	phpvars.aug: Add test for bash-style comment, improve eol comments, use generic_function in simple_function definition

	Parse /etc/mailname with hostname.aug

	Add hosts_access.aug to parse /etc/hosts.{allow,deny} and associated test.

2011-11-18  Raphaël Pinson  <raphink@gmail.com>

	Double quotes are allowed in variable names in phpvars.aug

	Refactor entries in phpvars.aug

	PHP tags are case-insensitive in phpvars.aug

	Add include_once() to phpvars.aug

	Fix typo in postfix_master.aug (Fix ticket 234)

	Allow empty lines at end of files in phpvars.aug

	Better define() support in phpvars.aug

	Support bash-style comments and define() functions in phpvars.aug

	Implement end-of-line comments in phpvars.aug and add tests. In order to add this, I had to forbig the use of /.*;[ \t]*\/\/.*/ in values. There might be a way to make this regexp more strict to be less intrusive, but I believe this pattern is not very common anyway, so I think it's safe to keep it this way for now.

	Cleanup phpvars.aug, rebase it on sep.aug and util.aug and prepare the way to support end-of-line comments

	Fix comment_multiline and add a test file for util.aug

	Spaces are not mandatory around = in phpvars.aug

	Fix open_php and close_php tags in phpvars.aug (Fix ticket 232)

2011-11-17  Jim Meyering  <jim@meyering.net>

	avoid double-free upon fclose failure
	  * src/transform.c (transform_save): Upon initial fclose failure, set "fp
	    = NULL;" so that we don't attempt to free/close "fp" while cleaning up
	    upon "goto done".

2011-11-17  David Lutterkort  <lutter@redhat.com>

	* lenses/util.aug: do not set caml mode for Emacs

	* lenses/rx.aug: delete trailing whitespace

2011-11-17  Raphaël Pinson  <raphink@gmail.com>

	Parse pam.conf in pam.aug

	Add hostname.aug

	Add networks.aug lens

	Add host_conf.aug lens

	Add flag_line to build.aug

	Add blkid.conf to shellvars.aug

2011-11-16  Raphaël Pinson  <raphink@gmail.com>

	Add doc to grub.aug (ticket 33)

	Support debug flag in keepalived.aug

	Fix origin entries in aptpreferences.aug

2011-11-15  Dominic Cleal  <dcleal@redhat.com>

	Resolv: Permit end-of-line comments
	Fixes ticket #223

	Krb5: Allow a [pam] section for pam_krb5 (possibly deprecated)
	Fixes ticket #225

2011-11-15  Roman Rakus  <rrakus@redhat.com>

	Kdump: new lens and tests

2011-11-15  Dominic Cleal  <dcleal@redhat.com>

	aug_srun: add 'insert' and 'move' command aliases to 'ins' and 'mv'

2011-11-15  Michael Chapman  <mike@very.puzzling.org>

	Dhcpd: slashes must be double-quoted
	In dhcpd.conf, tokens containing slashes must be double-quoted.

	Fixes the following dhcpd error:

	  /etc/dhcpd.conf line 4: filename string expected.
	  include /
	          ^
	  Configuration file errors encountered -- exiting

2011-11-15  Michael Chapman  <mike@very.puzzling.org>

	Access: parse user@host and (group) in users field
	pam_access matches the hostname in user@host against the system's own
	hostname, which allows a single access.conf to be shared amongst
	multiple machines yet still contain per-server rules.

	pam_access also allows group names to be optionally enclosed in
	parentheses to disambiguate them from user names.

2011-11-15  Michael Chapman  <mike@very.puzzling.org>

	Access: field separator need not be surrounded by spaces
	For compatibility with the old behaviour and to match the examples in
	the PAM documentation, new entries are still emitted with spaces.

	Dhcpd: add Red Hat's dhcpd.conf locations
	RHEL 5 uses /etc/dhcpd.conf.
	RHEL 6 uses /etc/dhcp/dhcpd.conf.

2011-11-15  David Lutterkort  <lutter@redhat.com>

	Mdadm: use case-insensitive regexps

2011-11-15  David Lutterkort  <lutter@redhat.com>

	* src/fa.c (totalize): handle case-insensitive FA's properly
	The convention for case-insensitive FA's is that they do not contain any
	transitions on [A-Z], effectively removing upper case letters from the
	alphabet.

	totalize used to create transitions into the crash state that did
	transition on upper case letters, violating the convention.

2011-11-13  David Lutterkort  <lutter@redhat.com>

	* src/builtin.c (regexp_match): new helper to test a regexp

2011-11-13  Matthew Booth  <mbooth@redhat.com>

	Mdadm_conf: new lens for /etc/mdadm.conf

2011-11-13  David Lutterkort  <lutter@redhat.com>

	* lenses/tests/test_iptables.aug: fix syntax error

2011-10-31  Raphaël Pinson  <raphink@gmail.com>

	Allow digits in ipt_match keys (bug #224)

2011-10-18  David Lutterkort  <lutter@redhat.com>

	* src/syntax.c: fix composition of unit and function
	For a composition with types 'unit ; a -> b' we tricked ourselves into
	doing function composition, when we should do unit composition.

	* src/syntax.c (type_names): fix order of names

2011-10-17  Michael Chapman  <mike@very.puzzling.org>

	Fix regular expression escaping
	This patch fixes:

	  /[\/]/

	Previously, this matched either a backslash or a slash, since \/ was not
	an escape sequence known to unescape(). Now this matches only a slash.

	We pass an extra argument to escape() and unescape() listing the extra
	characters that should be handled. STR_ESCAPES and RX_ESCAPES provide
	the extra characters for strings and regexps respectively, and NULL may
	be passed if no extra characters should be handled.

2011-10-17  David Lutterkort  <lutter@redhat.com>

	Json: fix handling of whitespace
	We just gobble up whitespace after various expressions as part of the lens
	processing that expression.

2011-10-14  Raphaël Pinson  <raphink@gmail.com>

	Spaces are allowed before colons in aliases.aug

	Empty options are allowed in exports.aug

	Entries outside Host statements are allowed (though not documented) in ssh.aug

	Allow indentations in array_entry in ssh.aug

	Small improvements to squid.aug. This lens is inconsistent and should probably be deeply reviewed, although that might break compatibility.

	Not really shellvar entries in cron.aug, semi-colons are allowed for email addresses

	Add schroot to tests and doc

	Add schroot.aug lens

2011-10-13  Raphaël Pinson  <raphink@gmail.com>

	Simplify rsyncd.aug and support indented anon entries and records.

2011-10-10  Raphaël Pinson  <raphink@gmail.com>

	Small adjustments in postfix_master.aug

2011-10-10  Michael Chapman  <mike@very.puzzling.org>

	Fix escape sequences in bracket expressions
	With POSIX extended regexps, escape sequences are not recognised within
	bracket expressions. Any escape sequences passed through by the
	unescape() function would be misinterpreted. For instance, the regular
	expression:

	  /[\.-]/

	matches any of the three characters backslash, dot or hyphen, when the
	lens author most likely wanted dot or hyphen only.

	This patch cleans up the bracket expressions in all lenses, with the
	exception of \/ and \\ sequences. These needs to be handled by
	unescape() directly.

2011-10-10  Michael Chapman  <mike@very.puzzling.org>

	FAI_DiskConfig: Fix invalid escape sequence \s
	It should be expanded to [ \n\t].

2011-10-10  Michael Chapman  <mike@very.puzzling.org>

	Cron: Fix parsing of numeric fields
	In:

	  let num = /[0-9\*][0-9\/,-\*]*/

	the hyphen was treated as a range, not a literal character. This
	erroneously allowed a whole bunch of characters (including all uppercase
	letters) in numeric fields.

2011-10-10  Michael Chapman  <mike@very.puzzling.org>

	Cgconfig: Fix parsing of group names
	In:

	  let id = /[a-zA-Z0-9_\-\/\.]+/

	the hyphen was treated as a range, not a literal character.

2011-10-10  Raphaël Pinson  <raphink@gmail.com>

	Revert badly applied series or patches.
	This reverts commit dc9ef16bc7a4cc45e4d66ea69b4bdf0038e816bb.

2011-10-10  Michael Chapman  <mike@very.puzzling.org>

	Cgconfig: Fix parsing of group names
	In:

	  let id = /[a-zA-Z0-9_\-\/\.]+/

	the hyphen was treated as a range, not a literal character.

2011-10-06  David Lutterkort  <lutter@redhat.com>

	path expressions: add a function 'int'
	This makes it possible to do numerical comparisons of node values, for
	example, 'match /files/etc/group/*[int(gid) < 3]'

2011-10-06  Raphaël Pinson  <raphink@gmail.com>

	Fix cmd_span (ticket #220):
	 - Retrieve option from tree before using it;
	 - Invert conditions since we now use streqv.

2011-10-05  Raphaël Pinson  <raphink@gmail.com>

	Replace sep_spc? with sep_opt_spc in bbhosts.aug

2011-10-05  Michael Chapman  <mike@very.puzzling.org>

	Postfix_master: allow commas in commands
	Postfix daemons accept "-o name=value" to override main.cf configuration
	parameters, and the value can be a comma-separated value list.

2011-10-05  Raphaël Pinson  <raphink@gmail.com>

	Support \!include in mysql.aug

2011-10-04  Raphaël Pinson  <raphink@gmail.com>

	Various changes to keepalived.aug:  - Implement vrrp_script;  - Make spaces optional before lbracket;  - Support track_interface, track_script and garp_master_delay;  - Add ha_suspend and notify_*;  - Add relinteger to rx.aug and use it in keepalived.aug.

2011-10-03  Raphaël Pinson  <raphink@gmail.com>

	Spaces are mandatory after # in bbhosts.aug

2011-10-01  Marc Fournier  <marc.fournier@camptocamp.com>

	nrpe: fixed #218 - error caused by unused '=' in lens

2011-10-01  Dominic Cleal  <dcleal@redhat.com>

	Multipath: add support for six options in the defaults section:   dev_loss_tmo, max_polling_interval, verbosity,   reassign_maps, fast_io_fail_tmo, async_timeout
	Fixes ticket #207

2011-09-12  Raphaël Pinson  <raphink@gmail.com>

	Support more ranges in cron.aug

	Flags also can be indented in mysql.aug

2011-09-09  Raphaël Pinson  <raphink@gmail.com>

	Allow indented entries in php.aug

	{ can be followed by spaces in xinetd.aug

	Allow indented entries in mysql.aug

	Allow empty lines after includedir

	includedir statements are not part of sections in mysql.aug

2011-09-07  Raphaël Pinson  <raphink@gmail.com>

	Hooks without any lines are valid in logrotate.aug

	Allow spaces after 'endscript' in logrotate.aug

2011-09-06  Raphaël Pinson  <raphink@gmail.com>

	Various fixes in bbhosts.aug

	Fix empty lines support in fai_diskconfig.aug

2011-09-05  Raphaël Pinson  <raphink@gmail.com>

	Add functionalities, refactor volume by type of disk_config entry and add tests to fai_diskconfig.aug

2011-09-01  David Lutterkort  <lutter@redhat.com>

	* src/pathx.c (nodeset_as_regexp): match nothing if nodeset is empty
	This makes sure that constructs like 'glob(no_such_node)' or
	'regexp(no_such_node)' in path expressions never match anything, which is a
	better default than the empty regexp that was produced before.

2011-09-01  Francis Giraldeau  <francis.giraldeau@gmail.com>

	Fix run single command with autosave
	This patch fixes autosave in the case only one command is provided as
	arguments and adds a test that checks proper handling of this case.

2011-08-31  Francis Giraldeau  <francis.giraldeau@gmail.com>

	Disable autoload transform for the fai_diskconfig
	Autoload transform with only standard exclude makes failing the glob_for_lens
	xpath test. fai_diskconfig does this. As a temporary fix, we disable transform
	from fai_diskconfig.

2011-08-31  Francis Giraldeau  <francis.giraldeau@gmail.com>

	Adding ssh client lens
	This lens parses the client side configuration directives of ssh.

	Thanks to Jiri Suchomel for this contribution.

2011-08-30  Raphaël Pinson  <raphink@gmail.com>

	Add fai_diskconfig.aug and test

	Allow semicolons in shellvars.aug, add non regression test

2011-08-21  Francis Giraldeau  <francis.giraldeau@gmail.com>

	New stunnel lens
	Stunnel provides SSL tunnel for daemons. The configuration is based on the ini
	file syntax.

	Thanks to Oliver Beattie that contributed this lens.

2011-08-16  David Lutterkort  <lutter@redhat.com>

	Fix uses of Spacevars as a utility module
	  - add Build.key_ws_value to do the same as Spacevars.entry
	  - expand uses of (Spacevars.lns l) into the more explicit (comment|empty|l)*

	This fixes test breakage introduced by commit 4840c7ab

2011-08-11  Francis Giraldeau  <francis.giraldeau@gmail.com>

	Proper test for eolwhite space handling
	By reformating eol of pupperfileserver test, it's possible to make both git and
	unit test working.

2011-08-11  Francis Giraldeau  <francis.giraldeau@gmail.com>

	Remove trailing white spaces from puppet test
	Trailing white lines are valid in a puppet file, but the test is rejected when
	pushing to master git repository.

	remote: lenses/tests/test_puppetfileserver.aug:20: trailing whitespace.
	remote: +allow *
	remote: error: hook declined to update refs/heads/master
	 ! [remote rejected] master -> master (hook declined)

	Removing white space for now.

2011-08-11  Dominic Cleal  <dcleal@redhat.com>

	PuppetFileserver: support same-line comments and trailing whitespace (2.7.3rc1)
	Fixes ticket #214

2011-08-10  David Lutterkort  <lutter@redhat.com>

	Spacevars: rename toplevel lens to lns
	Leave simple_lns as an alias for backwards compatibility

2011-08-08  David Lutterkort  <lutter@redhat.com>

	* examples/fadot.c: accept -h option to print usage

2011-07-25  David Lutterkort  <lutter@redhat.com>

	.gitignore: ignore tests/test-run

	Version 0.9.0

	Minor fixes to make distcheck pass

2011-07-22  David Lutterkort  <lutter@redhat.com>

	path expressions: parse [expr1 or expr2] correctly
	Since commit ea010d85, we would interpret the predicate [e1 or e2] as
	matching any node with a child labelled 'e1 or e2'; this patch restores the
	semantics that the predicate is true if either e1 or e2 are true. It does
	the same for [e1 and e2]

	Of course, this is a heinous hack.

2011-07-22  David Lutterkort  <lutter@redhat.com>

	Migrate tests from test-mv.sh into run.tests

	aug_srun: new API call

	aug_mv: report EMVDESC if move would move a node into its descendant

	path expressions: produce straight augeas errors when it makes sense
	Some errors, especially matching no nodes or multiple nodes in
	pathx_expand_tree can be directly translated to AUG_ENOMATCH and
	AUG_EMMATCH, and there's no need to give pathx details about the error

	Fix some of the errors reported by coverity
	These are some of the errors by running coverity on augeas 0.8.0

2011-07-18  Mathieu Arnold  <mat@FreeBSD.org>

	Aliases: allow spaces and commas in aliases; add docs

2011-07-11  Dominic Cleal  <dcleal@redhat.com>

	Sudoers: support users:groups format in a Runas_Spec line for sudo -g
	Fixes ticket #211

2011-07-11  David Lutterkort  <lutter@redhat.com>

	* tests/test-bug-1.sh: fix test
	The test caused an augtool failure for all the wrong reasons

2011-07-06  David Lutterkort  <lutter@redhat.com>

	Php: include files from Zend community edition
	Fixes ticket #210

2011-07-06  Craig Dunn  <craig@craigdunn.org>

	Properties: new lens for Java properties files
	Fixes ticket #194

2011-07-01  Dominic Cleal  <dcleal@redhat.com>

	Grub: allow "bootfs" Solaris/ZFS extension for dataset name
	Fixes ticket #201

2011-07-01  John Morrissey  <jwm@horde.net>

	Spacevars: add two more filse to parse by default
	Fixes ticket #202

2011-07-01  David Lutterkort  <lutter@redhat.com>

	Interpret escape sequences in function regexp() in path expressions
	The wildcard character '.' in regular expressions, just as in the rest of
	Augeas, does not match an end of line. It is therefore crucial to be able
	to write '(.|\n)' to match any character, including newlines.

	  * src/regexp.h: (make_regexp_unescape): new function; (make_regexp_dup)
	    removed
	  * src/regexp.c: (make_regexp_unescape): new function; (make_regexp_dup)
	    removed
	  * src/pathx.c: (nodeset_as_regexp, func_regexp_or_glob): use
	                  make_regexp_unescape

2011-06-29  Dominic Cleal  <dcleal@redhat.com>

	Sudoers: add CSW paths, /opt/csw/etc and /etc/opt/csw/sudoers

	Sudoers: allow same-line comments
	Fixes ticket #206

2011-06-29  Dominic Cleal  <dcleal@redhat.com>

	Util: allow comment_or_eol to match empty comments containing only whitespace
	Services: add test for line with a whitespace-only comment

	Fixes ticket #205

2011-06-29  David Lutterkort  <lutter@redhat.com>

	* tests/test-bug-1.sh: fix broken logrotate file

2011-06-08  Raphaël Pinson  <raphink@gmail.com>

	Implement multiline values in inifile.aug

2011-05-14  David Lutterkort  <lutter@redhat.com>

	* src/augeas.c (static_nodes): add list of pathx functions to /augeas/version

2011-05-12  David Lutterkort  <lutter@redhat.com>

	Grub: allow kernel path to start with a device like (hd0,0)
	Fixes ticket #199

	* examples/fadot.c: include <config.h>, link against GNULIB

2011-05-10  David Lutterkort  <lutter@redhat.com>

	tests: expand what the valgrind target runs

	* src/pathx.c: rename CHECK_ERROR{,_RET0} to RET{,0}_ON_ERROR
	This should make it harder to misuse them and cause memory leaks

	* src/pathx.c (ns_from_locpath, parse_relative_location_path): free memory on error

	* tests/test-xpath.c: allow running individual tests from the command line

	* src/pathx.c: fix leaking of function arguments

	path expressions: allow concatenating strings and regexps with '+'

	path expressions: add operator '!~'

	path expressions: add 'glob' function that constructs regexps from globs

	regexp: add make_regexp_from_glob to convert globs to regexps

	regexp: add convenience function make_regexp_dup

	path expressions: allow passing a nodeset to function regexp

	* src/pathx.c (check_app): allow overloaded functions
	Make it possible to have multiple functions with the same name, but
	different signatures. All variants of a function must have the same arity,
	they can only differ in their return type and the types of the arguments.

	Keep a dummy struct info in struct error for convenience
	  * src/errcode.h (struct error): at a info member
	  * src/augeas.c (aug_init): set up the struct info in struct error;
	    (aug_close): free the struct info in struct error

	* src/augtool: store history in ~/.augeas/history

2011-05-04  David Lutterkort  <lutter@redhat.com>

	Xorg: accept InputClass section

2011-05-03  David Lutterkort  <lutter@redhat.com>

	Xorg: autoload from /etc/X11/xorg.conf.d/*.conf
	Based on patch by manugupta

	Fixes bug #197

2011-04-29  David Lutterkort  <lutter@redhat.com>

	test root: add a few more files

2011-04-29  David Lutterkort  <lutter@redhat.com>

	path expressions: allow whitespace inside names
	This makes the path expression '/files/etc/foo bar/baz' legal, i.e. it is
	no longer necessary to escape whitespace in path expressions.

	Fixes BZ 700608

2011-04-15  David Lutterkort  <lutter@redhat.com>

	Version 0.8.1

	Iptables: handle --tcp-flags
	Fixes bug #157

2011-04-14  David Lutterkort  <lutter@redhat.com>

	* src/augtool.c: respect autosave flag when executing a single command
	Fixes bug #193

2011-04-13  Erinn Looney-Triggs  <erinn.looneytriggs@gmail.com>

	Grub: support the 'device' directive for UEFI boot
	Fixes bug #189

2011-04-13  David Lutterkort  <lutter@redhat.com>

	Access: support the format @netgroup@@nisdomain
	Fixes bug #190

	* lenses/tests/test_fstab.aug: test that we parse SELinux context correctly

2011-03-25  David Lutterkort  <lutter@redhat.com>

	Httpd: remove duplicate inclusion of /etc/httpd/conf/httpd.conf

2011-03-25  Bill Pemberton  <wfp5p@virginia.edu>

	Deal with continuation lines in httpd.aug
	Apache allows config lines to be continued with a backslash, but the
	lens couldn't deal with it.  Change the value sep_spc to deal with
	continuation lines as found in interfaces.aug

	Enable the test for continuation lines in test_httpd.aug

2011-03-25  Bill Pemberton  <wfp5p@virginia.edu>

	Add /etc/httpd/conf/httpd.conf to the filter list for httpd.aug

	Allow blank and comment lines throughout config file in iptables

	Exclude /etc/yum/pluginconf.d/versionlock.list from yum.aug
	The versionlock plugin puts a file in /etc/yum/pluginconf.d that is
	not a yum config file so yum.aug shouldn't try to parse it.

2011-03-23  David Lutterkort  <lutter@redhat.com>

	Mysql: include /etc/my.cnf used on Fedora/RHEL
	Fixes https://bugzilla.redhat.com/show_bug.cgi?id=688053

	Httpd: include /etc/httpd/conf/httpd.conf used on Fedora/RHEL
	Fixes https://bugzilla.redhat.com/show_bug.cgi?id=688149

2011-03-22  David Lutterkort  <lutter@redhat.com>

	* src/lexer.l: fix a few compilation warnings

	Eliminate global variable 'comment_depth' in lexer

2011-03-19  Francis Giraldeau  <francis.giraldeau@gmail.com>

	Add support for configfile and background in grub
	Test for the new configuration directives are also provided.

	Thanks to Onur Küçük for the patch.

2011-03-18  Raphaël Pinson  <raphink@gmail.com>

	#include is also valid in sudoers.aug

	Add support for #includedir in sudoers.aug and test (ticket #188)

2011-03-17  Francis Giraldeau  <francis.giraldeau@gmail.com>

	Support sudoers in nsswitch.aug
	nsswitch.conf support a configuration item to specify database backend, this
	commit adds the support for it.

	Fix bug #187

	Thanks to thefoxbox for the enhancement

2011-03-17  Francis Giraldeau  <francis.giraldeau@gmail.com>

	Fix unmatch bracket causes segfault in augtool.c
	When command is parsed in augtool, function nexttoken verify that path has
	valid and matching brackets and return NULL if not. The function cleanpath that
	follows was not handling the NULL case, leading to a segmentation fault. By
	checking for NULL value, the error is thrown adequately.

	Fix bug #186

	Thanks to spamaps for the help to resolve this issue.

2011-03-16  David Lutterkort  <lutter@redhat.com>

	* src/lexer.l (augl_init_lexer): really close the input file on error

2011-03-16  Richard W.M. Jones  <rjones@redhat.com>

	Add FreeBSD /etc/rc.conf file to Shellvars lens.

2011-03-15  David Lutterkort  <lutter@redhat.com>

	Replace erroneous assert(0) with proper error report
	  * src/put.c (create_union): report an error to the user if none of the
	    alternatives match
	  * lenses/tests/test_shellvars.aug: add a test to trigger that code path
	    in create_union

	Fixes bug #183

2011-03-10  David Lutterkort  <lutter@redhat.com>

	* src/augeas.c (aug_init): check return value of argz_* for ENOMEM

2011-03-10  Matthew Booth  <mbooth@redhat.com>

	Fix parsing of fstab entries containing fscontext SELinux option
	Systems using SELinux can contain an fstab option like:
	fscontext=system_u:object_r:removable_t

	The fstab lens is currently too strict, and doesn't allow colons in the value.
	This patch relaxes the parsing to make it as lax as possible within the
	constraints of the syntax.

2011-03-08  David Lutterkort  <lutter@redhat.com>

	Be more defensive about closing input files for the lexer

2011-03-04  David Lutterkort  <lutter@redhat.com>

	Explain using ./src/try
	  * HACKING: document the various modes of using ./src/try
	  * src/try: read commands from build/augcmds.txt rather than /tmp; use a
	    more sensible default if augcmds.txt does not exist

2011-03-03  Matthew Booth  <mbooth@redhat.com>

	Use getopt-gnu from gnulib for AIX support

	Update to gnulib commit c2090a8
	Required for updated getopt-gnu license.

2011-03-03  Raphaël Pinson  <raphink@gmail.com>

	Remove trailing spaces in lenses/tests/test_nagiosobjects.aug

	Add nagiosobjects.aug based on Sebastien Aperghis' work.

	Remove trailing spaces in nagioscfg.aug

	Improve nagioscfg.aug as per Sebastien Aperghis' work.

2011-03-02  Raphaël Pinson  <raphink@gmail.com>

	Fix single quotes support in httpd.aug.

	Support single quotes in httpd.aug. Add unit test for it in test_httpd.aug.

2011-03-02  David Lutterkort  <lutter@redhat.com>

	* tests/fatest.c (testManualAmbig): don't use '$' in variable names
	Breaks on, at least, AIX

2011-03-02  Raphaël Pinson  <raphink@gmail.com>

	Add Sep.equal, used in nrpe.aug

	Changes in nrpe.aug Remove wrong ^ in comment regex Use Util.comment_generic Use generic modules Improve NaturalDocs documentation

2011-02-23  David Lutterkort  <lutter@redhat.com>

	Version 0.8.0

2011-02-23  David Lutterkort  <lutter@redhat.com>

	Fix compile errors found by gcc 4.6.0
	There were several places that caused the new 'variable assigned but not
	used' warning.

	The struct lens also contained the member jmt twice; it is now only
	available for L_REC lenses.

2011-02-23  David Lutterkort  <lutter@redhat.com>

	* src/info.h: include stdlib so we can use uint

	* tests/Makefile.am: distribute the test data in test-augtool/

2011-02-23  Dominic Cleal  <dcleal@redhat.com>

	Split Solaris multiboot argument for the kernel path into @path node (ticket #158)

2011-02-22  Francis Giraldeau  <francis.giraldeau@gmail.com>

	Add aug_span API function V2
	aug_span API function provides information about the node of the specified
	path. It sets the absolute path of the file name and spans of label, value
	and span inside the node. The span includes all matching chars of the actual
	lens and it's descendant. Hence, the top level node will span the entire file.
	It returns 0 in case of success and -1 if the node is not associated to a file
	or if the path is invalid.  The main use case is to make possible to display
	the related file with the node elements hightlighted in a UI.

	The API option AUG_NO_NODE_SPAN provided to aug_init disable the allocation
	structures to keep node spans. It saves about 5% of memory for a typical
	tree.

	  * src/augeas.c : add aug_span implementation and option handling to aug_in
	    according to the option /augeas/span in the tree
	  * src/augeas.h : add declaration of aug_span and constants for option
	  * src/augeas_sym.version : make the new function visible in libaugeas
	  * src/augtool.c : add the "nodepos" command to augtool
	  * src/get.c : gather filename, label, value and span spans if any
	  * src/info.c : create and release functions for struct node_span
	  * src/info.h : add definition of struct node_info
	  * src/internal.h : add node_info to struct tree
	  * src/transform.c : duplicate filename string
	  * tests/test-load.c : 3 basic unit tests for general correct behavior

2011-02-22  Raphaël Pinson  <raphink@gmail.com>

	Add short options for --nostdinc, --noload and --noautoload Update manpage and pod accordingly

	Distribute bcprules.sty and xpath.txt

2011-02-19  Raphaël Pinson  <raphink@gmail.com>

	Add indented_title_label in inifile.aug Use indented_title_label in mysql.aug Adjust test for mysql.aug accordingly

2011-02-18  Raphaël Pinson  <raphink@gmail.com>

	Allow indentation for "iface" entries in interfaces.aug (Fix ticket #182) Add unit test for "iface" indentation

2011-02-16  Francis Giraldeau  <francis.giraldeau@gmail.com>

	Minor code format cleanup
	  * Cut long lines to 80 chars
	  * Indentation fix

	Fix memory leak with recursive square lens

2011-02-16  Raphaël Pinson  <raphink@gmail.com>

	Remove trailing whitespaces in util.aug

	Add comment_c_style and comment_multiline Add empty_generic and make empty a call to it Add empty_c_style to complement comment_c_style

2011-02-15  Francis Giraldeau  <francis.giraldeau@gmail.com>

	Fix segfault in get.c with L_MAYBE lens (bug#180)
	When a L_MAYBE lens was the last child of a L_CONCAT inside a L_SUBTREE, then
	the match in visit_exit top_frame(rec_state)->lens == lens->child was true,
	causing combine of a frame when it shouldn't. This test is true because there
	is no other lens following in the concat in this special case, hence the top
	frame matched the child of the L_MAYBE.

	To avoid this special case, we propose to push L_MAYBE lens on the frames
	stack. If L_MAYBE is encountered in visit_exit, we pop at least one frame and
	two if the child match. This way, the stack is always valid.

	Closes trac ticket #180.

2011-02-15  Raphaël Pinson  <raphink@gmail.com>

	Improve vim syntax file

2011-02-14  David Lutterkort  <lutter@redhat.com>

	man pages: update man page for augtool

2011-02-14  Raphaël Pinson  <raphink@gmail.com>

	augtool: add --interactive option
	This option runs an interactive shell after evaluating STDIN or an explicit
	inputfile

2011-02-14  David Lutterkort  <lutter@redhat.com>

	Mysql: change default comment delimiter from ';' to '#'
	Fixes bug #181 reported by devzero

2011-02-06  Francis Giraldeau  <francis.giraldeau@usherbrooke.ca>

	Add Dhcpd lens
	  * Support unquoting for allow/deny statements
	  * Append new line to block statement braces by default
	  * Add missing string and integer statements according to man dhcpd.conf
	  * Remove trailing white space from the lens file

	Replace seq by label in option list

	  The counter/seq doesn't garantee that node label "1" will get at the first
	  position. Positional arguments are ordered, hence the sequence may be
	  misleading. This is why a fixed label for sequence nodes are better.

2011-01-28  Raphaël Pinson  <raphink@gmail.com>

	Support directives without arg in httpd.aug
	* Use sep.aug in httpd.aug Modify Sep.opt_space to make it fit the
	  definition in httpd.aug (it's only used here)
	* Allow directives without arguments in httpd.aug
	* Adjust test_httpd.aug to test argument-less directives

2011-01-25  Francis Giraldeau  <francis.giraldeau@gmail.com>

	Fix httpd.aug doc, filter and add to checks
	  * Added other contributors to authors
	  * Changed the licence to LGPLv2+
	  * Fix copy/paste error about config files
	  * Added filters for Fedora and RHEL

2011-01-25  Francis Giraldeau  <francis.giraldeau@gmail.com>

	Add Httpd lens
	The Httpd lens parses Apache Web server configuration according to the manual.

	  * Generic sections with square lens
	  * Generic directives
	  * Arguments of sections and directives are handled as list

	The lens doesn't support automatic quoting of string values, because arguments
	are separated by spaces and it raises ambiguity when using unquoting. The lens
	doesn't support either long lines splitted by backslash.

2011-01-25  David Lutterkort  <lutter@redhat.com>

	* src/pathx.c (store_error): make sure pos_str is always NUL terminated
	Fixes bug #178

2011-01-19  Fred  <frederic.lespez@free.fr>

	PuppetFileserver: new lens for Puppet's fileserver.conf

2011-01-19  David Lutterkort  <lutter@redhat.com>

	* man/augtool.pod: fix typos
	Fixes https://bugzilla.redhat.com/show_bug.cgi?id=628502

2011-01-14  David Lutterkort  <lutter@redhat.com>

	Allow compiling with NDEBUG defined
	  * src/errcode.h (ensure0): do not mention 'error' label when NDEBUG is
	    defined
	  * src/pathx.c (coerce_to_bool, eval_pred): make sure we return something
	    when assert(0) is compiled away

2011-01-13  Francis Giraldeau  <francis.giraldeau@gmail.com>

	Fix a small bashism from test script

2011-01-13  David Lutterkort  <lutter@redhat.com>

	Xorg: "position" in "screen" section is optional; allow "Extensions" section
	Patch by omzzk

	Fixes bug #175

2011-01-11  David Lutterkort  <lutter@redhat.com>

	Replace augtest by test-augtool.sh
	This removes the silly dependency on Ruby, since augtest was the only
	Ruby script in the whole source tree.

	The test files for test-augtool.sh live in tests/test-augtool, and are
	functionally identical to the Ruby test files tests/*.rb. The only
	exception is that test-root.rb has been removed - it tested something that
	is better tested in test-xpath.c

	The new test-augtool.sh test is also a little more efficient in that it
	only copies the file needed by a test into the root, and only sets the lens
	for that file up for loading. This reduces the runtime of the tests from ~
	30s on my machine to under 2s.

2011-01-11  David Lutterkort  <lutter@redhat.com>

	Test that getting and setting the root node works
	This tests the same thing that test-get.sh tests, but in a much more
	reliable fashion

	* src/pathx.c (store_error): never append to an uninitialized string

	* src/augtool.c: be a little more quiet
	Some of the commands used to print unconditionally; we now only print if we
	should be echoing (i.e., if --echo is given on the command line or if stdin
	is a tty)

2011-01-11  Fred  <frederic.lespez@free.fr>

	Crypttab: new lens for /etc/crypttab

2011-01-11  Raphaël Pinson  <raphink@gmail.com>

	In autosave mode, print "save" when in echo or interactive mode. Remove comma at the end of enum list.

2011-01-10  Raphaël Pinson  <raphink@gmail.com>

	Refactor augtool.c to use only readline

2011-01-10  Raphaël Pinson  <raphink@gmail.com>

	augtool: add --autosave option
	Additional changes to augtool:
	  * Define AUGTOOL_PROMPT as a constant
	  * Do not print (null) lines when using --echo
	  * Add test for --autosave in test-save-mode.sh

	Fixes ticket #172

2011-01-07  David Lutterkort  <lutter@redhat.com>

	bootstrap: add sys_wait module
	Fixes bug #164

2011-01-07  Dominic Cleal  <dcleal@redhat.com>

	Add support for Solaris multiboot kernels with slashes in the first kernel argument (Fix ticket #158)

	Allow kernel$ and module$ extensions to GRUB for Solaris (Fix ticket #158)

2011-01-07  David Lutterkort  <lutter@redhat.com>

	Shellvars: read various snmpd config files
	Patch by erinn

	Fixes ticket #170

2011-01-07  Dominic Cleal  <dcleal@redhat.com>

	Solaris_system: new lens for /etc/system (Solaris)
	File is used to configure the kernel, module loading and parameters. The
	system(4) man page gives a good overview of the commands and a sample file:
	http://docs.sun.com/app/docs/doc/816-5174/system-4?l=en&n=1&a=view

	It supports moddir, rootdev, rootfs, exclude, include, forceload and set.
	The set tree is broken down quite a lot as the operator can vary (equals,
	bitwise AND and OR).

2011-01-07  David Lutterkort  <lutter@redhat.com>

	Resolv: allow comments starting with semicolon
	Patch by erinn

	Fixes bug #173

2011-01-03  Raphaël Pinson  <raphink@gmail.com>

	Add automount, netmasks and sendmailvars keywords for databases in nsswitch.aug

	Add bootparams as database keyword (Fix ticket #171) Update test file accordingly

2010-12-29  Raphaël Pinson  <raphink@gmail.com>

	Rename "host" nodes as "origin" (breaks compatibility) Implement "except" keyword as a subtree Make origin_re less strict to fix comment #6 in ticket #166 Implement multiple users and netgroups Improve test file

2010-12-28  Francis Giraldeau  <francis.giraldeau@usherbrooke.ca>

	Add xml lens
	The XML lens parse arbitrary XML documents. Most, but not all features of XML
	standard are implemented, partially because the nature of augeas. Tests comes
	from OASIS test suite.

	Supported:
	  * Document type declaration: elements, attlist, entity
	  * XML Prolog
	  * XML comments
	  * XML processing instructions
	  * Neested elements, including empty elements
	  * Element attributes
	  * Mixed content, text and elements
	  * CDATA sections

	Not supported:
	  * Single quotes attributes: double quotes is mandatory
	  * External entity reference, because augeas can't load a related file within a lens
	  * Document validation: augeas don't enforce DTD

	This lens doesn't respect the PutGet law, becuse of an ambiguity in union.put
	with text nodes. If a text node is created as a sibling of another text node, a
	put and a get will merge those two nodes. In practice, no error occur and this
	is a desirable behavior.

2010-12-22  Raphaël Pinson  <raphink@gmail.com>

	Fix ticket #169 and add unit tests by Sergio Ballestrero.

2010-12-20  David Lutterkort  <lutter@redhat.com>

	* src/pathx.c (func_regexp): do not SEGV on error; provide better error msg
	Fixes bug 168

	  * when the passed in regexp had a syntax error, we would leave the
	    interpreter variable at VIND uninitialised, but tagged as a regexp. As
	    a result, we'd SEGV when that slot in the variable table is
	    freed. Properly initialize slots in the variable table to NULL, and
	    store the regexp as soon as it has been built (before compilation)
	    there to address that.
	  * when a regexp had a syntax error, we would just drop the details of the
	    syntax error on the floor. We now include that in the error details so
	    that the user has some hint to how the regexp is foobared

	# Please enter the commit message for your changes. Lines starting
	# with '#' will be ignored, and an empty message aborts the commit.
	# On branch master
	# Changes to be committed:
	#   (use "git reset HEAD <file>..." to unstage)
	#
	#	modified:   src/pathx.c
	#
	# Untracked files:
	#   (use "git add <file>..." to include in what will be committed)
	#
	#	doc/cfg.txt
	#	doc/naturaldocs/conf/lenses/Menu_Backup.txt
	#	doc/naturaldocs/conf/lenses/Menu_Backup_2.txt
	#	p/
	#	site.orig/
	#	tests/root-small/
	#	tests/root/etc/network/
	#	tests/root/etc/samba/
	#	tests/root/etc/sysconfig/system-config-firewall

2010-12-10  Francis Giraldeau  <francis.giraldeau@usherbrooke.ca>

	Enable square lens in dump_lens

2010-12-10  Francis Giraldeau  <francis.giraldeau@usherbrooke.ca>

	Add square lens to language
	The new primitive square lens allows to handle XML like open and close tags.
	It takes 2 arguments, a regexp for the tag and a lens for the content. The
	square lens verify that open and close tags are matched in the get direction,
	and put direction handles the close tag by copying the key.

	  * src/builtin.c: add "square" keyword to language
	  * src/lens.c: lns_make_square to compile the lens from actual simpler
	    lenses
	  * src/lens.h: append L_SQUARE to lens_tag enum to identify the square lens
	    type object
	  * src/jmt.c: handle square lens in parser
	  * src/get.c: add char* square to state struct to hold the last L_DEL in
	    square to perform syntax check, and add all get handling functions for
	    L_SQUARE
	  * src/put.c: modify create_del to render current key when default string is
	    NULL and add all put handling functions
	  * tests/modules/pass_square.aug: unit tests to validate the square lens,
	    regular and recursives

2010-12-09  Francis Giraldeau  <francis.giraldeau@usherbrooke.ca>

	Add test for lens-access.sh in Makefile

2010-12-02  Raphaël Pinson  <raphink@gmail.com>

	Relicense pg_hba.aug as LGPLv2+ as the rest of Augeas.

2010-12-02  Lorenzo Dalrio  <lorenzo.dalrio@gmail.com>

	Add access.aug and associated test file

2010-12-02  Raphaël Pinson  <raphink@gmail.com>

	Fix GPL into LGPLv2+ for a series of lenses.

2010-11-24  Francis Giraldeau  <francis.giraldeau@gmail.com>

	Ignore eclipse project files

2010-11-22  Raphael Pinson  <raphink@gmail.com>

	Add support for "map" entries in grub.aug and adapt test accordingly (Fix ticket #148)

2010-11-19  David Lutterkort  <lutter@redhat.com>

	Version 0.7.4

2010-11-19  Raphaël Pinson  <raphink@gmail.com>

	* lenses/util.aug: improve management of eol comments
	  - add comment_generic
	  - use comment_generic in comment
	  - add comment_eol
	  - add comment_or_eol

	Use comment_eol and comment_or_eol in some lenses to fix default eol
	comment entries.  Adapt tests for shellvars and services to take this new
	behaviour in consideration.

2010-11-19  Raphaël Pinson  <raphink@gmail.com>

	Add "indomU" Debian setting to grub.aug (Fix ticket #162)

	Allow "\" style newlines in syslog.aug and add corresponding test (Fix ticket #161).

2010-11-18  Raphael Pinson  <raphink@gmail.com>

	Make filter a View in sudoers.aug to make it appear properly in doc

	Improve doc on services.aug

	Add some doc to pg_hba.aug

	Add a bit of doc to pbuilder.aug

	Add all missing lenses to Menu.txt

2010-11-18  Mathieu Arnold  <mat@FreeBSD.org>

	Add syslog.aug and associated test file

2010-11-18  Raphaël Pinson  <raphink@gmail.com>

	resolve refresh_pattern into fields Parse "extension_methods" into a list break entries upgrade_http0.9 and broken_vary_encoding down similar to what http_access does
	Fix ticket #46

2010-11-18  Mathieu Arnold  <mat@FreeBSD.org>

	On FreeBSD (at least) the sudoers file is in /usr/local/etc/.

2010-11-18  Francis Giraldeau  <francis.giraldeau@gmail.com>

	Parse ulimit builtin in shellvars.aug (fix ticket #73).

	Accept double quotes in arguments in postfix_master.aug, fix bug# 69

2010-11-18  David Lutterkort  <lutter@redhat.com>

	* tests/Makefile.am (lens_tests): add tests for new lenses

2010-11-18  David Lutterkort  <lutter@redhat.com>

	Krb5 (realm_re, app_re): allow digits in realm names
	Still makes the incorrect assumption that realm names start with an upper
	case letter, and app names with a lower case one, but it's an improvement
	over the current restrictions.

	Fixes bug https://fedorahosted.org/augeas/ticket/139

2010-11-18  Matthew Booth  <mbooth@redhat.com>

	Fix crasher in ast.c:dict_pos on i686 with gcc 4.5 and -O2
	This patch works around what appears to be an optimization bug in gcc 4.5. The
	symptom of the bug is that dict_pos, called from dict_lookup, receives an
	invalid value when accessing dict->used. The following ticket describes the bug,
	and includes a simple test case:

	https://fedorahosted.org/augeas/ticket/149

	Adding a printf to dict_lookup immediately before the dict_pos call reveals that
	dict->used has a value of 30 in the crashing case on my F14 system. A printf
	added to the first line of dict_pos shows dict->used has an apparent value of
	16777246. This causes an invalid array lookup shortly afterwards, which causes
	the crash. 16777246, interestingly, is 2^24 + 30, where 24 is the size of the
	dict->used bitfield. This should obviously not be possible, suggesting either a
	compiler bug or undefined behaviour due in incorrect use of the language. Having
	re-read the relevant section of K&R, I can't see anything about this use of
	bitfields which might be a problem, except that: 'Fields may be declared only as
	ints; for portability, specify signed or unsigned explicitly.' uint32_t resolves
	to 'unsigned int' on i686, and in any case, replacing it with 'unsigned int'
	does not solve the problem. As it stands, I believe this is a bug in the
	optimizer.

	The above ticket contains an alternate patch which copies dict in dict_pos,
	which also prevents the crash. However, adding anything to dict_pos which
	prevents the compiler from optimising dict away achieves the same result. For
	example:

	printf("%p", dict);

	This patch instead removes the bitfields in struct dict. While this is a
	workaround, these bitfields save at most 1 word of memory per struct, but at the
	cost of mis-aligned access. The patch does not increase the size of
	dict_max_size to UINT32_MAX, as the lower maximum serves as a better guard
	against runaway memory allocation.

2010-11-17  Raphael Pinson  <raphink@gmail.com>

	Allow underscore in chain_name for iptables.aug and adjust test accordingly.

2010-11-17  Erinn Looney-Triggs  <erinn.looneytriggs@gmail.com>

	Add login_defs.aug and associated test file.

2010-11-14  Marc Fournier  <marc.fournier@camptocamp.com>

	pg_hba: added debian systems path to filter - fixes #154.

	util.aug: exclude unneeded files on debian systems (fix ticket #153)

2010-11-05  Raphael Pinson  <raphink@gmail.com>

	Map comments and use Util.comment and Util.empty in order to full fix ticket #151. Adapt test accordingly.

	Allow indented lines in aptsources.aug (Fix ticket #151) and add associated test

	Allow "=" as a separator for title in grub.aug (Fix ticket #150) and adapt test accordingly.

2010-11-04  Raphael Pinson  <raphink@gmail.com>

	Fix example in lens

2010-11-02  Raphael Pinson  <raphink@gmail.com>

	Add a few lenses to Menu.txt

	Add shells.aug and associated test

2010-11-01  Raphael Pinson  <raphink@gmail.com>

	Add mke2fs.aug and associated test

2010-10-31  Raphael Pinson  <raphink@gmail.com>

	Add support for rpc services in inetd.aug, rework lens to allow it and add tests accordingly.

	Parse option values in fstab.aug, adapt test file accordingly.

	Map service names in node values instead of node names to prevent variable node names.

2010-10-29  Raphael Pinson  <raphink@gmail.com>

	Add /etc/mtab to known files

2010-10-28  Raphael Pinson  <raphink@gmail.com>

	Fix paramater into parameter in ND comment

2010-10-27  Raphael Pinson  <raphink@gmail.com>

	Use generic modules in bbhosts.aug

2010-10-26  Francis Giraldeau  <francis.giraldeau@gmail.com>

	Fixes bug #144: wrong behavior of iter concat
	This patch fix the list_tail_cons macro to fastforward the tail list when
	the first item is added to the list, otherwise if the first item added when
	the list is NULL has two item, the tail points the the first item.

2010-10-26  Raphael Pinson  <raphink@gmail.com>

	Fix filter to use proper file

	Remove trailing whitespace

	Add nsswitch.aug and associated test

2010-10-26  Francis Giraldeau  <francis.giraldeau@gmail.com>

	Add debugging information about lens hierarchy
	When compiled with --enable-debug, will compile a function to output the lens
	hierarchy in dot files. Enable this specific debug info with
	AUGEAS_DEBUG=lenses

2010-10-26  David Lutterkort  <lutter@redhat.com>

	Sudoers: allow 'visiblepw' parameter flag
	Fix provided by christj. Fixes bug #143

2010-10-26  Francis Giraldeau  <francis.giraldeau@gmail.com>

	Add clearm command to augtool
	The clearm command is the same as setm, but sets the node value to
	NULL in place of a string, suitable in some use case. 

	Fix ticket #146

2010-10-26  Raphael Pinson  <raphink@gmail.com>

	/etc/sudoers.d is now supported (at least in Debian and Ubuntu)

	Add resolv.aug and test

2010-10-14  Aurelien Bompard  <aurelien@bompard.org>

	Pg_hba: new lens and test
	Fixes bug #140

2010-09-30  Raphaël Pinson  <raphink@gmail.com>

	Add a few lenses to Menu.txt

	Use Rx.ipv4 and Rx.integer in openvpn.aug

	Use generic modules Rx, Sep and Build in keepalived.aug

	Add email_addr to rx.aug

	Improve build.aug

	Improve documentation of build.aug

2010-09-29  Raphaël Pinson  <raphink@gmail.com>

	Move Build, Rx and Sep into Generic Modules, add Keepalived

2010-09-24  Raphaël Pinson  <raphink@gmail.com>

	Improve keepalived.aug

2010-09-23  Raphaël Pinson  <raphink@gmail.com>

	Add a lens for keepalived.conf and associated test

2010-09-23  David Lutterkort  <lutter@redhat.com>

	Preserve parse errors under /augeas//error
	With the changes in commit 5ee81630, a subtree in /augeas/files that is
	dirty after trying to load all files indicates a file that was loaded
	before, but is not loaded anymore (e.g., because the set of lenses changed
	since the last time we loaded) In that situation, both the subtree in
	/augeas/files as well as the corresponding subtree in /files is deleted.

	The code in store_error, which is called by load_file when a parse error
	happens, would leave that subtree in /augeas/files dirty. This commit fixes
	that by making sure we mark the error entries as clean. It also revamps
	store_error to use the lighter-weight tree_xxx functions instead of the
	aug_xxx functions.

	Fixes bug #138

2010-09-21  Raphaël Pinson  <raphink@gmail.com>

	* src/augtool.c: add -f|--file option to get commands from an input file

2010-09-21  Marc Fournier  <marc.fournier@camptocamp.com>

	Nrpe: new lens and tests.

	Odbc: new lens and tests.

2010-09-15  David Lutterkort  <lutter@redhat.com>

	When setting a tree node to the value it already has, do not modify the tree

2010-09-09  David Lutterkort  <lutter@redhat.com>

	* src/try: add an optioj to strace augtool

2010-09-09  David Lutterkort  <lutter@redhat.com>

	Properly record the new mtime of a saved file in the tree
	transform_save used to pass an incorrect file name to add_file_info (the
	name was missing the root prefix), leading to an mitme of 0 for all saved
	files. That in turn causes freshly saved files to be unnecessarily reloaded
	on the next aug_load.

	  * src/transform.c (mtime_as_string): tolerate a NULL filename, and return
	    an mtime of 0; (transform_save): pass the full file name, including the
	    root to add_file_info
	  * tests/test-load.c (testReloadDeletedMeta): the test is now
	    time-sensitive; to work around that, set the mtime of the changed tree
	    to the original mtime of the file
	  * tests/test-save.c (testMtime): verify that we record the actual mtime
	    and not just 0 in the tree after a save.

	Thanks to Laine Stump for spotting this

2010-08-27  Francis Giraldeau  <francis.giraldeau@gmail.com>

	Fix yum tests
	  * Modify separator for list values to accept simple spaces
	  * Add all alternatives for baseurl and gpgkey
	  * Add tests to verify the correct behavior

2010-08-27  David Lutterkort  <lutter@redhat.com>

	* bootstrap: add locale module from gnulib
	Fixes bug #137

2010-08-16  David Lutterkort  <lutter@redhat.com>

	Yum: accept continuation lines for gpgkey
	Fixes bug #132

2010-08-16  Francis Giraldeau  <francis.giraldeau@gmail.com>

	* src/get.c (visit_exit): fix segfault from empty stack for L_MAYBE
	Fixes bug #136

2010-08-06  David Lutterkort  <lutter@redhat.com>

	Version 0.7.3

2010-08-06  David Lutterkort  <lutter@redhat.com>

	Fix behavior of aug_defnode
	  (1) Make sure that the definition of the variable is recorded under
	      /augeas/variables
	  (2) Do not report an error if the expression evaluates to a non-empty
	      nodeset

	  * src/augeas.c (aug_defvar): split creating metadata under
	    /augeas/variables into record_var_meta; (aug_defnode): do not return an
	    error when expr evaluates to nonempty node set; record variable
	    definition
	  * tests/test-api.c: add tests for defvar and defnode behavior

2010-08-05  David Lutterkort  <lutter@redhat.com>

	Use pathx_aug_parse rather than pathx_parse in various places
	Since pathx_aug_parse makes sure the symbol table stays updated, use
	pathx_aug_parse whereever that makes sense.

	Rename parse_user_pathx to pathx_aug_parse
	  * internal.h (pathx_aug_parse): new protoype
	  * augeas.c (pathx_aug_parse): renamed, add optional arg for a different
	    root

2010-08-05  David Lutterkort  <lutter@redhat.com>

	Fix BZ 613967 - memory corruption on reloading externally modified file
	The problem was that when we replaced the old tree for a file with the new
	one we just read from the file, the replace operation did not update
	nodesets in variables, since we did not pass the global symtab into
	tree_replace.

	  * src/internal.h (tree_replace): pass in struct augeas, so that we have
	    access to the global symtab
	  * src/augeas.c (tree_replace): make sure we create the pathx with the
	    global symtab
	  * src/transform.c (load_file): adapt to new prototype for tree_replace
	  * tests/test-load.c (testReloadExternalMod): test that we do not segfault
	    when a file was modified externally

2010-08-05  David Lutterkort  <lutter@redhat.com>

	Test root: mimick the setup of grub config files on Fedora more closely
	  * root/etc/grub.conf: symlink to root/boot/grub/grub.conf
	  * root/boot/grub/grub.conf: new file with contents of /etc/grub.conf
	  * root/boot/grub/menu.lst: symlink to grub.conf

2010-08-03  Raphael Pinson  <raphink@gmail.com>

	Sudoers: allow escaped spaces in user/group names
	Fixes bug #124

2010-07-26  David Lutterkort  <lutter@redhat.com>

	Limits: also look for files in /etc/security/limits.d
	Suggested by David Timms

2010-07-23  Tim Stoop  <tim.stoop@gmail.com>

	Mysql: lens for MySQL's *.cnf files

2010-07-23  David Lutterkort  <lutter@redhat.com>

	Sysconfig: new lens for a subdialect of shell
	Using shell files with simple variable assignments is a very popular config
	file format. The Shellvars lens doesn't serve those files perfectly well,
	since it tries to preserve details important for general shell scripts that
	are ignored by sysconfig files.

	This lens is a variation on Shellvars that changes a few important aspects
	of it:

	  * Strip quotes from values when reading a file, and restore quotes as
	    needed upon writing
	  * Pretend there's no difference between single and double quotes (this
	    assumption makes it possible to add quotes as needed solely based on
	    syntax)
	  * Do not support shell arrays or backticks; support for these could be
	    restored by somebody sufficiently motivated, though neither of them
	    should be used in a sysconfig file

	The lens doesn't autoload any files yet, though we should consider moving
	most of the files that Shellvars loads over to this lens.

2010-07-23  David Lutterkort  <lutter@redhat.com>

	* src/lens.c (lns_check_rec): allow 'let rec' with regular RHS
	If the user writes 'let rec l = rhs' and the RHS does not mention l, just
	mark the lens as regular and carry on.

2010-07-21  David Lutterkort  <lutter@redhat.com>

	* src/syntax.c (load_module_file): make sure we report an error

2010-07-21  David Lutterkort  <lutter@redhat.com>

	Fix segfault in glue routines; add test for the fix
	The tree_*_glue functions did not set the error struct when parsing a path;
	this caused a segfault when trying to insert before/after a non-existant
	node, since tree_insert tried to report the error into a struct error that
	was NULL.

	Fixes bug #129

2010-07-21  David Lutterkort  <lutter@redhat.com>

	* src/syntax.c (compile_test): reset errors at the end of the test
	Otherwise, we can't have tests succeed after tests failed intentionally (by
	making their result '= *')

	* src/errcode.h (reset_error): new function
	  * src/augeas.c (api_entry): use reset_error
	  * src/errcode.c (reset_error): new function, with code from api_entry
	  * src/errcode.h (reset_error): add prototype

2010-07-20  Francis Giraldeau  <francis.giraldeau@gmail.com>

	* src/put.c (split_concat): fix memory leak when split doesn't match

2010-07-19  David Lutterkort  <lutter@redhat.com>

	Use gnulib from a submodule
	This allows us to record the exact changeset from gnulib that everybody
	should be using.

2010-07-19  Frederik Wagner  <fnerdwq@googlemail.com>

	Added /etc/sysconfig/suseconfig to shellvars lens.

2010-07-08  Francis Giraldeau  <francis.giraldeau@gmail.com>

	Adding is_scan in the condition to accept an item

2010-06-30  Matthew Booth  <mbooth@redhat.com>

	Device_map: new lens for grub's device.map

2010-06-29  David Lutterkort  <lutter@redhat.com>

	Avoid unnecessary file parsing when reloading the tree
	We used to reparse every file we knew about upon aug_load. Now, we only
	reparse files if the file has changed on disk.

	We test a few scenarios to make sure aug_load retains its behavior of
	obliterating the tree and filling it with the latest from disk. This
	includes throwing away unsaved changes or trees that have been deleted.

2010-06-29  David Lutterkort  <lutter@redhat.com>

	Add utility tree_store_value to avoid unnecessary strdup's
	  * src/internal.h (tree_store_value): add prototype
	  * src/augeas.c (tree_store_value): new function; (tree_set_value): use
	    tree_store_value

	Make tree_clean available outside of augeas.c
	  * src/augeas.c (tree_clean): remove 'static'
	  * src/internal.h (tree_clean): add prototype

2010-06-29  David Lutterkort  <lutter@redhat.com>

	Add xstrtoint64 to internal.[ch]
	The implementation is directly from libvirt

	  * src/internal.h (xstrtoint64): add prototype
	  * src/internal.c (xstrtoint64): add impl

2010-06-29  David Lutterkort  <lutter@redhat.com>

	* src/test-load.c (testLoadSave): work off a writable /etc/hosts
	This addresses a FIXME that could lead to use not detecting incorrect behavior

	Move 'run' test utility to cutest.[ch]
	  * tests/cutest.h (run): add prototype
	  * tests/cutest.c (run): add impl
	  * tests/test-save.c (run): remove

2010-06-29  David Lutterkort  <lutter@redhat.com>

	Redefine all variables upon load
	This is a slight change in behavior: before, we used to just discard the
	contents of all variables upon load. Now, we redefine variables by
	evaluating the expression with which they were defined initially again.

	The change in behavior is backwards compatible, since at worst, users will
	redefine variables themselves after an aug_load

2010-06-29  David Lutterkort  <lutter@redhat.com>

	* src/augeas.c (aug_init): create /augeas/variables on startup

	* src/augeas.c (aug_defvar): use constants to create /augeas/variables

2010-06-22  David Lutterkort  <lutter@redhat.com>

	Version 0.7.2

	* augeas.spec.in: fix ownership of /usr/share/augeas
	fixes BZ 569393

2010-06-17  David Lutterkort  <lutter@redhat.com>

	Test behavior of aug_setm
	  * src/augeas.c (aug_setm): return number of modified nodes
	  * tests/test-api.c (testSetM): compliance tests for aug_setm

	* src/augeas.c (aug_setm): do not segfault when sub is NULL

2010-06-17  Frederik Wagner  <fnerdwq@gmail.com>

	Tests for new aug_setm function
	Test through augtool calls.

	Exposed aug_setm to augtool.

2010-06-17  David Lutterkort  <lutter@redhat.com>

	Add aug_setm to API
	  * src/augeas.h (aug_setm): new public API call
	  * src/augeas.c (aug_setm): implement setting multiple nodes
	  * src/augeas_sym.version: export symbol aug_setm

2010-05-24  Frederik Wagner  <fnerdwq@googlemail.com>

	Shellvars: added SuSE sysconfig puppet files
	For SuSE systems, added /etc/sysconfig/{puppet,puppetmaster} to lens.

2010-05-18  Frederik Wagner  <fnerdwq@googlemail.com>

	List handling shellvars_list lens added.
	Lens shellvars_list has been added to treat variables in specific files
	as lists of words, e.g. in /etc/sysconfig/ 'kernel' and 'bootloader'.

	* lenses/shellvars.aug: removed include for /etc/sysconfig/kernel
	* lenses/shellvars_array.aug: new lens
	* lenses/tests/test_shellvars_array.aug: test for new lens

2010-05-13  David Lutterkort  <lutter@redhat.com>

	Add modules_conf to naturaldocs Menu

	Add /etc/modules.conf from hell
	Actually, from http://www.janerob.com/rob/ts5100/modules.conf

2010-05-13  Matthew Booth  <mbooth@redhat.com>

	Modules_conf: new lens for modules.conf and conf.modules

	Modprobe: Refactor to make re-use easier

2010-05-11  David Lutterkort  <lutter@redhat.com>

	* src/augeas.c: record expression for defvar in /augeas/variables

2010-05-07  David Lutterkort  <lutter@redhat.com>

	* Grub: handle comments within a boot stanza
	Fixes RH BZ 590067

	Adjust copyright notices
	  - copyright is from creation of file through 2010
	  - adjust copyright owner according to Red Hat's policy

2010-05-04  Raphael Pinson  <raphink@gmail.com>

	Group: add test for disabled account ('!' in password field)

2010-04-27  seph  <seph@directionless.org>

	Shellvars: process /etc/environment

2010-04-26  Nicolas Valc�rcel Scerpella  <nvalcarcel@ubuntu.com>

	Iptables: also look for /etc/iptables-save
	This is where Debian keeps iptables rules

2010-04-26  Frederik Wagner  <fnerdwq@googlemail.com>

	securetty: added handling of emtpy lines/comments
	* lenses/securetty.aug:
	        added handling of comments and empty lines
	* lenses/tests/test_securetty.aug:
	        added test for enhanced lens

2010-04-21  David Lutterkort  <lutter@redhat.com>

	Version 0.7.1

2010-04-21  Simon Josi  <josi@puzzle.ch>

	Securetty: new lens and test for /etc/securetty

2010-04-21  David Lutterkort  <lutter@redhat.com>

	Sudoers: use example file from Fedora 13
	This is causing trouble with release-0.7.0, but not this revision.

	File was reported in bug #122

2010-04-21  David Lutterkort  <lutter@redhat.com>

	tests: make most tests work on Solaris
	The test scripts are full of bashisms; removed some of them, though for
	most, just changed the shell from /bin/sh to /bin/bash; removing bashisms
	will need to be addressed.

	Tests now mostly pass (82/85) on the OpenCSW Solaris 5.10 build machine

2010-04-21  David Lutterkort  <lutter@redhat.com>

	* tests/test-save.c: use proper includes for WIFEXITED
	Without them, the build fails on FreeBSD

2010-04-20  David Lutterkort  <lutter@redhat.com>

	Debctrl (multi_line_entry): fix bad regexp
	The lens 'del /^ / " "' is not valid, since we do not allow '^' as a meta
	character. Changing that to 'del / / " "' exposed a typecheck problem in
	lns: both multi_line_entry and eol match blank lines. Fixed this by
	requiring that a multi_line_entry has to have at least one non-blank
	character.

	Debctrl: whitespace cleanup, no functional change

2010-04-20  David Lutterkort  <lutter@redhat.com>

	* src/fa.c (re_iter_as_string): escape literal '|'
	When turning a FA back to a string, a literal '|' needs to be output as '\|'

	  * tests/fatest.c (testExpandCharRanges): test escaping of literal '|'

2010-04-19  David Lutterkort  <lutter@redhat.com>

	* tests/fatest.c (print_regerror): do not use alloca

	* bootstrap: pull in isblank explicitly
	Fixes bug #111

	* src/lens.c (lns_check_rec): fix refcounting mistake on error path
	Fixes bug #120

	* src/augtool.c: report an error when 'get' fails

2010-04-19  David Lutterkort  <lutter@redhat.com>

	aug_get: return -1 when multiple nodes match
	This fixes breakage in the API contract for aug_get, introduced in commit
	e80494a6. Also adds a test to ensure we do not break API for aug_get again.

	Fixes bug #121

2010-04-16  David Lutterkort  <lutter@redhat.com>

	jmt: distinguish between successful parse and syntax error at end of input
	If a syntax error happened after the last character of the input string
	(e.g., becuase the input was incomplete), rec_process would think the parse
	was successful, and then notice that there was no parse result. That would
	lead to an incorrect error message hinting at an internal error, when it
	was really a syntax error.

	By changing the return value for jmt_visit, it's now possible to
	distinguish between internal errors, syntax errors and successful parses
	properly.

2010-04-16  David Lutterkort  <lutter@redhat.com>

	* src/get.c (visit_exit): handle L_MAYBE
	Added test to tests/modules/pass_simple_recursion.aug, lens 'maybe'

	Fixes bug #119

2010-04-16  David Lutterkort  <lutter@redhat.com>

	* src/jmt.c (build_tree): print debug output for build_nullable

2010-03-12  David Lutterkort  <lutter@redhat.com>

	* lenses/tests/test_logrotate.aug: add test for files separated by newlines
	This test the fix for bug #104, commit fe0453ce.

2010-03-11  David Lutterkort  <lutter@redhat.com>

	* lenses/group.aug (password): remove backslashes
	Backslashes in char classes are taken literally, they do not escape a
	character.

2010-03-11  root  <root@lx200.costest.lrz.de>

	Group: Added disabled password support
	* lenses/group.aug: '*' and '!' are allowed chars for disabled password
	* lenses/tests/test_group.aug: added test for lens change

2010-03-11  David Lutterkort  <lutter@redhat.com>

	* src/lens.c (lns_check_rec): avoid use of uninitialized 'result'
	The ensures can fail, and we check whether result is NULL in the error
	path.

2010-03-05  David Lutterkort  <lutter@redhat.com>

	* src/lens.c (lns_format_atype): format L_REC lenses

	* src/lens.c: remove asserts; better error for missed tag in switch

	Shellvars: handle a bare 'export VAR'

	Inittab: allow ':' in the process field
	Fixes part of bug #109

2010-03-05  Tim Stoop  <tim.stoop@gmail.com>

	Approx: allow keywords starting with '$'

2010-03-04  David Lutterkort  <lutter@redhat.com>

	Approx: lens and test for the approx proxy server

	Produce a better error when iteration stops prematurely during put/create
	We now try to include the name of the child node that caused us to stop in
	the error message.

2010-03-03  David Lutterkort  <lutter@redhat.com>

	* src/fa.c: allow the strange regexp syntax '(a|)'
	POSIX allows it, and so do we now

	Fixes bug #113

2010-03-02  David Lutterkort  <lutter@redhat.com>

	Passwd: parse NIS entries on Solaris
	Based on a fix by Stuart Sears

2010-02-26  David Lutterkort  <lutter@redhat.com>

	* src/fa.c: clean up error macros
	The error macros _E, _F, and _N use names reserved for system libraries;
	this leads to compile errors at least on Solaris (as reported by lanky).

	Rename _E and _F to E and F, and eliminate _N.

2010-02-26  Frederik Wagner  <wagner@lrz.de>

	Modprobe: Suse includes
	* lenses/modprobe.aug: included /etc/modprobe.conf.local

	Shellvars: Suse includes
	* lenses/shellvars.aug:
	    added include for /etc/sysconfig/network/ifcfg-

	Grub: support empty kernel parameters, Suse incl.s
	* lenses/grub.aug:
	  - added support for kernel parameters of the form "parameter="
	    w/o given value
	  - included /boot/grub/menu.lst
	  - changed default for delimiter in kw_menu_arg to " "
	* lenses/tests/test_grub.aug: changes corresponding to lens change

2010-02-26  Dominique Dumont  <domi.dumont@free.fr>

	Debctrl: new lens and test

2010-02-23  David Lutterkort  <lutter@redhat.com>

	Ntp: add 'tinker' directive
	Fixes bug #103

	Logrotate: tolerate whitespace at the end of a line
	Fixes bug #101

2010-02-23  Raphael Pinson  <raphink@gmail.com>

	Dhclient: add rfc code parsing
	Fixes bug #107

	Sudoers: allow del_negate even if no negate_node is found
	Fixes bug #106

	Logrotate: files can be separated by newlines
	Fixes bug #104

	Dput: add 'allow_dcut' parameter
	Fixes bug #105

2010-02-22  David Lutterkort  <lutter@redhat.com>

	* src/augtool.c: ignore empty lines from stdin
	We still complain about the nonsensical 'augtool ""'.

	Fixes BZ 566844 reported by Mike Burns

2010-02-22  Stuart Sears  <ssears@redhat.com>

	Sudoers (parameter_string_nobool_kw): accept "secure_path "
	Fixes BX 566134

2010-02-19  Tim Stoop  <tim.stoop@gmail.com>

	Nagisocfg: lens and test for /etc/nagios3/nagios.cfg

2010-02-12  Ivana Hutarova Varekova  <varekova@redhat.com>

	Cgrules: new lens and test
	See cgrules.conf for http://libcg.sourceforge.net/

2010-02-11  Ivana Hutarova Varekova  <varekova@redhat.com>

	Cgconfig: lens and tests for libcgroup config
	See http://libcg.sourceforge.net/

2010-02-11  Laine Stump  <laine@laine.org>

	* src/transform.c (file_info): fix memory leak

2010-02-09  David Lutterkort  <lutter@redhat.com>

	* lens.c (ambig_check): pretty print tree type errors
	Instead of dumping raw regular expressions for the tree encoding, print out
	something resembling our tree notation.

2010-02-08  David Lutterkort  <lutter@redhat.com>

	libfa: handle the syntax r{min,} properly
	  * src/fa.c (parse_repeated_regexp): set max = -1 when we see r{min,};
	    (re_iter_as_string): when max == -1, print r{min,}
	  * tests/fatext.c (testExample): add a few tests for this syntax

	* src/fa.c (parse_int): flag not parsing anything as an error

2010-02-08  David Lutterkort  <lutter@redhat.com>

	* src/jmt.c: add caller filtering
	Caller filtering is needed to weed out seemingly ambiguous parse trees (see
	Section 5.3 of Jim/Mandelbaum's paper)

	Also adds two pathological lenses and tests to
	pass_simple_recursion.aug. Those tests fail without caller filtering.

2010-02-08  David Lutterkort  <lutter@redhat.com>

	* AUTHORS: reformatted

	* tests/Makefile.am: add test for cobblermodules.aug

2010-02-08  Shannon Hughes  <shughes@redhat.com>

	Cobblermodules: lens + tests for cobbler's modules.conf

2010-02-02  David Lutterkort  <lutter@redhat.com>

	Shellvars: allow spaces after/before opening/closing parens for array
	Bug reported by Doug Warner

2010-02-01  Matthew Palmer  <matt@anchor.net.au>

	Sshd: allow optional arguments in subsystem commands

2010-01-27  David Lutterkort  <lutter@redhat.com>

	* src/augeas.c (tree_replace): don't bother marking the new parent as dirty
	We call tree_rm on it earlier, which already marks it as dirty.

	This line also triggered a SEGV when sub == NULL; this happened, for
	example, when /etc/apt/preferences was an empty file.

	Bug reported by Matt Palmer

2010-01-27  David Lutterkort  <lutter@redhat.com>

	* src/get.c (no_match_error): initialize lname
	Otherwise, gcc complains about a possibly uninitialized value with -O2

2010-01-25  David Lutterkort  <lutter@redhat.com>

	Test for using a recursive lens inside other lenses

2010-01-25  David Lutterkort  <lutter@redhat.com>

	* src/get.c: handle recursive lenses that are not L_REC
	Since any lens that uses an L_REC is itself recursive, the distinction
	whether to use get_rec or get_lens can be made in lns_get

	rec_process will also build the jmt if it does not exist yet

	Fixes ticket #100

2010-01-25  David Lutterkort  <lutter@redhat.com>

	Properly handle lenses that use L_REC lenses
	In constructs involving a recursive lens, we need to take the body of the
	recursive lens into consideration. We avoid infinite recursion by stopping
	when we see an L_REC that is marked as rec_internal, since that's the
	struct lens that points back to the top of the lens from within it.

	jmt_build now expects to be handed a properly set up recursive lens, which
	means that for an L_REC both the internal and external instances have to
	exist and be connected

	  * src/lens.c (lns_check_rec): defer building the jmt until the end
	  * src/jmt.c: when building the jmt, consider L_REC as long as it's not
	    internal

2010-01-25  David Lutterkort  <lutter@redhat.com>

	* src/jmt.c (print_grammar): recurse into L_REC if they are not rec_internal

2010-01-25  David Lutterkort  <lutter@redhat.com>

	* src/jmt.c (jmt_visit): allow for toplevel lenses that are not L_REC
	To reconstruct the parse of a lens that is not L_REC, but uses L_REC,
	e.g. l* where l is L_REC, we can not assume any longer that the root of the
	parse tree has only one child. Consequently, we need to start
	reconstruction with listing all the children of the root node.

	Split build_tree into build_children (collects a list of child nodes) and
	build_tree which creates the tree for a nonterminal.

	To start reconstruction, we now start with collecting the list of children
	of the root of the parse tree; the Earley graph does not contain an item
	for that, which makes this operation slightly special.

2010-01-25  David Lutterkort  <lutter@redhat.com>

	* src/lens.c: propagate rec_internal in the body of an L_REC

	* src/lens.c: don't short-circuit typechecking for recursive lenses explicitly
	The typecheck helpers are all smart enough to not run checks when one of
	the types is NULL, as is the case for recursive lenses.

	* src/lens.h (struct lens): explain better how we handle recursive lenses

	* src/jmt.c (build_trace): allow passing in a NULL item

	* src/lens.c (tags): add name for value primitive

	* src/get.c: replace assert's by ensure's
	assert aborts, which a library shouldn't do

	* src/errcode.h (ensure0): convenience version of ensure

	* src/get.c (find_seq): properly report OOM, do not call abort

	Remove assert_error_at
	This function was dangerous, since it does not jump, and therefore users
	will continue doing what they were doing, even if an assertion failed. Use
	BUG_ON instead.

	* src/get.c (struct state): make info a pointer

2010-01-23  David Lutterkort  <lutter@redhat.com>

	* src/lens.c (restrict_regexp): properly report OOM

2010-01-20  David Lutterkort  <lutter@redhat.com>

	Document the basics of building from git

2010-01-15  David Lutterkort  <lutter@redhat.com>

	* src/builtin.c: builtins for printing and inspecting lenses

	Add a unit type
	The literal '()' is the only member of the unit type. Composition is now
	allowed if the first expression is of type unit, i.e. '() ; something' is
	legal.

2010-01-15  David Lutterkort  <lutter@redhat.com>

	Language: allow '_' as an identifier that is never bound
	  The expression
	    let _ = something
	  will evaluate something and then immediately forget it

	  * src/lexer.l (LID): allow leading underscore
	  * src/syntax.c (bind, bind_type): do not bind '_'

2010-01-15  David Lutterkort  <lutter@redhat.com>

	New primitive lens 'value'
	In analogy to 'label', this lens allows setting the value of a tree node to
	a fixed string

2010-01-14  David Lutterkort  <lutter@redhat.com>

	Version 0.7.0

	Json: lens and tests for generic Json files

	Tests for recursive (context free) lenses

2010-01-14  David Lutterkort  <lutter@redhat.com>

	Syntax for recursive lenses
	Add a 'let rec' construct; the syntax should be considered experimental and
	might be changed to some other form of expressing recursion.

	With recursive lenses, we can't do the bottom-up typechecking that we do
	for regular lenses; we need to consider the whole lens at once. This is
	achieved by inserting a callback to lns_check_rec when we parse 'let rec
	ident = exp'.

	  * src/builtin.c (lns_check_rec_glue): new function
	  * src/lexer.l: new token LETREC
	  * src/parser.y: add syntax rule for LETREC and desugar it into a call to
	    lns_check_rec
	  * src/syntax.h: make free_term available, constant for name
	    of let_check_rec within the interpreter
	  * src/syntax.c (free_term): now extern, not static

2010-01-14  David Lutterkort  <lutter@redhat.com>

	* src/get.c (get_rec, parse_rec): get/parse for recursive lenses

	* src/put.c: put/create for recursive lenses

	Remember the jmt in the lens and free it when it is no loner needed

	Earley parser based on Jim/Mandelbaum's transducers

	Calculate if a lens's ctype is nullable

	Add a typechecker and constructor for recursive lenses
	  * src/lens.h (lns_make_rec, lns_check_rec): new functions
	  * src/lens.c (lns_make_rec, lns_check_rec): new functions

	Suppress buildtime typechecks for L_REC; propagate recursive flag

	* src/lens.c (free_lens): free recursive lenses

	* src/lens.h: add a recursive lens combinator

2010-01-14  David Lutterkort  <lutter@redhat.com>

	A simple debug facility
	Debugging is disabled by default. When configured with --enable-debug=yes,
	Augeas will look at runtime at the environment variable AUGEAS_DEBUG, which
	should contain a colon-separated list of categories. Besides printing
	various thigs on stdout, some debug output is also left in files in the
	directory set by the environment variable AUGEAS_DEBUG_DIR, e.g., dot
	graphs of various internal data structures.

	  * configure.ac: add --enable-debug option
	  * src/internal.h (debugging, debug_file): new functions
	  * src/internal.c (debugging, debug_file): new functions

2010-01-14  David Lutterkort  <lutter@redhat.com>

	struct error: add pointer back to struct augeas

	* src/errcode.h: more usable BUG_ON and BUG_FMT

	* src/lens.c (ambig_check): report OOM from fa_ambig_example

	* src/fa.c (fa_ambig_example): getting a NULL example is not an error

	* src/syntax.c (compile): give up after the first error
	We have no error recovery to speak off; if we keep going, we most of the
	time carpet-bomb the user with error messages that are simple follow-ons to
	the first error.

	* TODO: deleted, that list is in Trac now

	* src/fa.c (fa_intersect): initialize vars that could be used on error

	* src/fa.c (fa_as_regexp): convert strings more efficiently
	Since we are building the transitive closure of the FA, cut down the size
	of the FA by first extracting strings and removing their internal states.

	* src/fa.c (fa_as_regexp): fin only accepting state, no trans fin->fin

	Indicate whether an FA uses character ranges or regexps on transitions
	  * src/fa.c (struct fa): new field trans_re; (fa_as_regexp): set trans_re;
	    (fa_dot): print regexp rather than char range if trans_re is set

2010-01-13  David Lutterkort  <lutter@redhat.com>

	Add syntax for case-insensitive regexps
	A regexp literal /regexp/i will be converted to a case-insensitive regexp.

	* src/regexp.c (regexp_minus): respect nocase flags

	* src/lens.c (str_to_fa): compile nocase fa when needed

	* src/lens.c (str_to_fa): remove FIXME's and use proper error reporting

2010-01-13  David Lutterkort  <lutter@redhat.com>

	Support for case-insensitive regexps
	Add nocase argument to make_regexp, and adjust all uses of make_regexp to
	pass that in. For concatenation and union of regexps we have to expand
	case-insensitive regexps when they are mixed with case-sensitive regexps.

	Adjust all uses of make_regexp.

2010-01-13  David Lutterkort  <lutter@redhat.com>

	Add fa_expand_nocase to libfa

	Support for case-insensitive operations in libfa
	  * src/fa.h (fa_nocase, fa_is_nocase): new functions
	  * src/fa.c (struct fa): new field nocase; (fa_is_basic): a total FA has
	    two transitions under nocase; (fa_clone): preserve nocase flag;
	    (union_in_place, concat_in_place, fa_intersect): if one operand is
	    nocase, and the other isn't, expand the nocase FA to a case-sensitive
	    one; (totalize): do not add transitions on [A-Z]; (fa_nocase,
	    fa_is_nocase): new functions; (case_expand): new function
	  * tests/fatest.c (assertExample): also test against a nocase FA;
	    (testNoCase): test concat etc. on nocase FA's

	* src/lens.c (subtree_atype): new function

2010-01-07  David Lutterkort  <lutter@redhat.com>

	Facelift for augtool
	This makes augtool somewhat friendlier, mostly because

	  - help is organized better: typing 'help' produces a list of commands and
	    a brief synopsis for each, typing 'help command' prints detailed help
	    about a command
	  - augtool now knows about path expressions, so that they do not need to
	    be enclosed in quotes if they have spaces with predicates, e.g. you can
	    now type 'get /foo[ last() ]'

2010-01-07  David Lutterkort  <lutter@redhat.com>

	Record an error if more than one lens tries to load a file
	  * src/transform.c (file_info): new function; (transform_load): detect if
	    more than one lens tries to load a file and record error in
	    /augeas/files/PATH/error

	Pull computing a path underneath /files from a filename into a function
	  * src/transform.c (file_name_path): new function; (load_file): use
	    file_name_path

2010-01-07  David Lutterkort  <lutter@redhat.com>

	Change the metadata for individual files
	Record the name of the lens used to load the file in the lens node
	underneath /augeas/files/$PATH; the location info of the lens is kept in
	lens/info

	  * src/transform.c (add_file_info): change what we keep underneath the
	    lens node
	  * tests/xpath.tests (lircd-ancestor): adapt to metadata change

2010-01-07  David Lutterkort  <lutter@redhat.com>

	* src/transform.c (add_file_info): manipulate tree directly
	Going through public functions like aug_set is silly, and causes all kinds
	of string munging.

	Produce better error message for multiple matching transforms in save
	  * src/augeas.h (aug_errcode_t): new error code AUG_EMXFM
	  * src/augeas.c (errcodes): new error string for AUG_EMXFM; (tree_save):
	    report multiple transforms as proper error
	  * tests/test-save.c (testMultipleXfm): new test

	New function transform_file_error
	  * src/transfrom.h (transform_file_error): add prototype
	  * src/transform.c (transform_file_error): new function

	New function xfm_lens_name
	  * src/transfrom.h (xfm_lens_name): add prototype
	  * src/transform.c (xfm_lens_name): new function

2010-01-07  David Lutterkort  <lutter@redhat.com>

	Tree functions to find/create a node with a path expression
	Internal counterparts to aug_get and aug_set

	  * src/internal.h (tree_find, tree_find_cr): new prototypes
	  * src/augeas.c (tree_find, tree_find_cr): new functions

2010-01-07  David Lutterkort  <lutter@redhat.com>

	* src/internal.h: make various tree management functions available

2010-01-06  David Lutterkort  <lutter@redhat.com>

	Xinetd (name): fix bad '-' in character class

2010-01-05  David Lutterkort  <lutter@redhat.com>

	Do not choke on non-existing lens during save
	  * src/transform.c (add_file_info): check that lens is non-NULL;
	    (lens_from_name): provide detailed error message when lens lookup
	    failed; (transform_validate): copy error from lens_from_name into tree
	  * tests/test-save.c (testNonExistentLens): new test

	Fixes bug #98

2010-01-05  David Lutterkort  <lutter@redhat.com>

	New error code AUG_ENOLENS
	Indicates failure to look a lens up by name from /augeas/load/*/lens

	  * src/augeas.h (aug_errcode_t): new value AUG_ENOLENS
	  * src/augeas.c (errcodes): new entry for AUG_ENOLENS

2010-01-05  David Lutterkort  <lutter@redhat.com>

	* src/lens.c (lens_release): tolerate a NULL lens

2010-01-04  Bryan Kearney  <bkearney@localhost.localdomain>

	Cobblersettings: new lens and test

2010-01-04  David Lutterkort  <lutter@redhat.com>

	Rename read_file to xread_file

2009-12-23  David Lutterkort  <lutter@redhat.com>

	* src/lens.c (lns_make_union, lns_make_concat): do not access free'd memory
	make_lens_binop may free one of the lenses it gets passed. We can therefore
	not reference them after a call to make_lens_binop.

	* src/lens.c (format_lens): minimalistic pretty-printing of a lens

	* src/regexp.c (print_regexp): clean the regexp with fa_restrict_alphabet

2009-12-18  David Lutterkort  <lutter@redhat.com>

	* src/builtin.c (lens_get, lens_put): propagate errors as exceptions

2009-12-18  David Lutterkort  <lutter@redhat.com>

	More convenience macros for errors
	Add BUG_ON and ERR_RET macros for reporting internal errors

	  * src/errcode.h (BUG_ON, ERR_RET, HAS_ERR): new macros
	  * src/errcode.c (bug_on): implementation for BUG_ON

2009-12-17  David Lutterkort  <lutter@redhat.com>

	Lokkit: allow '-' in arguments

	Iptables: handle both negation syntaxes
	Options can be negated either with '! --option arg' or with '--option !
	arg'. We now handle both, though they lead to slightly different trees

2009-12-14  David Lutterkort  <lutter@redhat.com>

	* doc/ftdetect/augeas.vim: fix syntax

2009-12-09  Partha Aji  <paji@redhat.com>

	Made samba aug accept entry keys with ':' in them

2009-12-09  David Lutterkort  <lutter@redhat.com>

	Shellvars: allow arrays that span multiple lines

2009-12-07  David Lutterkort  <lutter@redhat.com>

	Iptables: allow quoted strings as arguments

2009-11-30  David Lutterkort  <lutter@redhat.com>

	Version 0.6.0

	Distribute and install vim syntax files
	Fixes ticket #97

	* Makefile.maint: sign tags

	Krb5: allow v4_name_convert in libdefaults section
	Fixes part of ticket #95

	Fstab: allow # in the spec
	Fixes part of ticket #95

	Group: allow empty password field
	Fixes part of ticket #95

	* src/parser.y: properly initialize yylloc
	Fixes ticket #96

2009-11-25  David Lutterkort  <lutter@redhat.com>

	Properly check regexp literals for syntax errors
	  * src/regexp.h (regexp_check): new function
	  * src/regexp.c (regexp_compile_internal): new function to base both
	    regexp_compile and regexp_check off
	  * src/syntax.c (check_value): produce a syntax error if regexp does not
	    pass regexp_check; (check_exp): make sure we do check values

	Fixes ticket #93

2009-11-25  David Lutterkort  <lutter@redhat.com>

	* src/lexer.l: include errcode.h; fix bad use of report_error

	* src/errcode.c: include stdarg.h

2009-11-25  David Lutterkort  <lutter@redhat.com>

	Cron: variable names can contain '_' etc.
	Use Shellvars.key_re for consistency.

	Fixes ticket #94

2009-11-25  Matt Palmer  <mpalmer@hezmatt.org>

	AptPreferences: add a put test
	Make sure we handle an empty file properly, and cleanup the resulting
	hassle

2009-11-24  Matt Palmer  <mpalmer@hezmatt.org>

	Normalise records so that empty lines (which are a required part of the syntax) don't creep into the tree

	Support version pins in apt_preferences

2009-11-23  David Lutterkort  <lutter@redhat.com>

	* tests/Makefile.am (lens_tests): run postfix_access tests

2009-11-16  Partha Aji  <paji@redhat.com>

	Added a Post Fix Access lens along with the unit tests

2009-11-13  David Lutterkort  <lutter@redhat.com>

	* src/lens.c (ambig_check): distinguish error between concat and iteration

	* src/regexp.c (regexp_escape): treat NULL regexps as the empty regexp

	* src/regexp.c (regexp_escape): fix stripping of enclosing parens
	Only strip them if they belong together, and not for something like /(a)(b)/

	* src/syntax.c: spew exceptions less often
	  print_value: only print exceptions that haven't been seen
	  compile_test: only print the exception for a test when it hasn't
	                been seen

	* src/get.c: never try to process a string that doesn't match
	When a string during init_regs doesn't match at all, there's nothing useful
	we can do. Immediately return an error from lns_get.

	* src/syntax.h (exn_error): produce an exception to indicate an error
	exn_error returns a special exception that indicates that an error has
	happened (e.g., out-of-memory) that has already been reported in the
	central augeas->error instance.

2009-11-12  David Lutterkort  <lutter@redhat.com>

	* src/info.c (print_info): do not choke on NULL info

	* src/internal.h: new macros MEMCMP and MEMMOVE

	* src/lens.c (lns_make_subtype): explain type derivation

	* examples/fadot.c: by default, print minimized regexp

	* examples/fadot.c: fix formatting, no functional changes

2009-11-10  David Lutterkort  <lutter@redhat.com>

	Make augparse and augtool use user's locale

	* test/Makefile.am (TEST_ENVIRONMENT): set LANG to a non-C locale

2009-11-10  David Lutterkort  <lutter@redhat.com>

	Remove character ranges from regexps if we are not in the C locale
	Since re_compile_pattern uses the current locale when expanding character
	ranges like [a-z], we need to be careful that such ranges are expanded in
	the C locale.

	  * configure.ac: check for uselocale
	  * src/internal.[ch] (regexp_c_locale): new function
	  * src/lens.c (digits_string): spell out the digits
	  * src/lens.c (restrict_regexp): expand char ranges in restricted regexp
	  * src/lexer.l (regexp_literal): run regexp literals through
	    regexp_c_locale
	  * src/regexp.c (regexp_escape): compress character ranges for printing
	  * src/regexp.c (regexp_minus): expand charcter ranges

	Fixes ticket #35 for systems that do not have uselocale (for systems with
	uselocale, the fix is commit 07b6a880)

2009-11-10  David Lutterkort  <lutter@redhat.com>

	libfa: new function fa_expand_char_ranges

	Calls to __aug_load_module need to go through api_entry/api_exit

2009-11-10  David Lutterkort  <lutter@redhat.com>

	Switch to C locale on API entry on systems that have uselocale
	Since we need to do all our operations (especially regexp matching) in the
	C locale, we switch to that on API entry, and switch back to the user's
	locale on API exit.

	That also makes it necessary that aug_init wraps the bulk of its work
	inside an api_entry/api_exit.

	Fixes ticket #35 for systems that have uselocale

2009-10-26  David Lutterkort  <lutter@redhat.com>

	Inittab: parse end-of-line comments into a #comment

2009-10-23  David Lutterkort  <lutter@redhat.com>

	* src/lens.c (lns_make_subtree): parenthesize key and value patterns
	These patterns may be a union not enclosed in parens

	* src/regexp.c (regexp_escape): don't clobber last character

	* src/lens.c: use regexp_escape to print regexps in error messages

	* src/fa.c (fa_restrict_alphabet): initialize parse

	* src/fa.c (special_chars): treat $ and ^ as special
	They are special when they are at the beginning resp. the end of a regular
	expression. Making them special (i.e., escaping them with '\') everywhere
	doesn't hurt.

	* src/fa.c (re_needs_parens_in_concat): ITER doesn't need parens in concat

	* src/fa.c (re_cset_as_string): work properly with negated cset
	We did not take re->negate into account, and always acted as if the cset
	was not negated. Introduce helper function cset_contains to both fix that
	and make the code a little clearer.

2009-10-22  David Lutterkort  <lutter@redhat.com>

	bootstrap: use stpcpy and stpncpy from gnulib

	Makefiles: gnulib now requires linking against libselinux
	  * src/Makefile.am (libfa_la_LIBADD): add LIB_SELINUX
	  * examples/Makefile.am (fadot_LDADD): remove GNULIB

2009-10-21  David Lutterkort  <lutter@redhat.com>

	Path expressions: add union operator
	Nodesets can now be unioned with the '|' operator

	Fixes ticket #89

2009-10-21  David Lutterkort  <lutter@redhat.com>

	* src/pathx.c (clone_nodeset): properly set size of the clone
	The size of the clone is the number of nodes in the original nodeset, not
	the size of the original nodeset.

	* src/regexp.c (regexp_union_n): insert '|' after the first non-NULL regexp
	We can not blindly insert a '|' after the first passed-in regexp since that
	(and any number of regexps at the beginning) might be NULL. We only insert
	'|' after actually copying a regexp into the result.

2009-10-20  David Lutterkort  <lutter@redhat.com>

	Wine: new lens and test
	Lens for parsing textual Windows registry files

2009-10-20  David Lutterkort  <lutter@redhat.com>

	Pam: allow '-' before type
	The type field in a pam.d file can start with a '-' to indicate that
	missing the module should not cause an error. The '-' is now mapped into
	the tree as a separate node 'optional'

	Bug reported by Shannon Hughes

2009-10-20  David Lutterkort  <lutter@redhat.com>

	* test/Makefile.am (lens_tests): add lens-ethers.sh

	* src/internal.c (escape): convert char to unsigned when printing as octal
	Without that, there's no guarantee that the char will be printed as three
	octal digits and not more

	Report line/column number when get/put test fails
	  * src/builtin.c (make_exn_lns_error): add line/column number in error
	    message
	  * src/internal.c (calc_line_ofs): moved here from transform.c
	  * src/internal.h (calc_line_ofs): declare prototype
	  * src/transform.c (calc_line_ofs): moved to internal.c

	* src/get.c (get_error): use end of last match as error position

	* man/augtool.1: regenerate

2009-10-19  David Lutterkort  <lutter@redhat.com>

	Krb5: support a [kdc] section
	The only entry it can have so far is 'profile' - no idea what else can go
	there since it's not documented in krb5.conf(5), but used, e.g. on Fedora
	11

2009-10-12  David Lutterkort  <lutter@redhat.com>

	Rx (device_name): allow '!' in device name

2009-10-09  David Lutterkort  <lutter@redhat.com>

	Lokkit: make argument for --trust more permissive
	The --trust option takes an interface name, whcih can be more than what
	token accepts.

	  * lenses/lokkit.aug (trust): new lens; (entry): use trust
	  * lenses/rx.aug (device_name): new regexp
	  * lenses/tests/test_lokkit.aug: new test for more permissive device names

2009-10-09  David Lutterkort  <lutter@redhat.com>

	Lokkit.forward_port: add missing eol
	Also adjust test_lokkit.aug since we're not getting a spurious empty entry
	anymore

2009-10-06  Satoru SATOH  <satoru.satoh@gmail.com>

	/etc/ethers: new lens and test
	The followings adds a new lens for /etc/ethers and associated test.

2009-09-30  David Lutterkort  <lutter@redhat.com>

	* src/augparse.c: get error details from error API

	interpreter: do not abort() on fatal errors or print on stderr
	Use the error reporting infrastructure for most errors. Fatal errors (bugs)
	in the interpreter now lead to an error code AUG_EINTERNAL, and not an
	abort()

	* src/parser.y: do not print to stderr

	* src/lexer.l: print into struct error instead of stderr

	New error code AUG_ESYNTAX

	* src/info.c (format_info): minor fixes
	  - append a ':' after the location
	  - produce a result even when line numbers are invalid
	  - use xasprintf, not asprintf

	* src/lexer.l (to_int): unused, remove

	Make struct error available in struct info
	This makes it much easier to report errors into the central struct error
	instance hanging off the Augeas instance.

	Put struct error and report_error into its own file
	Also, make the struct error in struct augeas a pointer

	* src/info.h: optimize layout of struct info

	*src/syntax.c: catch some allocation errors

	* src/ref.h (make_ref_err): convenience macro

	* tests/fatest.c (print_regerror): only print first 40 chars of regexp

	libfa: handle allocation failures gracefully

	parser: report some allocation failures

	* src/fatest.c: make testable with failmalloc
	  - when FAILMALLOC_INTERVAL is set, report success, no matter
	    how many tests failed (presumably because of memory starvation)
	  - abort with die_oom() if crucial internal checks can't be performed
	    because of allocation failures

	cutest: fortify against allocation failures
	  - new function die_oom which sets exit status to 2 when
	    we die from an oom condition
	  - use the safe-alloc macros for allocations
	  - abort the test when internal allocations fail

	* src/hash.c (hash_alloc_insert): return 0/-1 for success/error

	Use a proper function for make_ref
	That allows us to require that callers check the return value

	Handle allocation failures from define_native_intl

	build: support for running with libfailmalloc preloaded
	Add --with-failmalloc=LIB configure option and failmalloc targets to run
	select programs with failing allocations.

2009-09-24  David Lutterkort  <lutter@redhat.com>

	* src/transform.c: do not include canonicalize.h anymore
	The canonicalize-lgpl gnulib module doesn't require that anymore

2009-09-21  David Lutterkort  <lutter@redhat.com>

	Path expressions: add regexp matching
	Add a function regexp : string -> regexp and an operator
	 =~ : string|nodeset -> regexp -> boolean to the language for
	path expressions.

	* src/regexp.c (regexp_compile): do not print anything on error

2009-09-21  David Lutterkort  <lutter@redhat.com>

	Split regexps, info and strings out of syntax.[ch]
	  * Move struct string and struct info and related functions into info.[ch]
	  * Move headers for regexp.c into new file regexp.h

	This makes it easier to reuse these outside of syntax.[ch] - including
	syntax.h in get.c and put.c was way too much anyway.

2009-09-21  David Lutterkort  <lutter@redhat.com>

	aug_match, aug_mv: return -1 when pathx evaluation fails

	Report errors when exactly one match is expected
	aug_mv and aug_insert expect that exactly one node matches the path
	expressions they are given. Report new errors if none or more than one node
	match.

	* src/augtool.c: use new error API
	Call into the error API after each aug_* call and print error details

	Propagate pathx errors during evalutaion
	We did not report errors from pathx evaluation functions, only from the
	parser/typechecker. Now functions like pathx_first etc. report errors
	properly.

	Store pathx parse errors in internal error struct
	The pathx_parse function will now store error information in a struct
	error; we pass the one from struct augeas in and save it in the pathx.

	Reset old error messages on each entry through the API from the outside

	* src/syntax.c (interpreter_init): report errors

	Error reporting API and infrastructure
	Only reporting errors in the tree makes the API much harder to use; the
	aug_error* functions make it easier to inquire about errors
	programmatically.

	* src/pathx.c (pathx_symtab_init): unused, remove

2009-09-18  David Lutterkort  <lutter@redhat.com>

	* src/syntax.c (interpreter_init): fix potential leak
	If globbuf has entries in it when we encounter an error, we need to
	globfree it.

2009-09-17  Matt Palmer  <mpalmer@hezmatt.org>

	Sudoers: allow certain backslash-quoted characters in a command
	Commands may contain backslashes by themselves and the two-char sequences
	\\[=:,\\]

2009-09-14  David Lutterkort  <lutter@redhat.com>

	Version 0.5.3

2009-09-11  David Lutterkort  <lutter@redhat.com>

	Man pages: update to match current augtool and augparse

	Add --version option to augtool and augparse
	Fixes bug #88

	A couple more files for the test root

	Add preceding-sibling and following-sibling axes to path expressions

2009-09-10  David Lutterkort  <lutter@redhat.com>

	Better error message for too many args in a path expression

2009-09-09  David Lutterkort  <lutter@redhat.com>

	Slapd: include /etc/openldap/slapd.conf
	This is the default location in Fedora.

	Fixes bug #85

2009-09-04  David Lutterkort  <lutter@redhat.com>

	Multipath: new lens for /etc/multipath.conf

	* src/try: fix 'set annotate' for gdb

2009-09-03  David Lutterkort  <lutter@redhat.com>

	Transparent save of cross-device links
	When saving to a file, we first write to a file with extension .augnew and
	then rename that file to the actual file. This fails when the original is a
	symlink to a file on another device.

	We now write the .augnew file next to the canonicalized original file to
	avoid that headache. There are still situations where the rename fails,
	e.g. when the original file is bindmounted - in that situation, we have to
	copy.

2009-09-03  David Lutterkort  <lutter@redhat.com>

	* src/syntax.c (print_value): use print_tree instead of dump_tree

2009-09-02  David Lutterkort  <lutter@redhat.com>

	* lenses/rx.aug (fspath): simplistic regex for filesystem paths

	* src/lens.c (disjoint_check): print example as tree for put
	When the typechecker finds lens overlap in a union's put direction, format
	the generated example as a tree to make it more readable.

	* src/lens.c(enc_format): remove extraneous quote

	Make fa_example work for strings with embedded NUL's

2009-09-01  Matt Palmer  <mpalmer@hezmatt.org>

	Inetd: new lens and test

2009-08-31  David Lutterkort  <lutter@redhat.com>

	Pretty-print lens atypes and use that for errors during put
	* src/lens.c (lns_format_atype): new function
	* src/lens.h (lns_format_atype): new prototype
	* src/put.c (regexp_match_error): use lns_format_atype for errors

	* tests/modules/pass_strip_quotes.aug: test quote stripping
	The tests strips optional quotes and puts them back (or creates them) as
	needed, only depending on the value of the tree node.

2009-08-31  David Lutterkort  <lutter@redhat.com>

	Match trees on label and value, not just label
	We still only use one level in the tree for matching in the put direction,
	but take the values of nodes into account.

	We had fail_ tests in place to document the deficiency of the tree matcher,
	but with that deficiency gone, these now become passing tests.

2009-08-31  David Lutterkort  <lutter@redhat.com>

	Restrict the alphabet of a regexp

	Use offsets for various lens types

	Carry the key type explicitly in lenses
	Instead of computing the key type recursively, store it in lens->ktype. The
	key type becomes the new abstract type (atype) when a lens is used inside a
	subtree combinator.

	Allow NULLS in regexp_(union|concat)_n
	It's sometimes useful to union/concat N regexps even if some of them are
	NULL. regexp_(union|concat)_n will ignore them.

	libfa: handle regexps with embedded NUL characters
	So far, the API promised that we could do that, but that wasn't implemented.

	fa_compile: accept regexps with embedded NUL's

	Make regexp_escape strip enclosing parens; make API const correct
	  * src/syntax.h (regexp_escape): make const correct
	  * src/regexp.h (regexp_escape): strip '(...)' enclosing entire regexp

	* src/builtin.c (tree_clear_glue): primitive clear function for use in tests

2009-08-31  David Lutterkort  <lutter@redhat.com>

	Utility function xasprintf
	Like asprintf, but don't leave first arg in limbo on error

	*  src/internal.h (xasprintf): new prototype
	*  src/internal.c (xasprintf): new function

2009-08-31  David Lutterkort  <lutter@redhat.com>

	regexp_release: allow NULL regexp

	* src/augeas.c: do not read past the end of the load path

2009-08-14  David Lutterkort  <lutter@redhat.com>

	Only read regular files
	  * src/transform.c (is_regular_file): new function
	  * src/transform.c (filter_generate): do not include non-regular files

	Fixes bug #68

2009-08-12  David Lutterkort  <lutter@redhat.com>

	Do not assume how glob allocates gl_pathv
	We assumed that the gl_pathv in a glob_t was allocated in a particular
	manner.

	  * src/transform.c (filter_generate): make a copy of gl_pathv

2009-08-10  David Lutterkort  <lutter@redhat.com>

	aug_load: cleanup variables when deleting /files
	The first thing aug_load does is delete /augeas/files and /files. We need
	to make sure that any variables that contain references to nodes in those
	subtrees are cleaned up properly, i.e. that we remove such nodes from
	nodesets in the variables.

	  * src/augeas.c (tree_unlink_children): remove descendants of the tree we
	    are deleting from variables.
	  * tests/test-load.c (testLoadDefined): verify fix

	Fixes bug #79

2009-08-10  David Lutterkort  <lutter@redhat.com>

	Pass symtab explicitly into pathx_symtab_remove_descendants

2009-08-06  David Lutterkort  <lutter@redhat.com>

	Record new files under /augeas/files when they are saved
	  * src/transform.c (transform_save): add file info with add_file_info
	  * tests/test-save.c: test that file info is added for a new file
	  * tests/Makefile.am: build and run test-save
	  * .gitignore: ignore tests/test-save

	Fixes bug #78

2009-08-06  David Lutterkort  <lutter@redhat.com>

	* src/transform.c (add_file_info): change what we store about a file
	For a file FILE, we now only record the path and the info for the lens;
	instead of

	  /augeas/files/FILE/path      = /files/FILE
	  /augeas/files/FILE/lens/info = ...
	  /augeas/files/FILE/lens/id = 0x...

	we only record

	  /augeas/files/FILE/path  = /files/FILE
	  /augeas/files/FILE/lens  = ...

	The id wasn't useful to anybody, and the lens info is useful for debugging
	at best

2009-08-06  David Lutterkort  <lutter@redhat.com>

	* src/transform.c (add_file_info): minor cleanup
	  - Rename add_load_info to add_file_info
	  - Eliminate filename argument, since it's redundant

2009-08-06  David Lutterkort  <lutter@redhat.com>

	defnode: when creating new node, put it in the nodeset
	When a new node is created, e.g. with 'defnode x "/foo[0 = 1]"' we used to
	assign an empty nodeset to x. Now x will hold a reference to the newly
	created node, even though the initial path expression would never match any
	nodes.

	  * src/augeas.c (aug_defnode): call pathx_symtab_assign_tree after
	    creating a node
	  * src/pathx.c (pathx_symtab_assign_tree): new function to assign a single
	    tree node to a variable
	  * src/internal.h: declare pathx_symtab_assign_tree
	  * tests/test-xpath.c (test_defnode_nonexistent): test new behavior

2009-08-05  David Lutterkort  <lutter@redhat.com>

	* src/lexer.l: allow DOS line endings
	Accept \r\n as a line ending in addition to \n

	Fixes RH Bugzilla 514712

2009-08-04  Matthew Booth  <mbooth@redhat.com>

	Require quotes around strings in xorg.conf
	man xorg.conf appears to support this:
	           String      a string enclosed in double quote marks (")

	This change means that explicitly parsed values will remove quotes in the
	get directory and insert them in the put direction.

	Currently, only the following entries are explicitly parsed:
	* Option
	* Screen
	* InputDevice
	* Driver
	* SubSection
	* Identifier
	* VideoRam
	* DefaultDepth
	* Device
	* All entries in the Display Subsection

	The lens will also accept any other entry name not in this list. However,
	as it does not know what types to expect, it stores a bare string. This
	will include quote marks.

2009-08-04  Matthew Booth  <mbooth@redhat.com>

	Add more specific entry handlers to xorg.conf
	Additionally handle:
	* Driver
	* Identifier
	* VideoRam
	* DefaultDepth

	This covers all entries in the default configuration.

	The advantage of having a specific handler is that it knows more about what
	values are valid. For example, with this patch Driver will not accept an
	unquoted value, which would cause the X server not to start.

2009-08-04  Matthew Booth  <mbooth@redhat.com>

	Parse more directives in xorg.conf
	The default xorg.conf generated by pyxf86config on Red Hat/Fedora systems
	is not parsed by the current xorg.conf. Specifically it does not
	understand:

	* Screen, in ServerLayout
	* InputDevice, in ServerLayout
	* SubSection "Display" ..., in Screen

	This patch adds support for those values, so that the default xorg.conf on
	Red Hat/Fedora systems now parses.

	It should also add support for all directives in the Display subsection,
	however they are not covered by the test.

2009-07-31  Marc Fournier  <marc.fournier@camptocamp.com>

	vim: extra carriage return caused a parse error

2009-07-23  Jim Meyering  <meyering@redhat.com>

	tests: extract SELinux context more portably
	* test-preserve.sh: Use stat --format=%C $hosts ... rather than
	ls -lZ $hosts | cut -d ' ' -f 5.  The latter fails with some
	combinations of ls and SELinux.

2009-07-16  David Lutterkort  <lutter@redhat.com>

	* src/Makefile.am: link libfa with gnulib, needed on AIX

2009-07-14  Bruno Cornec  <Bruno.Cornec@hp.com>

	* doc/augeas.vim: vi syntax highlighting for .aug files

2009-07-13  David Lutterkort  <lutter@redhat.com>

	Version 0.5.2

2009-07-09  David Lutterkort  <lutter@redhat.com>

	tree handling: propagate dirty flag into root
	We had an off-by-one error in tree_mark_dirty that lead to the root of the
	tree not being marked as dirty. As a consequence, performing a tree_clean
	on such a tree would not mark the tree as clean; that caused an aug_load
	directly followed by aug_save to write to disk, even though the tree was
	unchanged.

	  * src/augeas.c (tree_mark_dirty): propagate dirty flag to the root
	  * tests/test-load.c (testLoadSave): test that simple load + save
	    does not touch the filesystem

	This bug was introduced in commit 7278965b

2009-07-08  David Lutterkort  <lutter@redhat.com>

	Ntp: allow additional options for server etc.
	Allow options listed on http://doc.ntp.org/4.2.4/confopt.html

	Fixes bug #72 reported by Micah

2009-07-08  David Lutterkort  <lutter@redhat.com>

	Shellvars: allow backticks as quote characters
	  * lenses/shellvars.aug (simple_value): allow backticks as quotes
	  * lenses/tests/test_shellvars.aug: add tests

	Fixes bug #74 reported by Micah

2009-07-08  Jim Meyering  <meyering@redhat.com>

	build: ignore generated test files
	* tests/.gitignore: Remove file.
	* .gitignore: ignore tests/lens-*.sh

2009-07-08  David Lutterkort  <lutter@redhat.com>

	Logrotate: allow filenames to be indented
	  * lenses/logrotate.aug (rule): allow indentation at start of rule
	  * lenses/tests/test_logrotate.aug: add tests

	Fixes part of bug #67 reported by Micah

2009-07-08  David Lutterkort  <lutter@redhat.com>

	Logrotate: make owner/group in create statement optional
	  * lenses/logrotate.aug (create): make mode/owner/group optional
	  * lenses/test/test_logrotate.aug: add tests

	Fixes part of bug #67 reported by Micah

2009-07-08  David Lutterkort  <lutter@redhat.com>

	* configure.ac: use AC_SYS_LARGEFILE
	Suggested by Jeff Johnson <n3npq@mac.com>

2009-07-08  David Lutterkort  <lutter@redhat.com>

	* src/augeas.c (init_root): when root0 == "", use "/" as root
	When an empty string is passed as root0, make sure we do not make an
	invalid memory access when we look for the trailing slash.

	Reported and fix suggested by Jeff Johnson <n3npq@mac.com>

2009-06-26  Jim Meyering  <meyering@redhat.com>

	tests: divide test-lenses.sh into its 54 independent tests
	This permits these tests to be run in parallel.
	* tests/lens-test-1: New file.
	* tests/Makefile.am (lens_tests): Define.
	(check-lens-tests): New rule, to ensure that the above stays in
	sync with reality.
	(check): Depend on check-lens-tests.
	($(lens_tests)): New rule.  Generate these files.
	(check_SCRIPTS): Remove test-lenses.sh.  Add $(lens_tests).
	(EXTRA_DIST): Add lens-test-1.
	* tests/test-lenses.sh: Remove file.
	* tests/.gitignore: suppress lens-*.sh files

	enable automake-1.11 features: colorized and parallel tests, etc.
	Also enable automake's new "silent-rules" feature.
	Use "make V=1" to see the usual, verbose-mode commands.
	* configure.ac: Require automake-1.11.
	Enable color-tests parallel-tests.  Use AM_SILENT_RULES([yes])

2009-06-26  Marc Fournier  <marc.fournier@camptocamp.com>

	Yum: also read files in /etc/yum/pluginconf.d

2009-06-16  David Lutterkort  <lutter@redhat.com>

	Inittab: clean up formatting some

2009-06-16  Matt Palmer  <matt@anchor.net.au>

	Inittab: simplified schema, map comments
	Change the structure of the inittab lens so that the 'id' field is used
	as the name of the subtree for that line in /etc/inittab.

	Map comments as '#comment' nodes

2009-06-16  David Lutterkort  <lutter@redhat.com>

	augtool: add --echo option
	  * src/augtool.c: add --echo option to print commands when reading
	                   from a file via stdin
	  * man/augtool.pod: document --echo option
	  * man/augtool.1: regenerated

2009-06-15  Jim Meyering  <meyering@redhat.com>

	build: fix "make distcheck" failure
	* src/Makefile.am (EXTRA_DIST): Add fa_sym.version.

2009-06-12  Anders F Bjorklund  <afb@users.sourceforge.net>

	* tests/augtest: convert darwin's double slashes to single slash

	* test-test-preserve.sh: work with BSD ls, as well as GNU ls
	Needed to make the test pass on OS/X

2009-06-11  David Lutterkort  <lutter@redhat.com>

	libfa: use linker script to only export public symbols
	libfa was exporting all kinds of symbols that were meant to be internal;
	now it only exports what's in fa.h

2009-06-11  Anders F Bj�rklund  <afb@users.sourceforge.net>

	configure: do not use version script if the linker doesn't support it
	That is the case on OS X

	Fixes part of ticket #66

2009-06-11  Anders F Bj�rklund  <afb@users.sourceforge.net>

	configuration: check whether rl_completion_matches is available
	That function is missing on OS/X; we substitute it with a dummy if readline
	does not provide it.

	Fixes part of ticket #66

2009-06-11  Anders F Bj�rklund  <afb@users.sourceforge.net>

	* src/augtool.c: add missing include for ctype.h
	Part of fix for ticket #66

2009-06-09  David Lutterkort  <lutter@redhat.com>

	Version 0.5.1

	* tests/test-put-symlink.sh: fix broken test
	- use lenses in ../lenses
	- fix typo: HOSTS_AUGSAVE, not HOSTS_AGSAVE

	* bootstrap: use getline module from gnulib

	* src/augtool.c: initialize 'line' to NULL

2009-06-05  David Lutterkort  <lutter@redhat.com>

	Logrotate (hooks): simplify to speed up typechecker

	Logrotate: make newline at end of script optional

	* src/put.c (put_store): escape regexp before printing

	* src/pathx.c: coerce the operands of 'and'/'or' to boolean
	Fixes bug #44

	* src/lexer.l: allow empty regexps
	Fixes bug #34

	Dnsmasq: process files in /etc/dnsmasq.d/*
	Fixes bug #65 reported by abnormaliti

2009-06-01  David Lutterkort  <lutter@redhat.com>

	* src/augtool.c: allow comments starting with '#'

2009-05-29  David Lutterkort  <lutter@redhat.com>

	Whitespace cleanup (no functional change)
	Remove trailing whitespace

2009-05-29  David Lutterkort  <lutter@redhat.com>

	Ntp: support more commands
	* process 'broadcastdelay'
	* process enable/disable flags
	* process leapfile

	Minor amount of code cleanup

	Fixes bug #62, reported by Frank Sweetser

2009-05-29  David Lutterkort  <lutter@redhat.com>

	Fix grammar docs (production for PrimaryExpr was wrong)

	* tests/root/etc/: add group and passwd files

2009-05-28  Matt Palmer  <matt@anchor.net.au>

	Interfaces: various bug fixes
	* disallow end-of-line comments
	* support generic allow-* stanzas

	Interfaces: accept options containing '_'
	Bug reported by Jonas Eriksson

2009-05-28  David Lutterkort  <lutter@redhat.com>

	* tests/grub-rm-entry.rb: 'savedefault' indented by '\t', not ''

2009-05-14  David Lutterkort  <lutter@redhat.com>

	Modprobe: handle comments at the end of a line

2009-04-13  David Lutterkort  <lutter@redhat.com>

	Grub: allow optional argument for savedefault command

	Grub: parse arguments to chainloader command

	Grub: parse arguments for terminal command

	Grub: parse individual arguments for serial command

	Grub: parse kernel and module arguments

	Grub: simplify comment_re to speed up typecheck

2009-04-13  Raphael Pinson  <raphink@gmail.com>

	Cron: add a "time" node

2009-04-13  David Lutterkort  <lutter@redhat.com>

	* src/augeas.h: improve some comments

2009-04-09  David Lutterkort  <lutter@redhat.com>

	* src/augparse.c: add --notypecheck option

2009-04-08  Raphael Pinson  <raphink@gmail.com>

	Pbuilder: lens and tests for Debian's personal builder

	Shellvars: map comments with Util.comment and Util.empty

	Shellvars: parse 'export' and 'unset' commands

2009-04-08  David Lutterkort  <lutter@redhat.com>

	Add Cron to the dosumentation menu

2009-04-08  Raphael Pinson  <raphink@gmail.com>

	Cron: new lens and test
	Parses /etc/crontab and /etc/cron.d

2009-04-08  Raphael Pinson  <raphink@gmail.com>

	Sudoers: allow backslashes inside sto_to_com and sto_to_com_user
	This patch fixes ticket #60 which reports the possible usage of
	backslashes in sudoers aliases (for use with e.g. Windows resources).

	Backslashes are now allowed only in the middle of sto_to_com and
	sto_to_com_cmnd.

	Additionally, add a line with backslashes in test_sudoers to prevent
	regressions.

2009-04-08  Raphael Pinson  <raphink@gmail.com>

	Xinetd: map comments using Util.comment

	Squid: allow indentation of entries

2009-04-07  Raphael Pinson  <raphink@gmail.com>

	Logrotate: allow = as a separator for value_to_eol
	Fix ticket #61 by allowing "=" as a valid separator in value_to_eol.
	"word" may not contain "=" anymore in this case.  Note that this is not
	documented in "man logrotate" but is shipped by default in CentOS (cf
	ticket #61).

2009-04-07  David Lutterkort  <lutter@redhat.com>

	Ntp: fixes to make the default Fedora config work
	Now enough of ntp.conf is understood so that the config from Fedora 10 with
	all directives uncommented can be processed.

2009-04-07  Raphael Pinson  <raphink@gmail.com>

	Ntp: add fudge directive
	Fixes ticket #59

2009-04-07  David Lutterkort  <lutter@redhat.com>

	* src/transform.c (transform_save): append newline to old text
	If we appended a newline to initially load the file, we also need to do
	that when we parse the file again during save.

	Bug reported by Michael Conigliaro <mike@conigliaro.org>

2009-04-03  David Lutterkort  <lutter@redhat.com>

	* src/augtool.c: new option --noautoload

	* src/augeas.h: expose flag to suppress module autoload
	With AUG_NO_MODL_AUTOLOAD, modules are only loaded when they are needed.

	* src/transform.c (filter_generate): avoid segfault if we never call glob

	Php: some more tests, sample php.ini in test root

	Rx: remove \b and \d escapes

2009-04-03  Raphael Pinson  <raphink@gmail.com>

	Modify some existing lenses to use new utility modules
	Changes Aliases, Exports, Fstab, Group, and Monit

	Also exposes comments in /etc/aliases as #comment nodes

2009-04-03  Raphael Pinson  <raphink@gmail.com>

	New utility modules Build, Rx, and Sep

2009-04-03  Marc Fournier  <marc.fournier@camptocamp.com>

	Php: added default path on redhat

2009-04-02  Raphael Pinson  <raphink@gmail.com>

	Use readline only when stdin is a tty, use getline otherwise

2009-04-01  Marc Fournier  <marc.fournier@camptocamp.com>

	Vsftpd: several fixes
	* map comments as #comment
	* handle empty lines
	* find vsftpd.conf on Fedora/RHEL

2009-03-27  David Lutterkort  <lutter@redhat.com>

	Iptables: fix ticket #51
	 * allow more characters in chain names
	 * allow comments mixed in with chains and rules

	* augeas.spec.in: fadot is not installed yet

	Version 0.5.0

	Fix build problems uncovered by distcheck

	* src/get.c (get_quant_star): do not leak registers

	Some more test files

	Fix uninitialized variables found by optimizer

	* src/hash.c (hash_free_nodes): simplify and accelerate
	Reduces time to typecheck grub.aug from 9.8s to 8.5s on my machine.

	* src/hash.c: mark some asserts as expensive

	* tests/root/etc/krb5.conf: simple example file

	Krb5: lens and tests for /etc/krb5.conf

2009-03-25  Raphael Pinson  <raphink@gmail.com>

	Grub: add support for Debian's update-grub (ticket #50)
	Bug reported by Micah Anderson

2009-03-25  David Lutterkort  <lutter@redhat.com>

	* src/fa.c (fa_ambig_example): use heuristic for fast checking
	This avoids a lot of intersections in the Augeas typechecker, and speeds
	typechecking up by between 5% and 20%, depending on the lens.

	Thanks to Nate Foster for the inspiration of this

2009-03-25  David Lutterkort  <lutter@redhat.com>

	Sudoers: produce at most one negate node
	Even if there are multiple '!' signs, only produce one negate node.

2009-03-25  Raphael Pinson  <raphink@gmail.com>

	Sudoers: fix ticket #48
	* make a difference between boolean and non boolean values for integers and
	  strings
	* allow multiple negate flags (odd/even numbers change the behaviour)
	* add optional double quotes to integer and string field

	Bug reported by Frank Sweetser

2009-03-25  David Lutterkort  <lutter@redhat.com>

	* src/augtool.c: make second argument for 'set' optional
	This makes it possible to set a tree node's value to the empty string
	with
	  set /foo ""
	and
	  set /foo

2009-03-24  David Lutterkort  <lutter@redhat.com>

	* src/augeas.c (aug_init): make it easier to override distributed lenses
	Make the default load path

	   $(datadir)/augeas/lenses:$(datadir)/augeas/lenses/dist

	and instal the lenses we distribute into the dist/ subdir. That makes it
	easy for other packages to override lenses we ship: when they are installed
	into $(datadir)/augeas/lenses, they are automatically preferred over the
	ones we ship.

2009-03-24  David Lutterkort  <lutter@redhat.com>

	New API call aug_defnode and augtool command defnode
	It's common that we want to define a variable to reference /foo/bar, and
	create that node if it does not exist yet. aug_defnode bundles that
	together into one convenient call.

	* src/pathx.c (eval_filter): correctly hande realloc of value_pool

	* src/pathx.c (expand_tree): ensure we start with a nonempty lp_trace

	* src/augtool.c: new 'defvar' command

	Add variables for path expressions
	The new API call aug_defvar allows defining variables that can later be
	used in path expressions.

2009-03-22  David Lutterkort  <lutter@redhat.com>

	Add FilterExpr to path expression grammar
	This allows using constructs like $foo/some/path and $foo[2]

	* src/augeas.c (parse_user_pathx): new parameter need_nodeset

	* src/pathx.c (pathx_parse): new parameter need_nodeset

	* src/pathx.c (ns_filter): new function

	* src/pathx.c: rename E_LOCPATH to E_FILTER

	* src/pathx.c (clone_value): new function

2009-03-21  David Lutterkort  <lutter@redhat.com>

	* src/pathx.c (release_value): factor logic into separate function

	* src/pathx.c: remove assumption that toplevel expression is a locpath
	We can't assume that anymore when we have variables. That requires some
	headache for pathx_expand_tree, since that needs a full trace of evaluating
	a locpath against the tree.

	* src/pathx.c (pathx_eval): factor eval into a function

	* examples/fadot: remove, checked in by mistake

2009-03-20  David Lutterkort  <lutter@redhat.com>

	* .gitignore: ignore examples/fadot

	* src/get.c: rename 'Short iteration' to a more helpful message

	* src/transform.c (store_error): report which lens failed

	* src/transform.c (store_error): ignore errors from err_set

	* src/transform.c (store_error): calculate line number/ofs for error

	* src/transform.c (err_set): new function

2009-03-20  Francis Giraldeau  <francis.giraldeau@revolutionlinux.com>

	* examples/fadot.c: tool to generate dot graphs of FA's
	The fadot tool produces dot graphs of finite automata, and allows certain
	operations on FA's from the command line, like intersection and complement
	of FA's.

2009-03-19  David Lutterkort  <lutter@redhat.com>

	* src/pathx.c: call make_value before pop_value
	Since make_value might realloc, pointers retrieved with pop_value may
	become invalid across make_value calls.

	* src/augeas.c: remove some internal uses of pathx_parse

	* src/augeas.c: create various /augeas nodes when they go missing

	* src/put.c (create_concat): fix goofy error message

	Update and refresh man pages

	* src/augtool.c: add --noload option

	Validate trees representing a transform before using them

	* tests/test-load.c: new test for aug_load

	* src/augeas.h (aug_init): make loading the tree optional
	The new flag AUG_NO_LOAD can be used to keep aug_init from loading any
	files. This gives the user a chance to modify /augeas/load and then call
	aug_load.

	* src/augtool.c: new 'load' command

	* src/augeas.h (aug_load): new public function

	* src/transform.h: use tree encoded transforms

	* src/lens.c (lens_release): allow NULL lens to be passed in

	* src/syntax.h (lens_lookup): new function

	* src/augeas.c: report transforms under /augeas/load

	Rename AUG_NO_DEFAULT_LOAD to AUG_NO_MODL_AUTOLOAD

	Limits (filter): no need to exclude anything

2009-03-19  Raphael Pinson  <raphink@gmail.com>

	Limits: map domain into the value of domain node (schema change)
	Mapping the domain as the label of a node leads to difficulties since '*'
	is a valid domain name.

	Problem reported by Mark Drayton (ticket #47)

2009-03-19  David Lutterkort  <lutter@redhat.com>

	Lokkit: new lens and test

2009-03-17  David Lutterkort  <lutter@redhat.com>

	Iptables: new lens and test
	A fairly basic parse of the iptables config file. It should accept any
	legal iptables config file; what makes it basic is that it doesn't break
	some of the values down as fine-grained as I would like to have them

2009-03-13  David Lutterkort  <lutter@redhat.com>

	* configure.ac: bump major version of libfa

	* src/fa.h (fa_as_regexp): cleaner prototype

	* src/fa.h (fa_ambig_example): cleaner prototype

	* src/fa.h (fa_example): cleaner prototype

	* src/fa.h (fa_compile): pass in size of regexp

	* src/fa.h: use 'struct fa *' instead of fa_t

2009-03-13  David Lutterkort  <lutter@redhat.com>

	* src/augeas.c: fix handling of dirty flag
	Under some circumstances, we did not properly propagate the dirty flag up
	the tree, leading to files that were not saved even though they should have
	been.

	This also removes two full sweeps over the tree for dirty handling, and now
	only touches nodes that are/need to be marked dirty.

2009-03-13  David Lutterkort  <lutter@redhat.com>

	* Makefile.maint: different setup at home

2009-03-12  David Lutterkort  <lutter@redhat.com>

	* src/transform.c (transform_save): properly sync data to disk
	Make sure the data we write into the .augnew file hits the disk before
	renaming to the proper name

	Modprobe: lens and tests for modprobe.conf

	* src/fa.c (re_cset_as_string): turn '[^\n]' into '.'

	Place Sudoers and Util under LGPLv2+
	Raphael Pinson agreed to changing the license for these to LGPLv2+ like the
	rest of Augeas.

2009-03-09  David Lutterkort  <lutter@redhat.com>

	Version 0.4.2

	Logrotate: process 'minsize 1M' rule
	logrotate allows unit suffixes 'k', 'M' and 'G' for 'size' and 'minsize'

	Squid: add squid.conf from Fedora 11 rawhide

	* src/builtin.c: new builtins Sys.getenv and Sys.read_file

	* src/syntax.h (dup_string): duplicate a string

	* src/internal.h (xstrerror): new function

2009-03-09  Francois Deppierraz  <francois.deppierraz@camptocamp.com>

	Test the Debian Lenny sample squid.conf

2009-03-09  Francois Deppierraz  <francois.deppierraz@camptocamp.com>

	Add a bunch of keywords available on squid-2.7-STABLE6 or squid-3.HEAD-20090308.
	The keywords list was generated by the following command:

	fgrep TAG squid-2.7.STABLE6/src/squid.conf.default  | awk '{ print "                | \""$3"\"" }' | sort > /tmp/squid2.7

	fgrep TAG squid-3.HEAD-20090308/src/squid.conf.documented | awk '{ print "                | \""$3"\"" }' | sort > /tmp/squid3-HEAD

	cat /tmp/squid2.7 /tmp/squid3-HEAD | sort | uniq

2009-03-08  David Lutterkort  <lutter@redhat.com>

	* tests/xpath.tests: Hosts lens puts comments into #comment nodes

	* augeas.spec.in: BR for libselinux-devel (bug #26)
	Without the BR, the Fedora and EPEL builds are done without SELinux
	support, resulting in a binary that does not preserve SELinux contexts

2009-03-06  David Lutterkort  <lutter@redhat.com>

	Sshd: map comments as '#comment' nodes

	Change the label for comment nodes to '#comment'

	Do not delete files that had an error upon parsing
	When we can't read a file, we create an entry for it under /augeas, but
	there won't be anything for it under /files. That looks a lot like a file
	whose entire subtree was deleted; but since we failed reading the file, we
	should not delete it either.

	* src/augeas.c (aug_init): always create /files

	Sshd: add test showing how to add a Subsystem

2009-03-03  David Lutterkort  <lutter@redhat.com>

	* Makefile.maint: add autogen target

	* src/pathx.c (eval_rel): for numbers, '<' and '<=' were reversed

	Postfix_main: handle continuation lines

	* src/pathx.c: fix some comments

2009-03-02  David Lutterkort  <lutter@redhat.com>

	Version 0.4.1

	* configure.ac: make default warning level 'maximum'
	Using 'error' here is too unfriendly on weird platforms, since builds can
	fail, e.g. because of broken system headers. When doing actual development,
	set this to 'error'.

	* src/pathx.c: function label() returning the label of the ctx node

	* src/pathx.c: make sure ['foo' != 'foo'] is false

2009-03-02  David Lutterkort  <lutter@redhat.com>

	* src/pathx.c: handle names with '.' properly
	Make sure that a component ina path expression like '.bar' is parsed as a
	single step (name), and not as the self axis '.' followed by some
	garbage.

	Bug reported by Jan Kupec

2009-03-02  David Lutterkort  <lutter@redhat.com>

	* src/pathx.c: it is an error if we don't consume the whole expression

2009-02-27  David Lutterkort  <lutter@redhat.com>

	* tests/test-event-saved.sh: make sure fuiles are writable by owner

2009-02-25  David Lutterkort  <lutter@redhat.com>

	Plug a few memory leaks

	Remove files whose tree under /files was deleted
	When doing rm /files/etc/hosts, we now delete the file /etc/hosts
	on save

	Move path formatting functions around
	Move path_expand and format_path to internal.c
	Rename format_path to path_of_tree

	* src/augeas.c (tree_find): helper for getting a tree node

2009-02-24  David Lutterkort  <lutter@redhat.com>

	* src/augeas.c: erase /augeas/events/saved only once
	tree_save is called recursively; /augeas/events/saved must be reset
	in aug_save, not tree_save

	Record saved files in transform_save, not tree_save

	* src/augeas.c (tree_unlink): remove and free a subtree

	* src/transform.h: move transform decls out of syntax.h

	Util.stdexcl: exclude .augsave and .augnew files

2009-02-20  David Lutterkort  <lutter@redhat.com>

	* src/lexer.l: correct location info for strings and regexps

	* src/get.c: check for valid match before calling token()

2009-02-19  David Lutterkort  <lutter@redhat.com>

	* src/parser.y: do not allow epsilon as a tree constant
	This grammar mistake made epsilon a valid expression

	* src/fa.c: cache hash values in the state
	This gives about a 15% performance improvement in typechecking
	the logrotate lens

2009-02-18  David Lutterkort  <lutter@redhat.com>

	* src/pathx.c: allow '(' Expr ')'

	* src/pathx.c: add 'and' and 'or' operators

	* src/pathx.c: add relational expressions '>', '<', '>=', '<='

	* src/pathx.c: add count() function

	* src/pathx.c (parse_name): do not allow ')' in names
	Names can not contain ')', otherwise we will run beyond the end of
	arguments in a function call like 'f(name)'

	* src/pathx.c: add position() function

	* src/pathx.c: allow '=' and '!=' of numbers

2009-02-18  David Lutterkort  <lutter@redhat.com>

	* src/pathx.c: fix matching multiple predicates
	We used to evaluate /path[pred1][last()] wrong - last() must match the last
	node in the nodeset /path[pred1], not the last node in the nodeset /path.

	This requires that we compute nodesets explicitly.

2009-02-18  David Lutterkort  <lutter@redhat.com>

	Logrotate: small fixes
	* recognize 'yearly' schedule
	* allow whitespaces around { and }

2009-02-17  David Lutterkort  <lutter@redhat.com>

	* src/get.c: speed up initial match
	Avoid matching the entire input string, since it can be _very_ slow.
	Since it is very common that the toplevel lens is (l)*, optimize for
	that.

	* src/get.c: reduce the number of calls to regexp_match
	Only call the regexp matcher at the very beginning of get/parse, and once
	for every match inside an iteration. Use re_registers to keep track of the
	substrings being worked on in favor of 'struct split'

	Always do REGS_REALLOCATE for regexp match registers

	* src/regexp.c: clean up syntax options

	* src/put.c: remove outdated debug msgs and comments

	* src/internal.h: Remove bogus DEBUG define

	Ntp: enhance lens
	These enhancements are needed to make the Ntp.lns process the default
	/etc/ntp.conf on Fedora

2009-02-16  David Lutterkort  <lutter@redhat.com>

	* src/syntax.c: print tests results in the same form we read them

2009-02-13  David Lutterkort  <lutter@redhat.com>

	Allow passing NULL regexps in some regexp routines

2009-02-13  Raphael Pinson  <raphink@gmail.com>

	Xorg: new lens and tests

2009-02-11  David Lutterkort  <lutter@redhat.com>

	Test that an invalid regexp makes module loading fail

	Services: various small fixes to process Fedora's /etc/services

	* tests/test-get.sh: print all error info on failure

	Better error mesages when re match fails during get/put

	* src/lens.c: throw exception on regexp syntax errors

	* src/fa.c: test for invalid ranges like [z-a]

2009-02-11  Raphael Pinson  <raphink@gmail.com>

	Lens and test for /etc/services

2009-02-11  David Lutterkort  <lutter@redhat.com>

	* src/augtool.c (cmd_match): check return from aug_match more defensively

2009-02-06  David Lutterkort  <lutter@redhat.com>

	Version 0.4.0

	Use printf instead of 'echo -e' in tests
	Printf is more portable

	Fix compilation on OpenSolaris
	* src/pathx.c (position): assert not marked as noreturn

	* tests/test-xpath.c (run_one_test): allow results in   arbitrary order. Files on Fedora and Debian are enumerated   in different order, leading to spurious test failures

	* src/pathx.c: remove the value() function, it's redundant with '.'

	* pathx.c: when comparing strings consider NULL == ""

	Change how names are parsed in path expressions
	Names can not contain any of the characters [][=/ \t\n] - to include
	them in a name, they need to be escaped with a '\', so that 'foo\=bar'
	matches a node with literal label 'foo=bar'.

	* tests/grub-rm-entry.rb: fix test failure

	* tests/augtest: do not typecheck everything
	The typecheck is redundant (we already do that when running lens tests) and
	really slow

2009-02-06  David Lutterkort  <lutter@redhat.com>

	Grub: process 'savedefault' in boot stanza
	Also, allow keywords to be preceded by whitespace

	Fixes ticket #36

2009-02-06  David Lutterkort  <lutter@redhat.com>

	Minor whitespace cleanup

2009-02-02  Free Ekanayaka  <free@64studio.com>

	Lens and tests for DarkIce
	See http://darkice.tyrell.hu/

2009-02-01  David Lutterkort  <lutter@redhat.com>

	* src/augeas.c: use ALLOC instead of CALLOC

	* augeas.c (aug_init): check an allocation failure

	* src/internal.c (escape, unescape): check allocation failures

	* src/pathx.c (free_state): allow NULL state

	* src/augeas.c (init_root): check for failure of strdup

2009-01-30  David Lutterkort  <lutter@redhat.com>

	* src/pathx.c: factor test if a step matches into step_matches
	This also fixes a problem matching, test also included

	* src/pathx.c: use bool for boolean values

	Build changes so that 'make' on Opensolaris 5.11 works
	The tests ('make check') still fail, because of trouble with
	some of the shell scripts

	* src/transform.c: use POSIX conform FNM_PATHNAME, nut GNU alias

	* src/get.c: remove braindead use of alloca

	* tests/test-get.sh: use new descendant syntax to find errors

	Remove unneeded call to pathx_parse in aug_match

	Introduce parse_user_pathx to report errors
	If user-supplied path expressions have errors, report them in
	/augeas/pathx/error

	Move parsing of path expressions into public API methods
	For path expressions that are passed through the API, we need to report
	errors. This change lays the groundwork, so that we can distinguish between
	parsing user-supplied path expressions and internally generated path
	expressions.

	Rename aug_tree_replace to tree_replace
	We reserve the aug_ prefix for public functions. There is also no need to
	pass struct augeas here, a tree root is enough.

	More xpath tests; allow ... in tests

	Simplify internal API's
	* pass origin, not root to pathx_parse
	* pathx_next does not need an explicit argument for the current
	  tree node any more

2009-01-30  David Lutterkort  <lutter@redhat.com>

	Expand the grammar for path expressions
	* add predicates based on labels and values
	* allow path expressions in predicates, e.g. '/foo/bar[../baz = "7"]'
	* add explicit axes and some abbreviations thereof

	This requires a rewrite of the interpreter of path expressions; the
	interpreter is now based on a more explicit representation of the abstract
	syntax of the path expression and is statically type checked.

	Also add tests to check path expression evaluation

2009-01-30  David Lutterkort  <lutter@redhat.com>

	Use absolute paths in lens tests when manipulating the tree
	Paths that start with a number (like '1/ipaddr') are ambiguous in the new
	path expression grammar and will confuse the parser; to make it clear that
	they are paths, and not just a number, use absolute paths.

	Notes on new XPath grammar

	Rename struct path to struct pathx
	Also rename path_* functions to pathx_*; rename make_pathx to pathx_parse
	and change its signature to allow cleaner error reporting

2009-01-29  David Lutterkort  <lutter@redhat.com>

	Grub: support color directive

2009-01-26  David Lutterkort  <lutter@redhat.com>

	Version 0.3.6

2009-01-26  Dominique Dumont  <dominique.dumont@hp.com>

	Sshd: add documentation on usage

2009-01-25  David Lutterkort  <lutter@redhat.com>

	Add indented puppet.conf to test root

2009-01-22  David Lutterkort  <lutter@redhat.com>

	Fix bug #25 - allow indented entries in puppet.conf
	* lenses/inifile.aug: add new indented_entry and indented_title
	  lenses
	* lenses/puppet.aug: use the indented_* lenses
	* lenses/tests/test_puppet.aug: test with indented entries

2009-01-19  David Lutterkort  <lutter@redhat.com>

	Report version and legal save modes in /augeas/version

2009-01-17  David Lutterkort  <lutter@redhat.com>

	* ref.h: include limits.h, since we use UINT_MAX

2009-01-16  David Lutterkort  <lutter@redhat.com>

	Mark up code in documentation comments for Dpkg and Exports

2009-01-16  Robin Lee Powell  <rlpowell@digitalkingdom.org>

	Documentation for Exports and Dpkg

2009-01-13  David Lutterkort  <lutter@redhat.com>

	Minor changes to handling of save flag
	* complain if /augeas/save is missing or has an invalid value
	* do not clobber non-save flags when updating from /augeas/save
	* add a test

2009-01-13  Bryan Kearney  <bkearney@redhat.com>

	Dynamically change behavior of aug_save; add noop save mode
	* control behavior of aug_save through changing /augeas/save
	* noop mode allows checking if changes will be written, without
	  changing file system

2009-01-08  Jim Meyering  <meyering@redhat.com>

	comment typos

	plug a leak
	24 bytes in 1 blocks are definitely lost in loss record 1 of 1
	   at 0x4021BDE: calloc (vg_replace_malloc.c:397)
	   by 0x4029379: make_tree (augeas.c:316)
	   by 0x403AC70: get_lens (get.c:592)
	   by 0x403ACB6: get_lens (get.c:523)
	   by 0x403AB4F: get_lens (get.c:474)
	   by 0x403ACDE: get_lens (get.c:523)
	   by 0x403AB4F: get_lens (get.c:474)
	   by 0x403AF20: lns_get (get.c:684)
	   by 0x4034E81: lens_get (builtin.c:124)
	   by 0x402CDC7: native_call (syntax.c:967)
	   by 0x402F4C9: compile_exp (syntax.c:1574)
	   by 0x402EF17: compile_exp (syntax.c:1487)
	   by 0x402FEEC: __aug_load_module_file (syntax.c:1600)
	   by 0x80489AE: main (augparse.c:86)

	test ls output more portably in face of SELinux differences
	* test-preserve.sh: Use cut -b1-10 to get mode from ls -l output.
	Use ls -lZ (not ls -Z, which is not portable) to get SELinux context.

2009-01-04  Arnaud Gomes-do-Vale  <arnaud.gomes@ircam.fr>

	* src/Makefile.am: fix bz #478619 - do not use abspath

2009-01-03  Robin Lee Powell  <rlpowell@digitalkingdom.org>

	Dpkg: new lens and test

2009-01-03  David Lutterkort  <lutter@redhat.com>

	Php: expand filter slightly
	Suggested by Robin Lee Powell <rlpowell@digitalkingdom.org>

2008-12-29  David Lutterkort  <lutter@redhat.com>

	Fix segfault when branch in a union does not have a ktype
	* src/lens.c (lns_key_regexp): check for NULL ktype of branch
	* tests/modules/pass_union_nokey.aug: test the fix

	Bug reported by Robin Lee Powell <rlpowell@digitalkingdom.org>

2008-12-27  Free Ekanayaka  <free@64studio.com>

	Add soma lens and test

	Add limits lens and test

2008-12-24  David Lutterkort  <lutter@redhat.com>

	* autogen.sh: remove bogus argument to configure

2008-12-24  Marc Fournier  <marc.fournier@camptocamp.com>

	Php, Gdm: exclude literal ".anon" from title, not regexp /.anon/

2008-12-24  Free Ekanayaka  <free@64studio.com>

	Phpvars: allow whitespaces before the \n in the <?php head line

2008-12-23  David Lutterkort  <lutter@redhat.com>

	Version 0.3.5

	* transform.c (transfer_file_attrs): ignore SELinux failures if filesystem   does not support extended attributes

	* transform.c (clone_file): fix #32; only copy if   /augeas/save/copy_if_rename_fails exists

	Group: split list of users, make it optional
	The list of users in a group is now split into individual 'user/'
	nodes. If a group has no members, no user/ nodes are produced.

2008-12-23  Free Ekanayaka  <free@64studio.com>

	Add lens and test for /etc/group

2008-12-23  David Lutterkort  <lutter@redhat.com>

	Simpler interface and implementation for path_find_one

	Add path_expand_tree
	Instead of calling path_find_one/tree_create

	Move implementation dealing with path expressions into separate file

	Simplify searching in the tree by using parent pointers
	Segments do not need to track the tree node where they matched anymore,
	since we can get the same information by following parent pointers.

2008-12-23  David Lutterkort  <lutter@redhat.com>

	Make finding the parent and siblings of a node uniform
	All nodes (including the root) now have a parent node, so
	that the start of the list of siblings can be found as
	tree->parent->children for any node.

	All 'standalone' trees now have a fake root, called 'origin' whose
	children are the real root nodes. Another way to look at this is
	that the tree is now edge-labeled.

2008-12-23  David Lutterkort  <lutter@redhat.com>

	Rename seg_siblings to tree_siblings

	Add an explicit parent pointer to the tree

2008-12-23  Free Ekanayaka  <free@64studio.com>

	Lens and test for config files using PHP-style variables
	Process /etc/squirrelmail/config.php

2008-12-23  Marc Fournier  <marc.fournier@camptocamp.com>

	New lens and tests for /etc/rsyncd.conf
	rsyncd.conf is an ini file which allows indented
	parameters (like smb.conf) as well as entries outside
	any section (like php.ini).

2008-12-23  David Lutterkort  <lutter@redhat.com>

	* fa.c: mark '.' as a special character that needs to be escaped

2008-12-22  David Lutterkort  <lutter@redhat.com>

	Notes on the expanded XPath notation

2008-12-22  Free Ekanayaka  <free@64studio.com>

	Add lens and test for /etc/passwd

	Shellvars: process two more files on Debian
	Add /etc/arno-iptables-firewall/debconf.cfg and /etc/cron-apt/config

	Add lenses and tests for postfix's main.cf and master.cf

	Squid: new lens for squid.conf

	Webmin: new lens

2008-12-16  David Lutterkort  <lutter@redhat.com>

	Shellvars: load /etc/sysconfig/sendmail

2008-12-03  David Lutterkort  <lutter@redhat.com>

	Xinetd: make sure equal sign is surrounded by spaces
	Fix ticket #30

	* lenses/xinetd.aug: make sure new equal signs have a space before
	  and after them; indent attributes with a tab by default
	* lenses/tests/test_xinetd.aug: add test

2008-11-20  David Lutterkort  <lutter@redhat.com>

	Sshd: change the structure of Condition subtrees
	The conditions for a match block are now a single subtree, instead of
	one subtree per condition.

2008-11-19  David Lutterkort  <lutter@redhat.com>

	Only try to save backup file if original exists
	* transform.c (transform_save): check that original exists before
	creating backup

	Fix saving of files where backup/new and target are on different devices
	* transform.c (clone_file): new function
	* transform.c (transform_save): if rename fails because new/backup file
	  and target file are on different devices, copy the files

2008-11-05  David Lutterkort  <lutter@redhat.com>

	* Makefile.maint: add target tag-release

	Version 0.3.4

	* test-preserve.sh: check that augtool -b produces a backup

2008-10-30  David Lutterkort  <lutter@redhat.com>

	Fix problem with transferring file attributes during save
	* src/transform.c(transform_save): transfer attributes from the original to
	  the new file as soon as the new file is created; create a .augsave file
	  as a hardlink, not by renaming
	* src/transform.c(file_replace): pull out the code to transfer attributes
	  into new function transfer_file_attrs; rename of new file to original is
	  now done in transform_save

2008-10-24  David Lutterkort  <lutter@redhat.com>

	Version 0.3.3

	* Makefile.maint: add upload target

	Modest beginnings of a maiintainer Makefile
	* Makefile.maint: new file

	Undo API breakage introduced in commit 48c285c
	* src/augeas.c (aug_save): return 0 on success, instead of the number of
	  files changed
	* src/augtool.c (cmd_save): get the number of files changed from aug_match

	build: use LIB_SELINUX as set by gnulib
	* configure.ac: do not set up LIB_SELINUX, gnulib does that

2008-10-22  Sylvain Baubeau  <bob@glumol.com>

	Grub: support "rootnoverify" and "chainloader" directives

2008-10-21  David Lutterkort  <lutter@redhat.com>

	Version 0.3.2

	test-preserve.sh: do not check SELinux context on non-SELinux systems

	test-events-saved.sh: sort the list of saved files

	aug_save: report saved files in /augeas/events/saved
	aug_save now reports which files were changed on disk underneath
	/augeas/events/saved; if multiple files are changed in one save operation,
	there will be multiple /augeas/events/saved entries in the tree. The value
	of each is the path to the file prefixed with /files.

	Generate ChangeLog from git history

	file_replace: preserve SELinux context
	Copy the SELinux context from the existing file.

	transform_save: preserve file owner/group and mode when saving
	Take the file owner/group and mode from the existing file and set it on the
	newly created file during save. When a file is created from scratch, we
	still create the file with whatever default user/group/mode the current
	user has set.

2008-10-20  David Lutterkort  <lutter@redhat.com>

	aug_save: report the number of files that were changed
	When the tree is saved, keep track of the number of files that were
	actually changed and return that number.

	transform_save: make saving idempotent
	When a file needs to be saved, its contents are first generated in a temp
	file which is then moved over the original file. Between generating the
	temp file and moving it in its final place, read its contents back in and
	compare with the contents of the original file. Only move the tempfile over
	the original if the contents do indeed differ. This avoids spurious changes
	in mtime.

	Formatting changes

2008-10-16  Jim Meyering  <jim@meyering.net>

	Include <config.h> early, so its _GNU_SOURCE definition takes effect.
	* src/lexer.l (%top{...}): Include <config.h> here, not in %{...}.
	Otherwise, the flex-emitted inclusion of <string.h> would
	precede the definition of _GNU_SOURCE, rendering it useless.
	This also avoids warnings about strndup being undeclared.
	Don't include <string.h> explicitly, since flex already does that.

2008-10-13  Joel Nimety  <jnimety@perimeterusa.com>

	Grub: add support for password directive

2008-10-06  Free Ekanayaka  <free@64studio.com>

	Samba: Change default indentation and separation
	Match indentation of the example configuration file shipped by the upstream
	authors

	Add gdm lens and associated test

2008-10-02  David Lutterkort  <lutter@redhat.com>

	Ignore files based on .hgignore

2008-10-01  David Lutterkort  <lutter@redhat.com>

	Complain when nodes in the tree can not be put
	When nodes are added to the tree that do not match the appropriate
	key/label lens, we used to silently drop them if the key/label was inside a
	repetition inside a concat.

	Now, we check when we split the tree for a concat that we have used all the
	nodes in the tree that we were supposed to, and complain otherwise.

	This also uncovered that the test rec-hosts-add.rb was broken, but still
	passed.

2008-10-01  David Lutterkort  <dlutter@redhat.com>

	Pass --nostdinc properly when running under gdb

	Logrotate: parse tabooext into list; add processing of a number of options
	Patch by Sean E. Millichamp

2008-09-22  David Lutterkort  <dlutter@redhat.com>

	Grub: add support for 'serial' and 'terminal'
	Patch by Sean E. Millichamp

	Add backlinks to main site

	Remove some italics

	Logrotate: add dateext flag
	Patch by Sean E. Millichamp

2008-09-22  David Lutterkort  <dlutter@redhat.com>

	Various changes to the NaturalDocs support
	This patch changes a few things around in the NaturalDocs support:

	- There is no explicit --with-naturaldocs option anymore; instead,
	  configure.ac looks for a program that's either called 'naturaldocs' or
	  'NaturalDocs' and enables support for doc generation depending on whether
	  that program is found or not.

	  This works in any of the following situations:
	  (1) NaturalDocs is installed from an RPM, and therefore on the default
	      PATH, with its Perl modules installed on the standard Perl library
	      path
	  (2) NaturalDocs is installed in a random directory, and both PATH and
	      PERL5LIB are set accordingly
	  (3) A wrapper script that sets the path is on PATH

	- Various fixes to make 'make distcheck' work

2008-09-12  David Lutterkort  <dlutter@redhat.com>

	Properly include test modules

2008-09-11  Raphael Pinson  <raphink@gmail.com>

	Add naturaldocs support Build pdf docs

2008-09-09  Raphael Pinson  <raphink@gmail.com>

	Adapt comments for NaturalDocs parsing

	Add comments for NaturalDocs parsing

	Add comments for NaturalDocs parsing

	Add comments for NaturalDocs parsing Reorganize a bit

	Adapt sudoers.aug for NaturalDocs parsing

	Adapt augeas.h for NaturalDocs parsing

2008-09-08  David Lutterkort  <dlutter@redhat.com>

	Sshd: better handling of match blocks
	Split match conditions into individual 'Condition' entries. Store the
	settings for a match block inside 'Settings' entries.

2008-09-08  Free Ekanayaka  <free@64studio.com>

	Add monit lens and test

2008-09-06  Free Ekanayaka  <free@64studio.com>

	Ldap: merge with Spacevars. Spacevars: process havp.config
	Adapt Test_ldap, since there is no Ldap.lns anymore

2008-09-08  David Lutterkort  <dlutter@redhat.com>

	Use --nostdinc in tests
	We never want to use installed lenses in the tests; they should only be
	read from the directories that are specified explicitly

	augtool, augparse: add --nostdinc option

	augtool, augparse: allow long options

2008-09-06  Free Ekanayaka  <free@64studio.com>

	Shellvars: merge Sysconfig, Ifcfg; support /etc/default
	Merge Sysconfig and Ifcfg into Shellvars

	Add /etc/default/* to the list of supported configuration files

2008-09-05  David Lutterkort  <dlutter@redhat.com>

	transform: append missing newlines
	If a file does not end with a newline, append one automatically. Most
	lenses require that a file ends with a newline, and files that are missing
	them are quite common.

	Shellvars: use Util.eol for eol

	test/modules: only distribute .aug files

	Shellvars: handle space at the end of a line

2008-09-04  David Lutterkort  <dlutter@redhat.com>

	Added tag release-0.3.1 for changeset 803c17b1833a

	Release 0.3.1

	Sysctl: lens for sysctl.conf
	Contributed by Sean Millichamp

2008-09-04  Free Ekanayaka  <free@64studio.com>

	Add lens and test for dnsmasq.conf

2008-09-02  Free Ekanayaka  <free@64studio.com>

	Add slapd.aug and test modules

	Spacevars: Allow passing the entry keyword as a parameter
	Modify Ldap.lns and Test_spacevars accordingly

2008-08-30  Free Ekanayaka  <free@64studio.com>

	Add samba.aug and associated test

2008-08-27  Free Ekanayaka  <free@64studio.com>

	Inifile: support empty comments
	Empty comments are lines beginning with ";" or "#" but without any more text

2008-08-29  Raphael Pinson  <raphink@gmail.com>

	Map entries outside of sections inside a ".anon" section
	Clean regexp for entry key
	Remove /.anon/ from record key regexp
	Modify test_php.aug according to new mapping policy
	entry_re is standard in php.aug

2008-09-03  David Lutterkort  <dlutter@redhat.com>

	typecheck_maybe: less convoluted check for empty match
	There's no need to construct an FA to check if a regular expression matches
	the empty string.

2008-09-03  David Lutterkort  <dlutter@redhat.com>

	Properly typecheck the '?' operator
	The '?' operator was completely missing a typecheck for the atype. The
	check must make sure that neither the ctype nor the atype match the empty
	word.

	To allow constructs like (store re)?, we allow the atype to match the empty
	word, as long as the lens inside the '?' consumes the value of the current
	node, since that also tells as whether to use the inner lens or not.

	Various existing lenses failed to typecheck after this change and have been
	adapted; this also fixes a bug in the Fstab.lns where existing whitespace
	was being replaced with a default tab. The Interfaces.lns needed a fairly
	invasive change, and as a consequence produces way more (too many?)
	anonymous tree nodes.

	Added tests to verify the typechecking of '?'

2008-09-02  David Lutterkort  <dlutter@redhat.com>

	Minor error message improvements
	- Include information about the lens that produced the error if it's
	  available
	- When a union during 'put' does not match, produce an error instead of
	  aborting

2008-08-28  David Lutterkort  <dlutter@redhat.com>

	Fix a bug with transferring skeletons
	It is possible for a skeleton to move from one subtree lens to another, if
	both use the same key; since the lenses might have different skeleton
	types, we need to detect this and discard the skeleton if its type does not
	match the lens that is used during put.

	skel_instance_of: fix bad check for regexp match
	The return value of regexp_match was interpreted incorrectly, making it
	seem that the skel_instance_of test should fail if we ever tried to match
	an empty string.

2008-08-27  David Lutterkort  <dlutter@redhat.com>

	Some files for the test root

	A test for the del typecheck

	Script to run lens tests through Valgrind
	We don't run this as part of 'make check' since it's _very_ slow.

2008-08-27  David Lutterkort  <dlutter@redhat.com>

	Dhclient: change some defaults for del
	This is really a bug in how string literals are unescaped by the lexer, but
	we can sidestep the problem here.

	The lexer bug is https://fedorahosted.org/augeas/ticket/12

2008-08-27  Free Ekanayaka  <free@64studio.com>

	Dhclient lens

2008-08-26  Raphael Pinson  <raphink@gmail.com>

	Add OpenVPN lens and associated test

2008-08-27  Free Ekanayaka  <free@64studio.com>

	Dput: add allowed_distributions entry
	See man dput.cf(5) from a recent dput version (Ubuntu/hardy or
	Debian/lenny)

2008-08-26  David Lutterkort  <dlutter@redhat.com>

	Typecheck del lens
	The builtin lens 'del RE STR' was missing a typecheck: the default string
	STR must match the regular expression RE, otherwise we might produce text
	that we cant parse back in.

	This patch fixes that, adds a test that the check is performed, and fixes
	all the places in existing lenses where a use of 'del' failed the
	typecheck.

2008-08-18  Nahum Shalman  <nshalman elys com>

	Shellvars: fix arrays so that saving works properly  * based on an IRC conversation with raphink

2008-08-25  David Lutterkort  <dlutter@redhat.com>

	Acknowledge Free Ekanayaka

2008-08-25  Free Ekanayaka  <free@64studio.com>

	Ldap lens

	Spacevars lens

2008-08-24  Free Ekanayaka  <free@64studio.com>

	Interfaces: new lens to process Debian's /etc/network/interfaces

2008-08-25  David Lutterkort  <dlutter@redhat.com>

	Util.comment: produce #comment nodes

2008-08-14  Raphael Pinson  <raphink@gmail.com>

	Inifile: complete rewrite. Also rewrite lenses using Inifile
	Adapt Php, Dput, Puppet and the corresponding tests to use the new Inifile
	module.

	Php: allow entries outside of sections
	Adapt php.aug to support entries outside of sections and still map sections
	as labels (Fix #9)

2008-08-15  David Lutterkort  <dlutter@redhat.com>

	Shellvars: one more cornercase with double quoted strings

2008-08-15  David Lutterkort  <dlutter@redhat.com>

	Shellvars: much improved handling
	- handle single and double quoted strings correctly
	- parse arrays into a subtree

	Inspired by a chat and preliminary work by nahamu

2008-08-15  David Lutterkort  <dlutter@redhat.com>

	skel_instance_of: remove pointless check
	There is no point in trying to match against skel->text for a store lens
	since that is always NULL.

	Fix syntax error in test

	augl_error: Initialize info

2008-08-14  David Lutterkort  <dlutter@redhat.com>

	aug_mv: fix bug when moving at the root level
	When moving from the root level, the source node needs to be removed from
	aug->tree, not aug->tree->children. In addition, the list_remove macro must
	be passed aug->tree and not a local variable holding that value, since we
	might have to remove the list entry that aug->tree is pointing to.

	Added test in test-mv.sh to test that moving at the root level works.

2008-08-14  David Lutterkort  <dlutter@redhat.com>

	Module names are treated case-insensitively
	Before, if you had a module 'Mod' in file 'mod.aug' and requested variable
	'MoD.var' from another module, the interpreter would throw itself into a
	loop where it kept loading 'mod.aug', but never found 'MoD.var' because the
	comparison of module names 'MoD' and 'Mod' was case sensitive.

2008-08-13  Raphael Pinson  <raphink@gmail.com>

	Add puppet.aug and associated test

	test_php.aug: make a nice test for PHP

	Php: simplified and based on Inifile
	"Slightly" simplify php.aug now that the comment issue is fixed in
	inifile.aug

	Inifile: use #comment for comment fields
	Adapt test_dput.aug and test_inifile.aug

	Inifile: no space around seps by default

	Inifile: reformat inifile.aug, ignore empty comments
	Reformat inifile.aug :
	  - improve readability
	  - limit line width to 80 chars
	  - change a few var names
	Ignore empty comments
	Adapt test_dput.aug to ignore empty comments

	Fstab: map comments and support empty lines

	Sudoers: clean up comment definition

2008-08-12  David Lutterkort  <dlutter@redhat.com>

	Hosts: handle comments at the end of a host entry
	Comments are put into the tree as part of that host node, i.e. will live as
	long as the host entry.

	Based on an initial patch by Kjetil Torgrim Homme <kjetilho@linpro.no>

2008-08-12  Raphael Pinson  <raphink@gmail.com>

	Pam: Use eol, indent, comment and empty from Util

	Util: add eol, indent, comment and empty

	Pam: allow comments at the end of lines and leading spaces

	Xinetd: better handling of whitespace
	- allow indented comments
	- allow spaces around "}" to close a service

2008-08-12  David Lutterkort  <dlutter@redhat.com>

	Exports: fix failing test
	Exports.lns uses Hosts.comment .. since that changed, we also need to
	change Exports.lns

2008-08-12  Raphael Pinson  <raphink@gmail.com>

	Hosts: put comments into tree and better whitespace handling
	- allow spaces at the end of the line
	- allow indentation at the beginning of entries
	- allow indented comments
	- show comments as fields and ignore empty lines and empty comments

	Handle indentation for Sudoers
	Allow indentation for every field
	cmnd_spec: use sto_to_com_cmnd (allows spaces)
	Add a test with new tricky commands in spec

	Various small fixes for Sudoers
	Deal with empty comments in empty.
	Add "!" as a valid parameter delimiter in Defaults.
	Make tests a bit more interesting in test_sudoers.aug.

	Sudoers: fix Runas_Spec
	sep_cont is not mandatory after runas_spec.
	Remove a space after a runas_spec in the test.

	Sudoers: various fixes for Defaults
	Do not allow "Defaults.*" as user name for spec (instead of "Defaults").
	Simplify Defaults type from (@|:|>) into [@:>].
	Make a specific regexp for Defaults value to allow spaces.
	Add a test line in test_sudoers.aug to test a more complex Defaults line.

	Add sudoers lens and associated test

2008-08-11  David Lutterkort  <dlutter@redhat.com>

	Test for continuation lines

2008-08-11  David Lutterkort  <dlutter@redhat.com>

	Posix ERE compliant escaping
	Posix extended regular expressions treat a backslash outside of a character
	class always as an escape character, with the character sequence '\\x'
	being identical to 'x', even if 'x' is a special char like '['.

	Inside character classes, the backslash does not escape anything, and is
	treated as an ordianry character.

	See regex(7) or
	http://www.opengroup.org/onlinepubs/009695399/basedefs/xbd_chap09.html#tag_09_04

2008-08-09  David Lutterkort  <dlutter@redhat.com>

	Revamp the dict data structure
	Dicts were simple linked lists of key/value pairs, and appending and
	searching on those lists caused serious slowdown when the dicts became
	large, for example when writing an /etc/hosts file with > 2000 lines.

	Dicts are now organized as arrays that are kept sorted by the key, and
	lookup is done through binary search. Though this is still quadratic in
	theory, it behaves linearly in practice even for a very large /etc/hosts
	file (~ 60k lines); when keys appear in order (e.g. when they are generated
	by a sequence) or when all entries fall under one key, adding an entry to a
	dict is O(log n).

2008-08-09  David Lutterkort  <dlutter@redhat.com>

	Don't use registers in split_iter
	The data in the registers was never used, calculating it causes some
	overhead in the matcher.

2008-08-08  David Lutterkort  <dlutter@redhat.com>

	Eliminate unneeded calls to regexp_match in split_iter

	Don't call regexp_match when we know that there is no match
	It is common in the put direction that we try and split when we're already
	inside a leaf node. In that case, we know that there is no possible split,
	and therefore can save the trouble of calling regexp_match.

2008-08-08  David Lutterkort  <dlutter@redhat.com>

	Avoid O(n^2) runtime by appending to lists in constant time
	The data structure used to keep track of successive matches of an iterated
	lens, a split list, was being appended to by traversing the list for each
	new element. Now, we remember the last element on the list and append in
	constant time.

	The same was true in a few other places: the building of a tree and of
	skeletons suffered from the same problem.

	Dicts still have that problem - they need to be changed to hash tables to
	address this issue.

2008-08-08  David Lutterkort  <dlutter@redhat.com>

	Add list_reverse and list_tail_cons
	list_reverse reverses a list in place. list_tail_cons appends to a list in
	constant time, since it is given a pointer to the tail of the list.

2008-08-07  David Lutterkort  <dlutter@redhat.com>

	Added tag release-0.3.0 for changeset 60f2a13c2528

	Release 0.3.0

	Mention the exit status

	Version libfa and libaugeas
	Use libtool's version support to properly version these two libraries. For
	libaugeas, we also bump the minor version, since we just added aug_mv to
	the interface.

2008-08-07  David Lutterkort  <dlutter@redhat.com>

	Check that 'put' fails when invalid tree entries are present
	put_quant_star and create_quant_star did not compare the part of the tree
	they should transform against the part of the tree they actually
	transformed. This lead to parts of the tree getting ignored during 'put' if
	the tree contained invalid nodes, and ultimately to files getting
	truncated.

	This is now checked and causes a 'Short iteration' error, avoiding file
	truncation. The fix also uncovered an error in the test for Aptsources.lns,
	where an invalid tree node was put into the tree, but did not lead to a
	test failure.

	Fixes bug https://fedorahosted.org/augeas/ticket/1

2008-08-07  David Lutterkort  <dlutter@redhat.com>

	Return an exit status from augtool
	augtool will return a non-zero exit status if any command issued
	failed. This is useful when piping multiple commands into augtool to check
	that they all succeeded.

2008-07-29  David Lutterkort  <dlutter@redhat.com>

	Fix failures on FreeBSD
	(1) Point augtool at the lenses in the source dir (not FreeBSD problem,
	    happens whenever Augeas is not installed yet)
	(2) Remove bashism 'echo $"..."' with 'echo -e "..."'

	Quiet the test

2008-07-29  Raphael Pinson  <raphink@gmail.com>

	Use regexp union instead of lens union in php.aug
	Using a union of regexps is much faster than a union of lenses, since the
	regular expressions that are constructed internally are much simpler.

2008-07-25  Raphael Pinson  <raphink@gmail.com>

	Fix php.aug now that inifile.aug supports spaces in values

	Add PHP module and associated (basic) test file

2008-07-29  Raphael Pinson  <raphink@gmail.com>

	Use regexp union instead of lens union in dput.aug
	Using a union of regexps is much faster than a union of lenses, since the
	regular expressions that are constructed internally are much simpler.

2008-07-25  Raphael Pinson  <raphink@gmail.com>

	Rewrite dput.aug using inifile.aug Add a few keywords from man dput.cf Fix test file after rewrite

	Allow spaces in entry values

	Allow spaces in titles

	Fix empty comments in INI file

2008-07-29  David Lutterkort  <dlutter@redhat.com>

	Include canonicalize.h
	On non-glibc systems, we need to make sure canonicalize_file_name is
	declared from gnulib.

	Fail the whole test if one of the lens tests fails

2008-07-28  David Lutterkort  <dlutter@redhat.com>

	Add a call to move a subtree to the public API

2008-07-26  David Lutterkort  <dlutter@redhat.com>

	Refactor tree_create

	Don't run the typechecker by default from try

2008-07-24  David Lutterkort  <dlutter@redhat.com>

	Flatten the tree of lenses
	For union and concat, we used to store multiple unions/concats in a binary
	tree. Now, the tree is flattened and a string of concats is stored as one
	lens.

	Allow a key and store in each branch of a union

	lns_key_regexp: store does not do anything about the key
	We used to generate tree nodes with a NULL label for a STORE, but that is
	no longer the case, and therefore the STORE lens should not produce any key
	regexp.

	Correctly handle saving to nonexistant files

	Store system errors
	When encountering system errors while reading or writing a file, extract
	the full error message corresponding to errno and store it in error/message

2008-07-23  Raphael Pinson  <raphink@gmail.com>

	Add AptPreferences module and associated test

	Add bbhosts module and associated test

	Add ntp module and associated test

	Add logrotate and associated test

	Add support for end of line comments in entry* Add new entry* lenses for comments_nosharp Make more generic entry and comment lenses Update test_inifile.aug to test end of line comments

	Add inifile generic module and associated test module

2008-07-22  David Lutterkort  <dlutter@redhat.com>

	Fix segfault when running 'augtool print'

2008-07-21  David Lutterkort  <dlutter@redhat.com>

	Canonicalize file names before writing
	We used to clobber symlinks because writing a file consists of writing to
	an intermediate .augnew file, and then moving that over the target file. To
	keep target files that are symlinks intact, we now canonicalize the target
	filename and then move the intermediate file to the canonicalized target
	file.

	Avoid picking '\0' in examples.
	Now, we only pick '\0' as the example character for a transition if it is
	the only char for that transition.

2008-07-18  David Lutterkort  <dlutter@redhat.com>

	Added tag release-0.2.2 for changeset e7f6d16e75df

	Release 0.2.2

	Rename rule because FreeBSD's make chokes on it
	Rename the rule .FORCE-datadir.h to FORCE-datadir.h

	Sample dput.cf for dput lens

	Lens for Debian's dput files
	Contributed by Raphael Pinson

2008-07-17  David Lutterkort  <dlutter@redhat.com>

	augtool: Print '(none)' when getting a path with no value
	The output used to be mangled. Now it is 'path = value' if hte path has a
	non-NULL value, 'path (none)' if the path exists but has a NULL value, and
	'path (o)' if an error occurred.

	Added tag release-0.2.1 for changeset 13fdcd9bb18a

2008-07-17  David Lutterkort  <dlutter@redhat.com>

	aliases.aug: Do not require whitespace after commas
	It's perfectly fine to have an alias like 'alias: target1,target2'

	Bug reported by Greg Swift

2008-07-16  David Lutterkort  <dlutter@redhat.com>

	Fix insertion before the first child
	Inserting a node as the new first child was completely broken.

	Bug reported by Raphael Pinson.

2008-07-16  David Lutterkort  <dlutter@redhat.com>

	Add support for 'insert' in unit tests
	Two new primitives 'insa' (insert after) and 'insb' (insert before) are
	added so that unit tests can modify the tree through insert, as in

	  test lns put str after
	    insa label path = str2

	It would be nice to kill insert with one primitive, but that would have
	either required special syntax (like 'ins STR before/after STR') or some
	addition to the type system to make it syntactically reasonable.

2008-07-09  David Lutterkort  <dlutter@redhat.com>

	Test that putting into an empty string works

	Initialize state->pos in lns_parse and lns_get
	Otherwise, get and parse on an empty string will produce a 'short
	iteration' error, even if the empty string is acceptable for that lens.

2008-07-07  David Lutterkort  <dlutter@redhat.com>

	Put the default dir for lenses into DATADIR (the real fix)
	Reworks 527:14602e2757dd in a way that actually works and conforms to the
	GNU coding standards.

	Most of this fix suggested by Jim Meyering, I only touched it up a little
	(and no doubt introduced all the bugs).

2008-07-07  David Lutterkort  <dlutter@redhat.com>

	Check for NULL values in the put direction of store
	This is now flagged as an error instead of causing a segfault.

2008-07-03  David Lutterkort  <dlutter@redhat.com>

	Lens for /etc/exports

2008-07-01  David Lutterkort  <dlutter@redhat.com>

	Release 0.2.1

	distclean-local: Do not clobber build/aux

	Suppress generated manpages

2008-06-30  David Lutterkort  <dlutter@redhat.com>

	Put the default dir for lenses into DATADIR
	Instead of hardcoding the default dir for lenses to somewhere in '/usr',
	look in DATADIR - that's after all where the default lenses are installed
	if DATADIR (or PREFIX) is changed.

	Man page for augparse

	Put Augeas version into footer

2008-06-23  David Lutterkort  <dlutter@redhat.com>

	Auto-generate the ChangeLog file from mercurial logs
	Reviewed-by: David Lutterkort <dlutter@redhat.com>

2008-06-13  David Lutterkort  <dlutter@redhat.com>

	Fix two problems in the grub lens
	(1) The grub lens did not handle blank lines
	(2) Ubuntu uses 'quiet' in its boot stanzas, which we didn't know about

	Reported by Jason Dobies

2008-06-13  David Lutterkort  <dlutter@redhat.com>

	Produce more helpful errors
	The previous check whether we could proces the entire input was too crude
	and produced the unhelpful error message "Get could not process entire
	input", pointing to the start of the string, even if the problem was much
	farther down the line.

	With this change, error messages contain an indication to where the error
	happened that is a little closer to the actual trouble spot.

2008-06-12  David Lutterkort  <dlutter@redhat.com>

	Check that we take the right branch in a union

	Process /etc/sysconfig/selinux
	Patch by Alan Pevec

2008-06-12  David Lutterkort  <dlutter@redhat.com>

	Fix segfault when aug_init/close are called multiple times
	The way we cached the regexp '[0-9]+/' was totally botched. We now allocate
	the pattern statically in memory and pin it to protect it from being freed,
	ever.

	Reported by Harald Hoyer

2008-06-06  David Lutterkort  <dlutter@redhat.com>

	Initialize out parameters

2008-06-06  David Lutterkort  <dlutter@redhat.com>

	Change struct fields of type (const char *) to (char *)
	There were many places where struct fields were declared (const char *) but
	then used as (char *) - mostly to free them. Remove the 'const' from those
	fields.

	I would really appreciate if somebody could look over these and make sure I
	don't throw away constness in too many places. It seems strange to declare a
	field as non-const, even if the string referenced by it is never modified,
	and only ever free'd when the enclosing struct is free'd.

2008-06-05  David Lutterkort  <dlutter@redhat.com>

	Added tag release-0.2.0 for changeset d23f95cd13f3

	Release 0.2.0

2008-06-03  David Lutterkort  <dlutter@redhat.com>

	Remove bashisms from test scripts
	Make tests scripts work with plain old sh; also, don't hardcode location of
	Ruby interpreter to /usr/bin/ruby.

	Work around a problem with Bison on FreeBSD
	Bison looks for _STDLIB_H to see if stdlib.h has been included, but the
	system includes use _STDLIB_H_; that makes Bison think malloc/free have not
	been declared yet and it goes and does that. gcc then complains about the
	duplicate declaration.

2008-06-03  David Lutterkort  <dlutter@redhat.com>

	Infrastructure and import of gnulib modules
	We do not keep the gnulib sources in our own repo. Instead, autogen.sh now
	calls out to bootstrap to pull in needed files from gnulib.

	The bootstrap script was copied from libvirt.

2008-06-02  David Lutterkort  <dlutter@redhat.com>

	Use a build aux dir (in build/aux)

	Use autoheader and generate config.h

	Work around lack of open_memstream on non-GNU systems
	Since open_memstream is only available with glibc, wrap its use and fall
	back to writing to a tempfile on other platforms.

	Remove src/config.h
	It was a bad idea to begin with; fold the contents into internal.h and make
	room for a generated config.h

	Support the @include syntax
	Debian uses lines of the form '@include module' to reference other pam
	configs. The official PAM docs don't mention it, but obviously it works.

	Handle trailing whitespace in pam.d; split module-arguments

	Allow multiple comma-separated fs types in fstab
	On Debian Etch, the CDROM has fs type 'udf,iso9660'

	Handle blank lines in /etc/hosts

	Fix missing ref on an info struct in syntax.c(compile_minus)

2008-05-30  Jim Meyering  <meyering@redhat.com>

	* tests/test-lenses.sh: more quotes, protect against space in abs_srcdir

	don't conflate top_srcdir and abs_top_srcdir
	* tests/Makefile.am: Use $(var), rather than obsolete @var@ notation.
	(TESTS_ENVIRONMENT): Rename LHS to match RHS to help avoid (my) confusion:
	s/top_builddir/abs_top_builddir/ and s/top_srcdir/abs_top_srcdir/.
	* tests/augtest: Reflect renamings.
	* tests/test-interpreter.sh: Likewise.
	* tests/test-get.sh: Likewise, and remove unused top_builddir= assignment.
	* tests/test-lenses.sh: Likewise; remove unnecessary braces, add quotes
	to protect against pathological $TMPDIR.

2008-05-29  David Lutterkort  <dlutter@redhat.com>

	Make distcheck work again
	Restore top_builddir and top_srcdir so that augtest passes during make
	distcheck.

	Fix memory leak in make_exn_lns_error

2008-05-29  Jim Meyering  <meyering@redhat.com>

	Remove some absolute paths for binaries.
	* tests/Makefile.am [TESTS_ENVIRONMENT]: Add a PATH definition that
	lets tests invoke "augtool" and "augparse" without any absolute prefix.
	Remove top_builddir and top_srcdir definitions; no longer needed.
	* tests/augtest: Remove definition of AUGTOOL.  Update use.
	* tests/test-lenses.sh: Likewise for AUGPARSE.
	* tests/test-interpreter.sh: Likewise.
	* tests/rec-initdefault.rb: Use 'augtool -n' in place of #{AUGTOOL}.

2008-05-23  David Lutterkort  <dlutter@redhat.com>

	Fix use of possibly uninitialized variable
	* get.c(lns_parse): initialize skel; gcc complains about possible
	  uninitialized use

2008-05-28  David Lutterkort  <dlutter@redhat.com>

	Check that augtool reads all of tests/root/ without error

2008-05-23  David Lutterkort  <dlutter@redhat.com>

	Add a test to check we take the right branch
	This does essentially the same as the test Pass_prefix_union introduced
	with cset 489:3f4414038a30, but in a real world lens.

	Escape | when turning a string into a regexp

	Add source statements in shell scripts as '.source' nodes

	Escape label strings when creating the key regexp for them

	Allow lower case characters in shell vars

2008-05-23  Jim Meyering  <meyering@redhat.com>

	"echo get /|augtool -n" would read one past end of malloc'd buffer * src/augeas.c (make_path): Avoid buffer overrun.

2008-05-23  David Lutterkort  <dlutter@redhat.com>

	Fix a major bug in the get implementation of lenses
	We used to process the input from left to right, matching the regular
	expressions of lenses with the input successively. That is very wrong, in
	particular, it leads to lens union choosing the wrong branch: in the union
	l1|l2, union would always choose l1 if l1 matched a prefix of l2.

	We now process the input in a top-down fashion, splitting the string into
	parts as we descend in the tree of lenses. As evidenced by the test
	pass_prefix_union, that fixes the bad behavior.

	Incidentally, it also uncovered another bug in the test_hosts.aug, where a
	test passed, even though the string we were using did not end with the
	newline that is mandatory for Hosts.record.

	This change also does away with pasing flags and a FILE* for logging
	details about hte parse process; they don't really make sense anymore, nor
	is that behavior very useful in a library.

2008-05-22  David Lutterkort  <dlutter@redhat.com>

	Fix use of uninitialized pointer
	ERR must be initialized, since it is later passed to free_lns_error

	Lens for vsftpd.conf
	The lens is very tight, in that it only allows actual options, and knows
	what kind of value each option accepts.

2008-05-21  James Antill  <james@code.and.org>

	 Fix for the joy that is the glibc asprintf API.

2008-05-21  James Antill  <james@and.org>

	 Minor fix to not use bad memory.

	 Remove strcat's for stpcpy's

	 Fix escaping strings that end in \  Fix escaping of unprintable bytes

	 Fix buffer overflow on strings ending in \

2008-05-21  David Lutterkort  <dlutter@redhat.com>

	Use glibtoolize on OSX
	Patch provided by Rizwan Kassim

2008-05-21  Jim Meyering  <meyering@redhat.com>

	Make a file-scoped static array "const".

2008-05-18  Jim Meyering  <meyering@redhat.com>

	* src/augtool.c (cleanpath): Don't access path[-1].

	* src/transform.c (transform_save): Detect pre-fclose write failure.

	* src/internal.c (read_file): Rewrite, plugging a file descriptor leak.

2008-05-16  David Lutterkort  <dlutter@redhat.com>

	Added tag release-0.1.1 for changeset fae07193655a

	Release 0.1.1

	Add dependency on ref.h

2008-05-16  David Lutterkort  <dlutter@redhat.com>

	Get rid of compiled regexps earlier
	After we're done with a transform, release the memory used by compiled
	regexps; storage for compiled regexps accounts for the lion's share of
	Augeas' memory needs.

	Before this patch, augtool run against the files in tests/root/ used more
	than 10MB of memory; with this patch, that is done to 250 kB after the
	initial load, with a spike of about 6MB during loading.

2008-05-15  David Lutterkort  <dlutter@redhat.com>

	Misc leak fixes in the interpreter
	* Do not ref the old binding in bind_type, ownership is transferred from
	  the caller to the new list head
	* Unref the argument of an apply and the func computed in compile_compose
	* Unref the value after it is bound in the context in compile_decl
	* Unref various things in define_native_intl

	Don't leak the key when appending dict entries

	Free the actual struct exn when freeing an exn value
	Factor freeing a struct exn into free_exn; previously, the code did not
	free the storage for the struct exn itself.

	Don't leak key/value in parse on error

	Do not leak the split on error
	put_subtree has to free the split it computes; previously, it leaked that
	if an error inside the subtree occurred.

	Free loadpath
	Although not strictly necessary, it makes it easier to run augparse through
	valgrind and get meaningful results.

	Free path

	Don't leak SNAME

	Free the lns_error in lens_put

	Cleanly free regexp patterns; put empty_pattern into ro storage

	Ref the returned tree
	The tree that tree_set_glue and tree_rm_glue return needs to have its ref
	increased, as the calling conventions for builtin functions stipulate that
	the returned value is owned by the caller

2008-05-14  David Lutterkort  <dlutter@redhat.com>

	Report errors more clearly in the tree
	When an error happens during get/put, store additional info in the tree:
	for get errors, store the position in the file where the error occured, for
	put errors, the path of the node. In both cases, also store the
	human-readable message.

	For a file F, all this information is stored underneath /augeas/F/error,
	with the value associated with /augeas/F/error giving some indication about
	the kind of error encountered.

2008-05-13  David Lutterkort  <dlutter@redhat.com>

	Report errors during put

	Check that values match the regexp for the corresponding store during put

	Lens and transform for /etc/fstab
	The lens could be further refined by distinguishing between the legal
	values in the first field (LABEL=xxx vs special file system vs device) and
	by trying to model more of the vfs/option dependencies, but that's more of
	a v2 feature.

	Remove bad assertions
	It is perfectly legal for create_* functions to be called with a non-NULL
	skeleton; that happens for example when the union combinator puts a tree
	that "jumped branches", i.e. whose get used one branch of the union, and
	the put uses the other branch because of changes to the tree.

	Reduce the number of calls to collect
	We were calling collect way too often, which was slowing things down. Also
	broke collect into separate subfunctions so we can see better when one of
	them becomes a bottleneck.

2008-05-13  David Lutterkort  <dlutter@redhat.com>

	Stricter skeleton instance check for del and store
	Besides having the right tag, del and store match a skeleton only if the
	text for that skeleton also matches their regexp.

	Weaken the check for key, label, seq, and counter a tiny bit.

2008-05-12  David Lutterkort  <dlutter@redhat.com>

	Proper typecheck for lens unions
	Check that lenses have disjoint ctypes and atypes in a union.

	Fix up the existing lenses that violate that.

2008-05-09  David Lutterkort  <dlutter@redhat.com>

	Keep re_cset_as_string from including an explicit '\0'
	We use NUL delimited strings; that means we can not use a CSET
	representation that mentions '\0' explicitly.

	Use the new '-' operator for key_re

2008-05-09  David Lutterkort  <dlutter@redhat.com>

	Add subtraction of regular expressions to the language
	It is now possible to say something like

	  let re = /[a-z]+/ - "baseurl"

	The '-' operator is only defined between regexps.

2008-05-09  David Lutterkort  <dlutter@redhat.com>

	Add REGEXP_MINUS; move REGEXP_TO_FA to regexp.c

	Refactor typechecking for union/concat
	The typechecking for union and concat is incredibly similar, but was
	implemented with too much code duplication.

	Store character sets as bitsets
	Also clean up the definition of the bitset type and make the bitset_*
	functions const correct

2008-05-09  David Lutterkort  <dlutter@redhat.com>

	Add fa_as_regexp that converts an automaton back to a regexp
	During conversion from FA to regexp, our FA mutates into a 'generalized
	transition graph' where transitions aren't labelled with character
	intervals, but with regular expressions.

	There are lots of gyrations to keep the generated regexp reasonably short
	(and syntactically correct)

2008-05-08  David Lutterkort  <dlutter@redhat.com>

	Check for (some) allocation failures

	Reference count 'struct re' instances

	Split ref counting macros into separate header

	Remove use of bad REALLOC macro.
	The old REALLOC macro caused an automatic memory leak when REALLOC
	failed. Use of REALLOC_N instead also forces checking of more allocation
	failures.

	Safer memory allocation from libvirt

2008-05-08  David Lutterkort  <dlutter@redhat.com>

	Fix a rather embarrassing #ifdef problem
	When __GNUC__ was not defined, a big chunk of internal.h was suppressed
	that is not compiler dependent.

	Also, add ATTRIBUTE_PURE macro.

2008-05-08  David Lutterkort  <dlutter@redhat.com>

	Switch to using unsigned char internally
	Since we use chars as indices into arrays in some cases, it is simpler to
	treat characters as unsigned. This also addresses passing possibly signed
	chars to is* functions - by using unsigned char, we avoid possible silent
	conversion problems when going from char -> int.

	There were also cases where we iterated over chars using a char, which was
	prone to silent overflow.

2008-05-08  David Lutterkort  <dlutter@redhat.com>

	Fix mistaken assignments in asserts
	Reported by Jeff Johnson

2008-05-06  David Lutterkort  <dlutter@redhat.com>

	Cleaner way of turning off expensive asserts
	Avoid littering everything with #ifdef's, define an 'expensive_assert'
	instead that expands to nothing unless HASH_DEBUG_VERIFY is defined.

	Patch by Jim Meyering

2008-05-06  David Lutterkort  <dlutter@redhat.com>

	Small fixes to the specfile
	Suggested by Michael Schwendt

2008-05-05  David Lutterkort  <dlutter@redhat.com>

	Lens and transform for xinetd.conf

	Enclose the regexp for a key in (..) before adding a /

	Properly determine if segment needs qualifier
	For segments with label NULL, we didn't qualify the first sibling with the
	NULL label since we were comparing NULL to the result of seg_label, which
	was "(none)"

	Be more consistent in how NULL labels are printed

2008-05-05  David Lutterkort  <dlutter@redhat.com>

	Suppress assert of hash_verify
	Doing the assert(hash_verify(hash)) at various places in hash.c is very
	expensive and slows things down considerably when assertions are turned
	on.

	Rather than turning assertions off globally, only do the hash_verify
	asserts when they are explicitly requested by defining HASH_DEBUG_VERIFY

2008-05-05  David Lutterkort  <dlutter@redhat.com>

	Do not minimize freshly created regexps
	The minimization imposes a serious performance penalty, and is generally
	not needed.

	This also exposes a bug in fa_overlap; for acceptToAccept to work properly,
	it needs to be passed a deterministic automaton.

2008-05-05  David Lutterkort  <dlutter@redhat.com>

	Fix containment check
	Checking for FA2\FA1 being empty was plain silly; this check is a little
	better, but still not the correct disjointness check.

2008-05-02  David Lutterkort  <dlutter@redhat.com>

	Spec file fixes

2008-05-01  David Lutterkort  <dlutter@redhat.com>

	Added tag release-0.1.0 for changeset c032a957c316

	Version 0.1.0

	Rename parameter 'glob' to 'glb'
	gcc on RHEL4 gets confused and thinks that that shadows the global 'glob'
	function.

2008-04-30  David Lutterkort  <dlutter@redhat.com>

	Process lots of files in /etc/sysconfig
	Load all those shell-script style config files from /etc/sysconfig using
	the generic Shellvars lens.

	Ultimately, it would be better if we definedfor each of them which
	variables are actually going to be looked at (together with some
	restrictions on possible values)

2008-04-30  David Lutterkort  <dlutter@redhat.com>

	Test files for various /etc/sysconfig files
	The next commit will add a lens for handling shell var style files in
	/etc/sysconfig. These are simply test/sample files. No functionality.

	Refactor ifcfg.aug
	This puts the bits that are generally useful for processing /etc/sysconfig
	files into shell.aug

2008-04-30  Jim Meyering  <meyering@redhat.com>

	check for a few failed memory allocations
	* src/augtool.c: check for a few failed memory allocations

2008-04-30  Harald Hoyer  <harald@redhat.com>

	do ldconfig in post/postun of the libs subpackage

2008-04-28  David Lutterkort  <dlutter@redhat.com>

	Free the value when freeing a tree node

	Plug another memory leak

2008-04-25  David Lutterkort  <dlutter@redhat.com>

	Fix segfault when aug_get was passed a "/"
	In that case, make_path returns NULL, which must be checked.

	The bigger question, why "/" is not a valid path is a little more subtle:
	the tree is really edge-labeled, not node-labeled, i.e. a label applies to
	the edge going from a parent to its child, but root has no parent, and
	therefore "/" does not really make sense.

2008-04-25  David Lutterkort  <dlutter@redhat.com>

	Split multiple baseurl's in a yum file into multiple baseurl nodes
	With this, the schema for yum config files may now contain nodes like
	  { "section"
	     ... other key/value pairs ...
	     { "baseurl" = "url1" }
	     { "baseurl" = "url2" }
	     ...
	     { "baseurl" = "urlN" }
	     ... other key/value pairs ...
	  }

	Note that the baseurl nodes have to be consecutive; otherwise, put will
	fail.

2008-04-24  David Lutterkort  <dlutter@redhat.com>

	Fix lens selection in union
	The logic in put to select the appropriate branch in unions got it wrong if
	the first branch matched the empty word, because applies only checked that
	the atype for the sublens matched some of the tree. It has to check for a
	complete match of its tree.

	This change fixes that and adds a test to demonstrate the problem.

2008-04-24  David Lutterkort  <dlutter@redhat.com>

	Fix ref counting error in lns_make_plus
	We burnt the passed-in ownership of L when constructing STAR; also, since
	we unref STAR at the end, we need to take ownership of STAR->LENS when
	constructing the concat of L and STAR->LENS

	* src/fa.c (string_extend): Handle realloc failure.
	Patch by Jim Meyering

	Update AUTHORS/NEWS

	Processing of Apt's sources files
	Contributed by Dean Wilson

2008-04-24  David Lutterkort  <dlutter@redhat.com>

	Make sure install preserves timestamps
	Avoids getting into trouble with the .aug files in augeas-libs on multilib
	when installing more than one arch.

	See http://fedoraproject.org/wiki/PackagingDrafts/MultilibTricks

2008-04-24  David Lutterkort  <dlutter@redhat.com>

	Remove trailing whitespace from the end of lines
	No functional change, only formatting.

2008-04-23  David Lutterkort  <dlutter@redhat.com>

	Remove aug_exists - it does not exist anymore

	Delete old, outdated notes

	Some repo files for yum

	Add todo file for low-level tasks that don't make sense on the website

2008-04-23  David Lutterkort  <dlutter@redhat.com>

	Split libraries into a -libs package
	This also includes the files in /usr/share/augeas, since they are read by
	the library and control how configuration files are processed.

	Patch provided by Harald Hoyer

2008-04-23  David Lutterkort  <dlutter@redhat.com>

	Include the augtool manpage as doc in the RPM

2008-04-23  David Lutterkort  <dlutter@redhat.com>

	Don't die on NULL entries in args
	There is no guarantee that parseline will fill all of args with strings,
	empty or otherwise; chk_args needs to be prepared that any entry in args
	can be NULL.

	Also, parseline initializes all args as NULL now to guard against garbage
	pointers accumulating from previous uses.

2008-04-23  David Lutterkort  <dlutter@redhat.com>

	Don't complain about missing optional args
	For example, both 'print' and 'print PATH' are legal. Make sure we accept
	either.

	Properly handle lines with spaces
	The lines read in through readline can now have spaces in their arguments,
	if those arguments are enclosed in single or double quotes.

	Revised help texts

	Man page
	Provided by Dean Wilson

2008-04-22  David Lutterkort  <dlutter@redhat.com>

	Fix two memory leaks in the interpreter

	Plug more memory leaks

	Fix memory leak from not freeing hash table entries

	Clean up the error path in load_file; free the loaded text in transform_load

2008-04-22  David Lutterkort  <dlutter@redhat.com>

	Use fread_file_lim to read entire files
	The function is taken verbatim from libvirt's util.c, and due to show up in
	gnulib soon.

	Also, make read_file return a char * instead of the silly const char *.

2008-04-22  David Lutterkort  <dlutter@redhat.com>

	Check the return value from hash_create

	More const-correctness fixes
	Patch provided by Jim Meyering

	File needed for running the tests

	Stick more closely to what the shell accepts as assignments

	Properly escape/unescape quotes in strings
	Patch provided by Alan Pevec

2008-04-21  David Lutterkort  <dlutter@redhat.com>

	Updated for 0.0.8 and upcoming 0.1.0 release

	Remove aug_exists from public API
	aug_get now combines the functionality of the old aug_exists and aug_get
	calls, so that callers can retrieve a value and check whether a path
	expression matches exactly one node in a single call.

	Make creation of new files work
	When a subtree is created that corresponds to a brandnew file, create the
	underlying file properly.

	Propagate failure of transform_save up

2008-04-21  David Lutterkort  <dlutter@redhat.com>

	Sync compiler warnings with latest from libvirt
	This should avoid build failures seen on Debian, caused by
	-fstack-protector

	Also fix build failure caused by addition of -Wformat-security

2008-04-21  David Lutterkort  <dlutter@redhat.com>

	Mention people who sent patches

	Parse network configs in /etc/sysconfig/ifcfg-*
	Patch provided by Alan Pevec

	Don't mark ROOT for MAKE_PATH as const - it's not always true

	Cap file reads (arbitrarily) at 32MB

	Don't ever try to read a directory
	Suggested by Jim Meyering.

	Return int from aug_print to indicate errors
	Check for failures during printing and return an indication whether printing
	succeeded or not.

2008-04-21  David Lutterkort  <dlutter@redhat.com>

	Don't hide pointer in typedef; const correctness
	The type for the Augeas handle is now called 'augeas' insteda of
	'augeas_t', and is a struct, not a pointer to a struct.

	Mark the places where the passed-in struct augeas is readonly in the API.

	Patch provided by Jim Meyering

2008-04-21  David Lutterkort  <dlutter@redhat.com>

	Change names of macros used to guard against double-inclusion
	Change the names from __NAME_H to NAME_H_ since __* macros are reserved.

	Suggested by Jim Meyering.

2008-04-21  David Lutterkort  <dlutter@redhat.com>

	Add "2008" to the copyright in the headers

2008-04-19  David Lutterkort  <dlutter@redhat.com>

	Remove dependency on glib and use kazlib's hash table instead
	The dependency on glib was only there for the hash tables used by
	libfa. Rather than requiring all of glib just for that, use the hash table
	implementation in hash.[ch] taken from kazlib.

2008-04-18  David Lutterkort  <dlutter@redhat.com>

	Hashtable from Kazlib 1.20
	Available from http://users.footprints.net/~kaz/kazlib.html

	Abort if failing assertions are not used

2008-04-19  David Lutterkort  <dlutter@redhat.com>

	Remove pathsplit symbol

2008-04-16  David Lutterkort  <dlutter@redhat.com>

	Added tag release-0.0.8 for changeset cb00aa18e518

	Release 0.0.8

	Remove unused function

	Install lens tests in lenses/tests/ not lenses/

	Use the right path expression to print the whole tree

	Don't segfault when a test fails without producing any tree

2008-04-15  David Lutterkort  <dlutter@redhat.com>

	Call the node for a boot entry 'title'

2008-04-14  David Lutterkort  <dlutter@redhat.com>

	Remove the use in sequences in some places
	Where indentation isn't important, we can flatten and simplify the tree by
	not using seqs. Instead of something like aliases/1, aliases/2, ... we now
	have alias[1], alias[2] etc.

	Start sequences at 1, in symmetry with the element[N] counting

	Consolidate tree allocation into one make_tree function

	Change the ins syntax to support insert before/after
	This reflects the change to the aug_insert API

	Handle searching for the last() element properly
	path_first didn't find anything when looking for 'element[last()]'

	Process grub.conf

2008-04-14  David Lutterkort  <dlutter@redhat.com>

	Don't delete too many siblings
	When a path specified a node that had siblings with the same name, tree_rm
	was deleting that node and all the siblings after it (because the name
	label[3] would ssuccessively refer to its later siblings as label[3] was
	deleted)

	Now, first generate a list of nodes to delete before removing anything.

2008-04-14  David Lutterkort  <dlutter@redhat.com>

	Fix put test - it was checking for hte wrong result

	Running a failing test fails loading the whole module

2008-04-11  David Lutterkort  <dlutter@redhat.com>

	Add path expressions allowing XPath-like path matching
	Path expressions passed in through the public API can now contain indices
	to denote a specific sibling (including [last()]) amongst siblings with
	multiple labels, and use '*' to match nodes with any label.

	Syntax and semantics follow XPath.

2008-04-11  David Lutterkort  <dlutter@redhat.com>

	Run all tests - don't abort after the first failure

2008-04-10  David Lutterkort  <dlutter@redhat.com>

	Escape values and enclose them in quotes when printing

	Typecheck only on the first test
	It's enough to pass -c to augtool on the first test we run; doing it again
	in later tests is completely redundant and just slows the test run down.

2008-04-09  David Lutterkort  <dlutter@redhat.com>

	Complain if a transform is built from a lens orphaning a key/value
	Such a transform would lose information when applied and can't be
	valid. Ideally, this check would be in the typechecker, but requires
	dependant types, too much of a complication right now.

2008-04-09  David Lutterkort  <dlutter@redhat.com>

	Clean up some confusion around the semantics of store
	Store does not create a tree; instead it puts a value in place where the
	enclosing subtree will find it.

	During lens building, there is now a check to make sure the key and value
	are set in at most one place in each subtree. Ideally, this check would
	happen in the typechecker, but it would require that we parametrize the
	lens type, considerably complicating matters.

2008-04-09  David Lutterkort  <dlutter@redhat.com>

	When get encounters an error during a test, include hte tree in the exn
	lns_get now returns a tree even if the full input was not consumed. To
	check whether get succeeded, the ERR parameter needs to be checked.

	Update README

	Remove 'spec' files and tests that don't make sense any longer

	Fail test scripts on _any_ unexpected error

	Distribute lens tests

	Suppress .rpmnew/save files

	Obey AUG_TYPE_CHECK flag
	Do not do the expensive lens type checks if AUG_TYPE_CHECK is not set. Run
	augtool with -c in tests to ensure tests do type checks.

2008-04-09  David Lutterkort  <dlutter@redhat.com>

	Update augtool round-trip tests and add them to 'make check'
	Update the tests to the new layout of the tree.

	augtest allows marking tests to skip (by putting 'skip=true' into the
	test) and sets the exit status properly so that 'make check' will fail if
	one of the augtool tests fails

2008-04-09  David Lutterkort  <dlutter@redhat.com>

	Fix underallocation

	Only attempt to save if there are dirty files

	Reread the original file from the same root on save

	Pass the children of the right tree

	Fix some errors that made aug_save fail

	Mark a freshly loaded tree as clean

	Check the return value of asprintf
	Handling of asprintf failures (and allocation failures in general) needs a
	lot more work.

	Small touchup - needs much more work

	Fix segfault if a qualified name references the module it is in
	Now explicitly referencing the enclosing module works properly: if the name
	is already defined locally, everything works, and if it is not, an error is
	produced.

2008-04-08  David Lutterkort  <dlutter@redhat.com>

	Typecheck the atype of concat and iter

	Typecheck the atype of union

	Change the typecheck on union
	Typecheck unions l1|l2 less strictly (and less annoyingly) by requiring
	that l2 has a chance of ever being used, and not the stricter criterion of
	disjoint ctypes for l1 and l2

	Port of the lenses for inittab and sshd_config tothe new syntax

	Curb the repeated printing of exceptions

	Clearer error message

	Processing of pam.d

	Pull some useful space deleters into Util

	Check that let expressions work

	Fix problem in concating filters
	The check whether we fully own a filter in compile_concat, and therefore
	can modify it destructively, was wrong. Besides holding the only reference
	to the filter, we also need to be holding the only reference to the value
	wrapping the filter.

	Mark hosts and aliases for autoloading

	Load from the new ../lenses dir

	Obey setting of an explicit root directory

	Don't segfault when there is no filter arg for a match
	Before, running "augtool match '/augeas/files/*/error'" would result in a
	segfault. Now it prints all matching entries, regardless of their value.

	Handle continuation lines; more thorough tests

	Check that labels and keys do not contain a '/'
	We rely on that fact in various places when handling paths; '/' is the
	separator of path components and can never appear in a path component.

	Print a newline on EOF

	Autoloading of files for augtool
	Autoload is indicated by putting a 'autoload ...' statement as the first
	expression in a module. Currently, there can only be one autoload; the
	identifier mentioned in the autoload must be defined in the enclosing
	module.

2008-04-07  David Lutterkort  <dlutter@redhat.com>

	Builtins for filters and transforms
	Three simple builtins to construct transforms:

	- incl : string -> filter includes all files matching a glob
	- excl : string -> filter -> filter excludes all files matching a glob
	- transform: lens -> filter -> transform

2008-04-08  David Lutterkort  <dlutter@redhat.com>

	Implement free_lens

2008-04-07  David Lutterkort  <dlutter@redhat.com>

	A lens for yum

	Fix bad free

	Add Util.split

	Local let expressions
	Add syntax for
	  let a =
	    let b = exp in
	      exp

	Plug two more memory leaks
	- require_exp_type is sometimes called with a term that already has
	  a type. Don't typecheck such terms again
	- compile_compose should not run the full typechecker on the closure it is
	  building, since parts of it have been typechecked already. Instead,
	  manually create types for the new terms. Also, don't evaluate the
	  subexpressions since their values are not used at all

	Add a 'gensym' builtin

	More ref ocunting fixes
	- aug_close now releases the list of modules
	- compile_bracket cleans up the arg
	- augparse closes the augeas connection, mostly so that we can see leaks
	  in valgrind better

2008-04-04  David Lutterkort  <dlutter@redhat.com>

	Fix major brainfart in ref counting lists
	The way lists were reference counted (and particularly unref'd) was just
	plain stupid wrong. A list 'next' pointer is no different from any other
	pointer when it comes to ref counting.

	Initialize *err properly, even if there is no tree

	Fix bug with nested subtrees
	There was no clear indication if a subtree was a leaf (and should therefore
	not grow any tree returned by its child) or was an interior subtree (so
	that any returned tree needs to become a child of a new tree)

	Kludge around an inconsistency with print_tree

	Beginnings of tests for the interpreter

	Exceptions during compilation countas failure

	Fix how the key regexp for unions is calculated
	Union would produce spurious empty keys, for example in the expression
	  [ key /a/ . ([ l1 ] | [ l2 ]) ]
	the union would get an atype of '//' which is wrong, since the subtree []
	does not contribute to an atype.

	Start a util module with some common functions

	Run lens tests during 'make check'

	Fix bug introduced in 292:5123e63e004b
	Don't compare with the whole path if there is a parent, only the last
	component of that path.

	Handle trailing slashes on loadpath components cleanly

	/etc/aliases processing in the new syntax with tests

2008-04-04  David Lutterkort  <dlutter@redhat.com>

	Allow rm from toplevel of tree
	The only issue with this is that the dirty flag can not be set properly
	when deleting from the toplevel of the tree since the flag has to be set on
	the parent, which we don't have.

	This is really only an issue if (a) we delete the whole tree (b) the next
	sibling of the node we delete is semantically different from the deleted
	node (e.g. because it goes into a different file)

	Either way, this only happens during tests; in the 'real' tree, toplevel
	nodes are fixed, like /files and /augeas, and we don't really have an issue
	there.

2008-04-04  David Lutterkort  <dlutter@redhat.com>

	Small tweaks

	Produce exn when tree_rm/tree_set fail

	Update yylloc for string/regexp constants

2008-04-03  David Lutterkort  <dlutter@redhat.com>

	When compile_exp produces an exn, bind it anyway
	This avoids lots of trouble with NULL values

	Desugar (lens)+
	The construct (lens)+ is now processed as lens . lens*

	Fix segv on repetition of regexps

	Clearer error messages from typechecking lenses

	Fix key regexp for union; throw exception on subtrees with multiple keys

	Have lens constructors return exns on failure
	Also refactor exception generation.

	Add a test that produces an exception

	Allow '*' as a test result indicating an expected exception

	Error propagation from lns_put
	Record a lns_error if things don't work out during put. Generate an
	exception on error.

	A very first lens in the new syntax, with tests

	Use the default string for a del lens, really.

	Module names must be consistent with the name of the file they are in
	The basename of the file must be the name of the module, lowercased and
	with ".aug" appended

2008-04-03  David Lutterkort  <dlutter@redhat.com>

	Add explicit loadpath
	augtool and augparse now take an explicit loadpath with the -I option,
	which can be repeated multiple times.

	aug_init takes a loadpath as a new argument

2008-04-03  David Lutterkort  <dlutter@redhat.com>

	Load needed modules
	When the module for a qualified identifier Mod.name is not loaded yet,
	automatically load it by looking for a file mod.aug on the module load
	path.

	Rename struct env to struct module

	Separate function composition from concatenation
	Function composition is now written as 'f ; g' instead of 'f . g'

	Allow tree constants with NULL labels

	Clean up printing of empty trees

	Clarify the reference counting terminology

	Free the skel that lns_put creates initially

	Make sure free_dict frees the whole dict

	Fix reference problem
	The wrong type was being unref'd

2008-04-02  David Lutterkort  <dlutter@redhat.com>

	Free the whole dictionary
	While entries are looked up, dict->entry changes; dict->mark is the head of
	the list of all entries that were ever in the dict.

	Clear skel and dict in state so assertions in create_ don't trip

	Always split the full tree
	There's no need to support splitting a partial tree for now. This means
	that lns_put will put TREE and all its siblings.

	Fix incorrect usage of size parameter for re_match

	Add missing break in get/parse_union
	Without it, it acts like a concat that drops trees on the floor

	Allow printing of hidden tree nodes
	When printing test results, we want to see the full tree

	Pass lns_error to parse; free dicts and skels

2008-04-02  David Lutterkort  <dlutter@redhat.com>

	Report errors from get as exceptions
	Adds a value kind 'EXN'. When the interpreter gets such a value, it bails
	out immediately.

	lns_get now reports parse errors in an lns_error struct, which is turned
	into an exception in the interpreter.

2008-04-02  David Lutterkort  <dlutter@redhat.com>

	Added tag ml-syntax-start for changeset fcd6c04a1eed

	A subtree without a key matches "/"

	Print \n after test result

	Allocate enough bytes for string in unescape

	Free regexps cleanly

	Fill in subtree->atype with empty regexp

2008-04-01  David Lutterkort  <dlutter@redhat.com>

	Interpreter for the new file description syntax
	This is by no means done, but done enough to allow incremental fixes from
	now on. This checkin still contains lots of FIXME's and bugs. Very simple
	unit tests do work though.

	The syntax for describing files is now a very simple OCaml-like functional
	language; the file syntax.c implements an interpreter for that language.

2008-03-25  David Lutterkort  <dlutter@redhat.com>

	Revamp the language

2008-03-14  David Lutterkort  <dlutter@redhat.com>

	Remove comment about fa_overlap/fa_ambig_example
	I don't really have the data to support preferring one over the other that.

	Rename parse_* functions to get_*

	Rename parser.c to get.c

	Add bcprules (by Benjamin Pierce); needed by lenses.tex

	Added tag release-0.0.7 for changeset 93563112907c

	Release 0.0.7

	Expose typechecking in augtool
	Run 'augtool -c' to get typechecking. Very useful during
	development. (Though augparse is even more useful when writing new lenses)

	Be a little more restrictive on when to dump the whole grammar

	Fix lenses so that they pass type checking.
	There were several subtle amibuities in the lenses previously, which the
	typechecker nicely discovers now.

	When splitting the tree, check that we are atthe right subtree
	Without the check, spliting at a subtree just gobbles up trees without any
	regard for what that tree is. This becmoes a problem in a sequence like
	  [ COMMENT ] * . [ key FOO . store BAR ] *
	when there is no comment, and therefore no subtree witha NULL label. A tree
	with a single node matching FOO is wrongly split as if there was a COMMENT
	(which, if it were there would have to have a NULL label)

2008-03-13  David Lutterkort  <dlutter@redhat.com>

	Defer allocating storage for a state_set as long as possible

	Rename constants state_set_* to array_*
	We use state_set_initial_size and state_set_max_stride for both state_set
	and transitions arrays. Rename them to array_initial_size and
	array_max_expansion

	Speed up FA_MINUS by checking for some simple cases with fixed results

	Speed up fa_contains by not determinizing FA1

	Speed up intersection
	(1) Do not determinize before intersecting
	(2) Check if one of the automata is the empty language, and return the
	    empty language if so

	Store transitions in an array
	Brings about a 10% performance gain since we don't allocate each transition
	individually, and since traversing and accessing transitions is a wee bit
	faster.

	Remove unused macro

	Clean up fa_iter some
	Now both cases (max == -1 for unbounded iteration) and max >=0 use the same
	code to generate the automaton (fa){min}

	Compute union and concat in place internally
	Reduces the number of times we clone an fa for internal purposes, and
	therefore the memory management overhead.

	Rejigger the weights assigned by chr_score to make fa_example more predictable

	Minor optimization for fa_example

	Keep the list of states for clone in a sorted set
	This speeds up things enormously (for cmfm.aug, augparse goes from 17s to 6s)

	Store that pairs of states for intersection in a hash table

	Sorted state sets
	When order of states in a set doesn't matter, allow the set to be kept
	sorted so that search can use binary search.

2008-03-12  David Lutterkort  <dlutter@redhat.com>

	Fix two memory leaks

	Remove the last uses of FA_MAP
	Use STATE_SET instead, since it's faster and lighterweight

	Rename structs fa_state and fa_trans to state and trans

	[mq]: min_hopcroft.patch

	Sort transitions before generating examples
	Otherwise, examples depend on the order in which transitions appear for
	each state.

	Add state sets at head of state_set_list

	Use state_set in fa_clone
	To speed up fa_clone, keep the correspondence between old and new states in
	a state_set to reduce allocation overhead.

	Reverse transitions in place in fa_reverse

	Improve the performance of fa_intersect with better data structures
	Store the map of (s1, s2) -> s for intersection in nested state sets
	instead of a linked list.

2008-03-12  David Lutterkort  <dlutter@redhat.com>

	Faster data structures for sets of states and a list of sets of states
	Store the list of sets of states for determinize in a hash table. Since I
	don't feel like implementing my own, pull in glib and use GHashTable.

	Store sets of states in an array rather than in a linked list. This greatly
	reducs the overhead from memory allocations, since the array is expanded by
	doubling its size (up to some threshold)

2008-03-11  David Lutterkort  <dlutter@redhat.com>

	fa_star added a spurious epstrans loop on new initial

	Mark live and reachable states
	Performance improvement. Instead of allocating temporary lists for live and
	reachable states, use one bit each in the state to mark them for that
	purpose.

2008-03-11  David Lutterkort  <dlutter@redhat.com>

	Add typechecking of lenses
	Concatenation and iteration of lenses is now checked for ambiguity. Union
	is checked for disjointness, but that is only flagged as a warning, since
	it's mostly a harmless problem, and fixing it requires writing nasty
	regexps in the spec files.

	Fix existing specs to pass typeckecking. Typechecking is extremely slow
	right now, some of that will be addressed shortly. For now, augtool does
	not do typechecking, but augparse does by default.

2008-03-10  David Lutterkort  <dlutter@redhat.com>

	Fix subtle bug in determinize
	Fix a bug that would only hit if '\0' is ever in points.

2008-03-06  David Lutterkort  <dlutter@redhat.com>

	Add fa_ambig_example to generate ambiguous words
	Generate an ambiguous string upv given two languages and directions on how
	to split that string into u.pv and up.v. Algorithm from Anders Moeller from
	the dk.brics.grammar package.

2008-03-06  David Lutterkort  <dlutter@redhat.com>

	Fix example generation, it was completely broken
	The previous algorithm was way too simplistic, and failed on more
	complicated languages.

	fa_example now generates a relatively short word, subject to certain
	preferences, so that for example, alnum characters are preferred over
	printable ones, and those over nonprintable ones.

2008-03-06  David Lutterkort  <dlutter@redhat.com>

	Fix some cornercases in fa_example

2008-03-05  David Lutterkort  <dlutter@redhat.com>

	Add generators and tests for some basic languages
	Basic languages are the empty language, the language containing only the
	empty word, and the total language \Sigma^*

	Fix tyops

	Added tag release-0.0.6 for changeset 9a4f846673ac

	Released version 0.0.6

2008-03-05  David Lutterkort  <dlutter@redhat.com>

	Allow influencing the behavior of save
	By passing one of the flags AUG_SAVE_BACKUP or AUG_SAVE_NEWFILE to
	aug_init, it is possible to influence the behavior of aug_save to either
	overwrite files in palce, save originals with extension .augsave, or put
	changes into files with extension .augnew.

	Also added switches to augtool to set this from the command line, and to
	set the filesystem root.

2008-03-05  David Lutterkort  <dlutter@redhat.com>

	Added tag release-0.0.5 for changeset 0efe2a620e39

	Mark print_re as unused

	Release 0.0.5

	Make aug_close public

	Public API change: include a reference to an augeas_t in all calls
	To make Augeas threadsafe, we need to move away from keeping stuff in
	global variables.

2008-03-04  David Lutterkort  <dlutter@redhat.com>

	Add fa_example which produces an example string from a regular language

	Add a test that performs Anders Moeller's ambiguity algorithm manually

2008-03-04  David Lutterkort  <dlutter@redhat.com>

	Two bug fixes
	(1) fa_make_char_set would never create transitions with min == max
	(2) fa_intersect got things wrong when t2 had an interval that overlapped
	    several intervals on t1

	Also added tests to check these two problems.

2008-03-04  David Lutterkort  <dlutter@redhat.com>

	Fix handling of negated charsets
	Negated charsets where handled entirely wrong. A character set is now
	represented as a map from char -> {0, 1}. That map is rather big (one byte
	per character)

	Fix order in which libraries are installed
	libaugeas must be installed after libfa, since it depends on it.

	Remove old sketch of interface; not needed anymore

	Compute the complement, set difference and overlap of two languages

2008-03-04  David Lutterkort  <dlutter@redhat.com>

	Fix a bug in how '.' is being handled
	The '.' was treated the same as [\n] instead of [^\n] by mistake.

	Also fixes a small bug in fa_contains.

2008-03-04  David Lutterkort  <dlutter@redhat.com>

	Add deciding unambiguously iterable based on ua concatenable

2008-03-03  David Lutterkort  <dlutter@redhat.com>

	Automatically free all automata allocated during a test

	Cleanup the returned FA in fa_intersect

	Add a target to run fatest through valgrind

	Add fa_intersect: intersection of regular languages

	Comment the uses of FA_MAP better and rename some internal helper functions

	Clean up management of state lists
	Centralise allocating new states for a fa in add_state; that makes sure
	that all states appear on the list of states in fa->initial.

	Do not rely on gcc >= 4.0 for restricting symbol exports
	Use a linker script instead. The visibility pragma is only available in gcc
	>= 4.0, and thus imposes a pretty high burden to build Augeas.

2008-02-29  David Lutterkort  <dlutter@redhat.com>

	Reign in the number of symbols exported from libaugeas
	Use visibility=hidden to keep most local symbols to ourselves. Still needs
	some work for augparse/augtool

	Performance improvements
	(1) Don't minimize the automaton quite so often. Now, only fa_compile minimizes
	    by default.
	(2) Instead of full-on minimization, clean up the automaton before
	    returning to the user by removing dead transitions/states.

	Remove gratuitous list traversals
	Replace list_append with list_cons (adds at the head of a list) where order
	of the list does not matter.

	Add tests for language subsets and equality

2008-02-29  David Lutterkort  <dlutter@redhat.com>

	The beginnings of a finite automata library
	The code is heavily based on the Java package dk.brics.automaton by Anders
	Moeller (http://www.brics.dk/automaton/)

	Eventually, this should becomea standalone library, seeing how there does
	not seem to be any open-source, maintained finite automata library.

2008-02-29  David Lutterkort  <dlutter@redhat.com>

	Some unit testing help
	This is an adapted version of CuTest
	(http://sourceforge.net/projects/cutest/) written by Asim Jalis

	Minimal docs for aug_save and aug_print

2008-02-26  David Lutterkort  <dlutter@redhat.com>

	Ignore more stuff

	Fix segfault in aug_ls
	When skipping nodes with NULL label, don't segfault if the whole tail of
	the list has NULL labels

2008-02-25  David Lutterkort  <dlutter@redhat.com>

	Added tag release-0.0.4 for changeset d8e750d82f97

	Version 0.0.4

	Some NEWS

	Package as RPM

	Turn off warnings-as-errors when building spec-lex.l
	We need -Wno-error, otherwise the CFLAGS passed during mock builds turn
	checking for unused parameters back on; flex doesn't provide an easy way to
	generate code that passes those checks (that's the reason for building the
	liblexer.la convenience lib)

	Only define print_dict when it is used

	Added tag release-0.0.3 for changeset 56cb08f222a3

	Version 0.0.3

	Test for readline in a way that works on RHEL5

	Some build/install tweaks
	(1) Rename spec in $(datadir)/augeas/spec to lenses
	(2) Add pkgconfig info for libaugeas
	(3) Install augeas.h as a header

	Rename AUGEAS_SPECLIB to AUGEAS_LENS_LIB

	Added tag release-0.0.2 for changeset f981ccccb0ab

	Include the try script in the distribution

	Bump version to 0.0.2

	Fix things up so that 'make distcheck' works
	(1) make test runs work when when top_builddir != top_srcdir
	(2) Include spec/ files in distribution
	(3) disable test-grammars.sh since the test grammars are busted right now

	Fix warnings about uninitialized variables

	Add config.h to libaugeas.la

	Stricter types for some combinators. List needed reg lang operations

2008-02-21  David Lutterkort  <dlutter@redhat.com>

	Some changes to the yum description
	(1) Use a yum.conf that is actually shipping
	(2) Make COMMENT match blank lines
	(3) Fix tests to work with updated yum.conf

	Only create /tmp/augcmds.txt if it doesn't exist
	Nothing deep; just trying to keep Mercurial from marking the file as
	modified as I change the commands that try runs

	Make aug_ls return all the children for a given path
	aug_ls did not handle entries that were split across several nodes
	properly. Now, we find all the nodes for the given path and list their
	children.

	Fix splitting of AcceptEnv
	The list of env vars for AcceptEnv was not being split into individual
	pieces

2008-02-20  David Lutterkort  <dlutter@redhat.com>

	A (pretty kludgy) description for cmfm.conf

	Make printing of skel/dict optional

	Print test results a tad prettier

2008-02-20  David Lutterkort  <dlutter@redhat.com>

	Use GNU regex instead of PCRE
	Use the GNU regex functions from glibc instead of PCRE, as glibc uses a DFA
	implementation that does not suffer the limitations of PCRE's backtracking
	implementation.

	The syntax for regular expressions is now RE_SYNTAX_POSIX_MINIMAL_EXTENDED,
	essentially extended POSIX regular expressions, except that '.' does not
	match newlines.

2008-02-20  David Lutterkort  <dlutter@redhat.com>

	Clean up regexps for POSIX
	Various small fixes to regexps to make them work properly as POSIX regexps.

	Added tag remove-any-first-follow for changeset 0d22160e9494

2008-02-20  David Lutterkort  <dlutter@redhat.com>

	Remove any matches ... and ..? from the language. Remove first/follow sets
	They currently require lookahead assertions from the underlying regexp
	engine.

	Since any matches were the only reason to compute first/follow sets, remove
	those, too.

2008-02-20  David Lutterkort  <dlutter@redhat.com>

	Remove the use of the any operators '...' and '..?'
	These operators inherently require lookahead assertions, but we need to
	switch to a regexp engine that does not support them.

	Don't segfault when parsing fails

2008-02-19  David Lutterkort  <dlutter@redhat.com>

	Drop CF-oriented check for ambiguity through looking at first sets

	Allow escaping of a slash in tegular expressions

2008-02-18  David Lutterkort  <dlutter@redhat.com>

	Base parsing completely off regexp matching.
	Parsing now uses regexp matching, and not the CFG-style parsing based on
	first sets previously used. This actually makes it easier to write specs,
	since parsing decisions are made based on the complete string, not just the
	first 'token'.

	The downside is that rules can not be recursive anymore, as that would
	make the matched language non-regular.

	The main motivator for this change is that it makes it possible to do
	stricter checking of the input spec using type checking similar to
	boomerang's string lenses based on operations on regular languages.

	Unfortunately, we have to keep first/follow computations to construct the
	fairly tricky regexps that are used for ANY patterns.

2008-02-18  David Lutterkort  <dlutter@redhat.com>

	Remove unused token T_FIELD

	Rename match.xaction to match.action
	The field was named initially to avoid a clash with another 'action' field,
	but that field is gone now.

	Add Match blocks

	Remove leading whitespace inside Match directives

2008-02-18  David Lutterkort  <dlutter@redhat.com>

	Fix nested splits
	For a lens like a . (b . c)*, tree_split used to return a split that looked
	like [a; b; c; b; c] That is wrong: when we split on the outer '.', we need
	to produce a split with exactly two entries: [a; b] (where b stands as the
	first entry in the tree that '*' will act on.

	split_tree_car cleans up recursively computed splits in this manner; those
	subsplits are mostly computed for their sideeffect, particularly for the
	fact that they change state->tree.

2008-02-18  David Lutterkort  <dlutter@redhat.com>

	Properly print split nodes

	Lenses for sshd_config
	This is interesting because of the treatment of AcceptEnv and similar
	constructs

2008-02-18  David Lutterkort  <dlutter@redhat.com>

	For split nodes, append entries at the last occurence
	It is possible that one logical node is split across several physical
	nodes to accomodate settings that are spread across several lines like
	'AcceptEnv' for sshd_config. Such lines lead to multiple nodes
	/system/config/sshd/AcceptEnv (all siblings of each other)

	When a call to aug_set creates a new entry underneath such a split node,
	make sure that that the new node is put under the last such node. This
	helps maintain the illusion for users that the split node is really just
	one node.

2008-02-15  David Lutterkort  <dlutter@redhat.com>

	Report some information underneath /augeas
	The root directory and information about how files were loaded into the
	tree are kept in the /augeas hierarchy now

	Fix very bad use of realloc

	Adjust expected diff
	Do not allow comments to disappear

	Fix test
	The old diff was bogus (it expected a comment to be removed that has to
	stay there)

	Cleanly handle comments

	Default COLON to ':' plus tab. Simple tests for aliases

	Informal survey of files in /etc

	Ignore intermediate Latex files

	Store comments in subtrees so they are restored properly

	Turn into a test on a legal tree and make it pass

	Fix split of QUANT_MAYBE. Add create_quant_maybe

	Make aliases work

	Free the results of split_tree

	Properly split an empty * as an empty list

	Try to make putting QUANT_MAYBE work
	This is still kinda suspect

	parse_subtree must always generates a tree
	We have to have a subtree, no matter what, even if it is completely
	empty. If the subtree doesn't contain any key and store instructions, we
	still need to have a tree [ NULL -> NULL ]

	Modified yum spec that seems to work

	Script to ease testing of augtool

	Enable parsing of pam

	Remove bogus reset of 'record' counter

	Fix print problem
	Print did not generate paths right; it would print children of a node with
	a path that did not contain the label of that node.

	Add clear command

	Properly handle a NULL value in aug_set. Make aug_insert deal with NULL labels.

2008-02-14  David Lutterkort  <dlutter@redhat.com>

	Fixed, nicely working tests

2008-02-14  David Lutterkort  <dlutter@redhat.com>

	Readline completion
	Complete command names and tree paths.

	Also cleans up the path entered by the user so that it doesn't have
	trailing spaces or '/'. Cleaning should probably be done by the public
	API.

2008-02-14  David Lutterkort  <dlutter@redhat.com>

	Major rework
	Code still unbelievably buggy and segfaults in lots of places, but it is
	fairly clean and works for choice examples.

	The reworked code is based fairly closely of boomerang and
	lenses. doc/lenses.tex describes some of the background.

2008-02-13  David Lutterkort  <dlutter@redhat.com>

	Cleaner syntax
	The spec language now contains instructions on how to build the tree inline
	with the grammar.

	This change is majorly broken.

2008-02-12  David Lutterkort  <dlutter@redhat.com>

	Better description of lenses

	Different representation of the tree
	The tree is now represented as a tree data structure, where each node in
	the tree stores only a path component (label).

2008-02-08  David Lutterkort  <dlutter@redhat.com>

	Beginnings of a formal writeup

2008-01-30  David Lutterkort  <dlutter@redhat.com>

	Remove field references as a match
	It used to be possible to have a rule like
	  rule: RE '=' $1
	with the meaning that $1 would match the same thing as RE. That hasn't been
	used yet; unclear if it ever will.

	When deleting, only mark AST changed when leaf was deleted
	This is really a kludge to work around the fact that we might construct
	incomplete AST's.

	Slightly mroe helpful error message during parsing

	Don't segfault when the parse matches nothing

2008-01-29  David Lutterkort  <dlutter@redhat.com>

	Another yum test

	Remove more unneeded cruft

	Remove unneeded safe_free, TRUE and FALSE

	Remove unneeded ROOT_DIR and update augtool help

	Remove dead code and misleading comment

	Remove files not needed any longer

	Update NEWS

	Run all the augtest tests by default and from make check

	Test key/value parsing with yum
	The test file also nicely illustrates some shortcomings of the way comments
	are associated with tree entries. There's not enough flexibility to let the
	user cleanly indicate what a comment goes with (e.g., an entire section,
	the next key/value pair etc.)

2008-01-29  David Lutterkort  <dlutter@redhat.com>

	Initialize fields used as path components
	When a field is used in a path component, initialize its value from the
	path. Since it is not possible to change an existing path, this operation
	is only needed when new parts of the AST are created.

	The code assumes that the leaf for the path component is in the subtree
	where the leaf's value is used. That is not necessarily true; at least,
	it's not being checked from the grammar.

2008-01-29  David Lutterkort  <dlutter@redhat.com>

	Test that reordering of subtrees works

	Set the root of the tree from include

2008-01-29  David Lutterkort  <dlutter@redhat.com>

	Respect ordering of nodes in the config tree.
	Previously, reordering of branches in the config tree did not lead to a
	corresponding reordering of elements in the file. Branches in the AST are
	now reordered in such a way that their ordering reflects the ordering in
	the config tree.

	Iterator nodes with a $seq action need to be treated special: they do not
	change the path for the current (iterator) node, only for the child nodes.
	That is terribly ugly.

2008-01-29  David Lutterkort  <dlutter@redhat.com>

	Fix bug in creating sequence subtrees

2008-01-29  David Lutterkort  <dlutter@redhat.com>

	Distribute enters so we have one per match
	Simultaneous traversal of the AST and the config tree is much simpler if
	any match will only go at most one level deeper. That guarantees that
	entering a child in the config tree corresponds to entering an AST node
	(possibly followed by entering some more AST nodes labelled with the same
	path)

	To this end, split actions with multiple enters into fake SEQUENCE matches
	(followed by the match that held the initial action). The fake SEQUENCE
	matches all have exactly one child in their matches field, and one of the
	enter instructions from the action for them.

	Actions are also lifted up in the grammar as far as possible; in
	particular, this pulls constants (but not $seq) out of iterators. This
	ensures that the children of an AST node differ in exactly one path
	component.

2008-01-29  David Lutterkort  <dlutter@redhat.com>

	Push stores to the matches they store in the tree
	In an assignment, the value being stored can only be a field
	reference. Push the corresponding action for the store to that field. This
	simplifies both getting and putting the tree.

	As a byproduct, a number of questionable constructs are spotted and
	rejected:
	  (1) Assignments that move the value out of the current tree
	  (2) Storing the same value in more than one place in the tree (which
	      would make it possible to change one copy, but not both)
	  (3) Useless enter instructions; they don't cause harm but probably
	      indicate some other problem in the grammar. They are only spotted
	      if they get in the way of a store, but should probably be checked for
	      the whole grammar

2008-01-29  David Lutterkort  <dlutter@redhat.com>

	Produce dot files for the grammar

2008-01-29  David Lutterkort  <dlutter@redhat.com>

	Various changes to the tests to make them (almost) work
	(1) Adjust to the fact that the root dir is now a variable
	(2) Mark tests as failing if augtool exits with an error exit status
	(3) Use numbers matching [0-9]+ where the grammar uses $seq, otherwise
	    augtool will (rightly) report an impossible path

	Some of the tests are still failing.

2008-01-29  David Lutterkort  <dlutter@redhat.com>

	aug_ls: Fix bad parent comparison
	Before /foo/1000 was listed as a child of /foo/1

	Docs

2008-01-24  David Lutterkort  <dlutter@redhat.com>

	Rough thoughts about emit

2008-01-21  David Lutterkort  <dlutter@redhat.com>

	For quantified groups, count the quantifier as the group
	Previously, for a match like '(A)*' A was counted as a group, which meant
	that if an action was attached to the group, all the children of the '*'
	node in the AST had the same path. By counting the '*' as the group, not
	'A', the children will have different name if different subtrees are
	produced in the group.

	This ensures that in the AST, the children of '*' and '+' have different
	names and simplifies the 'put' direction of the transformation
	considerably.

2008-01-21  David Lutterkort  <dlutter@redhat.com>

	Some config settings - most of them need to be exposed through configure.ac

2008-01-18  David Lutterkort  <dlutter@redhat.com>

	Global filename does not exist. Use basename

	Only increment $seq when it has been used
	With this change, $seq goes structly sequential in the generated tree
	nodes. Before, things like comments that don't lead to changes in the tree
	increased the counter, too.

	Spec files needed by the tests

	Don't segfault in ast_dot on NULL ast

2008-01-18  David Lutterkort  <dlutter@redhat.com>

	Only save files with actual changes
	Split emitting into two parts: updating the AST from the config tree and
	actually writing the AST to file. do_insertion and do_deletion now report
	if they made any changes to the tree so that the provider can decide
	whether to save the file or not.

	As a byproduct, parts of the AST that are no longer needed are actually
	freed.

2008-01-18  David Lutterkort  <dlutter@redhat.com>

	Handle null values/tokens when storing

	Detect association of values with impossible paths

2008-01-17  David Lutterkort  <dlutter@redhat.com>

	Make augtest set AUGEAS_ROOT and AUGEAS_SPECLIB before running augtool.
	augtest now copies test files into a separate subdirectory and points
	augtool to that as its root. It also points augtool to ../spec for the spec
	files.

	Add the spec provider.
	The provider should have been committed in 57:9e439a136787, but
	wasn't. Unfortunately, versions of prov_spec.c that would compile with that
	version have been lost. Therefore, builds between 57:9e439a136787 and this
	revision will fail.

2008-01-17  David Lutterkort  <dlutter@redhat.com>

	Emit a the current tree into a file
	Based on the AST, generate the file that lead to that AST. Changes to the
	config tree are mirrored by corresponding changes in the AST before it is
	written to disk.

	This is a first version that works for some restricted set of grammars, but
	needs a lot more testing.

2008-01-17  David Lutterkort  <dlutter@redhat.com>

	Compute tree handles for each match
	The handle of a match is a set of regular expressions that indicate which
	subtrees are generated by that match. Handles are computed based on the
	actions in the grammar and propagated.

	The handle of an action is a regular expression matching the path generated
	by that action.

2008-01-17  David Lutterkort  <dlutter@redhat.com>

	Build an explicit AST
	Instead of representing the parsed file by a simple list of tokens, build a
	fullblown AST for that file. The AST is actually not very abstract, and is
	directly the parse tree from parsing a file with a certain grammar.

	Split parsing and evaluating into to passes; references to fields
	are too hard to resolve with a partially constructed AST.

	Also adds a routine (ast_dot) to output the AST as a dot file; this eases
	debugging tremendously. augparse will now produce dot files when given '-P
	ast'

	Remove aug_token and any mention of it - that has been replaced by struct
	ast.

2008-01-17  David Lutterkort  <dlutter@redhat.com>

	Represent quantifiers in their own match nodes
	Instead of using a field in struct match for quantifiers '*', '+', '?',
	represent quantified expressions by their own struct match, with a matches
	field pointing to the quantified expression.

	This leads to a cleaner parser and makes constructing an explicit AST
	simpler.

2008-01-17  David Lutterkort  <dlutter@redhat.com>

	Prefer comments over kv

	Print first sets for every match
	Factor printing of a literal_set into print_literal_set and use it for
	printing both first and follow sets.

	Remove debug printing in augparse about loaded maps

2008-01-07  David Lutterkort  <dlutter@redhat.com>

	Free tokens entirely when freeing file

	Set action in all path components

2008-01-03  David Lutterkort  <dlutter@redhat.com>

	Provider that uses specs
	The spec provider is hooked into libaugeas and loaded. It reads spec files
	from /usr/share/augeas/spec and paths mentioned on AUGEAS_SPECLIB. Files
	are parsed according to the specs loaded, and values are written into the
	tree after parsing those files.

	Still missing is saving of the tree back to file, and in particular adding
	new entries in the tree to such files.

2008-01-03  David Lutterkort  <dlutter@redhat.com>

	Move hosts and inittab under /etc

	Always set the passed-in grammars and maps to NULL
	Without that, it's too easy to pass an invalid pointer in from random
	nonsense on the stack. And since we do not append to anything the user may
	pass in, setting to NULL is safe.

	Compile regexps for multiline matching

2008-01-02  David Lutterkort  <dlutter@redhat.com>

	Fix syntax error; we want to test that missing defaults are noticed

	Add filemappings to the language
	The map construct specifies a grammar and a list of glob patterns that this
	grammar should be applied to.

	Print the filename in errors about tokens (abbrevs)

	Add name to grammars

	Add -v switch for printing errors

	Two more test grammars

	Execute actions (not writing to tree yet)
	Actions are executed at the right points during the parse, and a stack of
	paths is maintained. References to values work with the exception of
	references to rules.

2007-12-21  David Lutterkort  <dlutter@redhat.com>

	Check grammar acceptance/rejection

	More precise syntax for where actions attach in a rule
	Previously, it was not clear how far into a rule the current path would be
	modified during parsing. This syntax defines some clear rules for that:
	  - if the rule applies to a parenthesized group (@n), the
	    path is in effect until the end of the group
	  - if the rule applies to a field (@$n), the new path is used during
	    parsing of that field
	  - the assignment part of the action is done after the field/group
	    has been parsed

	Snapshot before changing the syntax of rule actions

2007-12-20  David Lutterkort  <dlutter@redhat.com>

	Remove unused keyword and token 'default'

	Fix field number computation

	Two more rejection tests

	Add a simple test for rejecting bad grammars

	Don't try to dump a NULL grammar

	Introduce SUBMATCH_P macro; cleanup unnecessary switch statements.

	Statically number all matches in a rule. Check for illegal field refs.

	Collect unprocessed tokens in the parser state.

	Print quantifier after rule reference

	Remove unneeded debug print

	Produce tokens during parsing.
	Also, nicer printing of the tokens read.

2007-12-20  David Lutterkort  <dlutter@redhat.com>

	Stricter checking for ambiguous rules
	Check that all items in alternatives have non-overlapping first sets. Two
	sets are overlapping if they both contain an entry pointing to the same
	struct literal or if the contain entries where the literals have the same
	patterns (as strings)

	This still misses the case where literals have equivalent regular
	expresions (e.g. /[ab]/ in one and /[ba]/ in the other) but that seems very
	hard to determine.

2007-12-20  David Lutterkort  <dlutter@redhat.com>

	Print first/follow sets prettier, print control characters escaped with ~
	Literals from first/follow sets are now reduced back to the abbrev they
	belong to if that exists.

	Add options to control grammar printing

	Set match->owner for _all_ matches

	Two more sample/test grammars

	First step towards a specification for config files
	Definition of a simple language for describing the syntax of config files
	and how they are to be mapped to a tree. Lexer/parser for the language and
	data structures to hold the specification. Parses files defined by the
	grammar - processing of the parse is missing though.

2007-12-14  David Lutterkort  <dlutter@redhat.com>

	Factor aug_make_file into internal.c

2007-12-01  David Lutterkort  <dlutter@redhat.com>

	Be more verbose about which tests were run

	Do not include unused util.h

	Mention language bindings

	Added tag release-0.0.1 for changeset 69688020bb1b

	Some news

	Disribute tests and doc/examples.txt

	Some pseudo-code examples

	Explain yourself

2007-11-30  David Lutterkort  <dlutter@redhat.com>

	Add a test that shows how to change the initdefault

	Add help texts and a help command

	Add aug_match as a simple query facility

	Handle /etc/inittab

	Make the ROOT_DIR a constant instead of hardcoding it everywhere

	Test deleting everything from /etc/hosts

	Describe what a test description looks like

	Add a provider for /etc/hosts and reorganize how providers are loaded/saved a little

	aug_rec_save: Check input parameters

2007-11-30  David Lutterkort  <dlutter@redhat.com>

	Major overhaul of record parsing
	Use PCRE to split records with regexps, and abstract a major chunk of
	functionality out so it is independent of parsing pam config files

	Translate changes in the tree into changes in files (change/insert/delete
	of nodes are translated into changing fields and insert/delete of fields
	and records/lines)

2007-11-30  David Lutterkort  <dlutter@redhat.com>

	Root filesys that tests pass against

	Basic tests for record parsing

2007-11-26  David Lutterkort  <dlutter@redhat.com>

	Trim trailing slashes from paths

	Keep /system and /system/config around at all times

	Access aug_insert from the command line; do better error checking for aug_insert

	Autotools support for building

2007-11-26  David Lutterkort  <dlutter@redhat.com>

	Very simplistic key store with a public API in augeas.h
	The implementation is braindead and slow, but good enough to experiment
	with the actual difficulty for augeas: parsing and editing different config
	files

	augtool gives a basic mean to inspect the keystore from the command line

2007-11-26  David Lutterkort  <dlutter@redhat.com>

	Ignore some files
