[augeas-devel] [PATCH] Add naturaldocs to doc/

Raphael Pinson raphink at gmail.com
Wed Sep 10 14:12:11 UTC 2008


# HG changeset patch
# User Raphael Pinson <raphink at gmail.com>
# Date 1221055915 -7200
# Node ID a2e54bd5c9fd56b804dc94f5690aa66e9f4ce046
# Parent  f4e2629f1b5176c22341c0d84fb57cff4f2bf791
Add naturaldocs to doc/
Add Makefile.am to doc/ and doc/naturaldocs/
Adapt Makefile.am and configure.ac to build docs:
  - add --with-naturaldocs=DIR
  - add --with-pdfdocs

diff -r f4e2629f1b51 -r a2e54bd5c9fd Makefile.am
--- a/Makefile.am	Tue Sep 09 11:50:01 2008 +0200
+++ b/Makefile.am	Wed Sep 10 16:11:55 2008 +0200
@@ -1,4 +1,4 @@ SUBDIRS=gnulib/lib src gnulib/tests test
-SUBDIRS=gnulib/lib src gnulib/tests tests man
+SUBDIRS=gnulib/lib src gnulib/tests tests man doc
 
 ACLOCAL_AMFLAGS = -I gnulib/m4
 
diff -r f4e2629f1b51 -r a2e54bd5c9fd configure.ac
--- a/configure.ac	Tue Sep 09 11:50:01 2008 +0200
+++ b/configure.ac	Wed Sep 10 16:11:55 2008 +0200
@@ -3,6 +3,35 @@ AC_CONFIG_AUX_DIR([build/aux])
 AC_CONFIG_AUX_DIR([build/aux])
 AM_CONFIG_HEADER([config.h])
 AM_INIT_AUTOMAKE([-Wno-portability])
+
+
+dnl Check for NaturalDocs
+AC_ARG_WITH([naturaldocs],
+  [AS_HELP_STRING([--with-naturaldocs=DIR],
+    [path to NaturalDocs install dir to generate documentation])], 
+  [AC_CHECK_FILE($withval/NaturalDocs,
+      NATURALDOCSDIR=$withval
+      HAS_NATURALDOCS=naturaldocs,
+      [ AC_MSG_ERROR(You asked to use NaturalDocs but it could not be found)])
+  ])
+AC_SUBST(HAS_NATURALDOCS)
+AC_SUBST(NATURALDOCSDIR)
+
+
+dnl Check for pdflatex
+PDFDOCS=""
+AC_ARG_WITH([pdfdocs],
+  [AS_HELP_STRING([--with-pdfdocs],
+    [whether to use pdflatex to build PDF docs])],
+  [AC_PATH_PROG(PDFLATEX, pdflatex, no)
+   if test "x$PDFLATEX" = "xno"; then
+   	AC_MSG_ERROR(You asked to use PDFLatex but it could not be found)
+   else
+   	PDFDOCS="pdfdocs"
+   fi
+  ])
+AC_SUBST(PDFLATEX)
+AC_SUBST(PDFDOCS)
 
 dnl Version info in libtool's notation
 AC_SUBST([LIBAUGEAS_VERSION_INFO], [1:0:1])
@@ -42,4 +71,6 @@ AC_OUTPUT(Makefile \
           src/Makefile \
           man/Makefile \
           tests/Makefile \
+	  doc/Makefile \
+	  doc/naturaldocs/Makefile \
           augeas.pc augeas.spec)
diff -r f4e2629f1b51 -r a2e54bd5c9fd doc/Makefile.am
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/doc/Makefile.am	Wed Sep 10 16:11:55 2008 +0200
@@ -0,0 +1,15 @@
+
+SUBDIRS = $(HAS_NATURALDOCS)
+
+# PDF targets
+PDFTARGETS=lenses.pdf unambig.pdf
+
+all: $(PDFDOCS)
+
+pdfdocs: $(PDFTARGETS)
+%.pdf: %.tex
+	$(PDFLATEX) $<
+
+clean-local:
+	rm -f *.pdf *.aux *.log
+
diff -r f4e2629f1b51 -r a2e54bd5c9fd doc/naturaldocs/Makefile
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/doc/naturaldocs/Makefile	Wed Sep 10 16:11:55 2008 +0200
@@ -0,0 +1,546 @@
+# Makefile.in generated by automake 1.9.6 from Makefile.am.
+# doc/naturaldocs/Makefile.  Generated from Makefile.in by configure.
+
+# Copyright (C) 1994, 1995, 1996, 1997, 1998, 1999, 2000, 2001, 2002,
+# 2003, 2004, 2005  Free Software Foundation, Inc.
+# This Makefile.in is free software; the Free Software Foundation
+# gives unlimited permission to copy and/or distribute it,
+# with or without modifications, as long as this notice is preserved.
+
+# This program is distributed in the hope that it will be useful,
+# but WITHOUT ANY WARRANTY, to the extent permitted by law; without
+# even the implied warranty of MERCHANTABILITY or FITNESS FOR A
+# PARTICULAR PURPOSE.
+
+
+srcdir = .
+top_srcdir = ../..
+
+pkgdatadir = $(datadir)/augeas
+pkglibdir = $(libdir)/augeas
+pkgincludedir = $(includedir)/augeas
+top_builddir = ../..
+am__cd = CDPATH="$${ZSH_VERSION+.}$(PATH_SEPARATOR)" && cd
+INSTALL = /usr/bin/install -c
+install_sh_DATA = $(install_sh) -c -m 644
+install_sh_PROGRAM = $(install_sh) -c
+install_sh_SCRIPT = $(install_sh) -c
+INSTALL_HEADER = $(INSTALL_DATA)
+transform = $(program_transform_name)
+NORMAL_INSTALL = :
+PRE_INSTALL = :
+POST_INSTALL = :
+NORMAL_UNINSTALL = :
+PRE_UNINSTALL = :
+POST_UNINSTALL = :
+build_triplet = x86_64-unknown-linux-gnu
+host_triplet = x86_64-unknown-linux-gnu
+subdir = doc/naturaldocs
+DIST_COMMON = $(srcdir)/Makefile.am $(srcdir)/Makefile.in
+ACLOCAL_M4 = $(top_srcdir)/aclocal.m4
+am__aclocal_m4_deps = $(top_srcdir)/gnulib/m4/alloca.m4 \
+	$(top_srcdir)/gnulib/m4/argz.m4 \
+	$(top_srcdir)/gnulib/m4/canonicalize-lgpl.m4 \
+	$(top_srcdir)/gnulib/m4/codeset.m4 \
+	$(top_srcdir)/gnulib/m4/eealloc.m4 \
+	$(top_srcdir)/gnulib/m4/extensions.m4 \
+	$(top_srcdir)/gnulib/m4/glibc21.m4 \
+	$(top_srcdir)/gnulib/m4/gnulib-common.m4 \
+	$(top_srcdir)/gnulib/m4/gnulib-comp.m4 \
+	$(top_srcdir)/gnulib/m4/include_next.m4 \
+	$(top_srcdir)/gnulib/m4/localcharset.m4 \
+	$(top_srcdir)/gnulib/m4/longlong.m4 \
+	$(top_srcdir)/gnulib/m4/malloc.m4 \
+	$(top_srcdir)/gnulib/m4/malloca.m4 \
+	$(top_srcdir)/gnulib/m4/mbstate_t.m4 \
+	$(top_srcdir)/gnulib/m4/mempcpy.m4 \
+	$(top_srcdir)/gnulib/m4/onceonly.m4 \
+	$(top_srcdir)/gnulib/m4/pathmax.m4 \
+	$(top_srcdir)/gnulib/m4/readlink.m4 \
+	$(top_srcdir)/gnulib/m4/regex.m4 \
+	$(top_srcdir)/gnulib/m4/ssize_t.m4 \
+	$(top_srcdir)/gnulib/m4/stdbool.m4 \
+	$(top_srcdir)/gnulib/m4/stdint.m4 \
+	$(top_srcdir)/gnulib/m4/stdlib_h.m4 \
+	$(top_srcdir)/gnulib/m4/stpcpy.m4 \
+	$(top_srcdir)/gnulib/m4/string_h.m4 \
+	$(top_srcdir)/gnulib/m4/strndup.m4 \
+	$(top_srcdir)/gnulib/m4/strnlen.m4 \
+	$(top_srcdir)/gnulib/m4/unistd_h.m4 \
+	$(top_srcdir)/gnulib/m4/wchar.m4 \
+	$(top_srcdir)/gnulib/m4/wchar_t.m4 \
+	$(top_srcdir)/gnulib/m4/wctype.m4 \
+	$(top_srcdir)/gnulib/m4/wint_t.m4 $(top_srcdir)/acinclude.m4 \
+	$(top_srcdir)/configure.ac
+am__configure_deps = $(am__aclocal_m4_deps) $(CONFIGURE_DEPENDENCIES) \
+	$(ACLOCAL_M4)
+mkinstalldirs = $(install_sh) -d
+CONFIG_HEADER = $(top_builddir)/config.h
+CONFIG_CLEAN_FILES =
+SOURCES =
+DIST_SOURCES =
+DISTFILES = $(DIST_COMMON) $(DIST_SOURCES) $(TEXINFOS) $(EXTRA_DIST)
+ACLOCAL = ${SHELL} /home/rpinson/augeas/augeas.test/build/aux/missing --run aclocal-1.9
+ALLOCA = 
+ALLOCA_H = alloca.h
+AMDEP_FALSE = #
+AMDEP_TRUE = 
+AMTAR = ${SHELL} /home/rpinson/augeas/augeas.test/build/aux/missing --run tar
+AR = ar
+ARGZ_H = 
+AUGEAS_CFLAGS = -std=gnu99
+AUTOCONF = ${SHELL} /home/rpinson/augeas/augeas.test/build/aux/missing --run autoconf
+AUTOHEADER = ${SHELL} /home/rpinson/augeas/augeas.test/build/aux/missing --run autoheader
+AUTOMAKE = ${SHELL} /home/rpinson/augeas/augeas.test/build/aux/missing --run automake-1.9
+AWK = gawk
+BITSIZEOF_PTRDIFF_T = 64
+BITSIZEOF_SIG_ATOMIC_T = 32
+BITSIZEOF_SIZE_T = 64
+BITSIZEOF_WCHAR_T = 32
+BITSIZEOF_WINT_T = 32
+CC = gcc
+CCDEPMODE = depmode=gcc3
+CFLAGS = -g -O2
+CPP = gcc -E
+CPPFLAGS = 
+CXX = g++
+CXXCPP = g++ -E
+CXXDEPMODE = depmode=gcc3
+CXXFLAGS = -g -O2
+CYGPATH_W = echo
+DEFS = -DHAVE_CONFIG_H
+DEPDIR = .deps
+ECHO = echo
+ECHO_C = 
+ECHO_N = -n
+ECHO_T = 
+EGREP = /bin/grep -E
+EXEEXT = 
+F77 = 
+FFLAGS = 
+GLIBC21 = yes
+GL_COND_LIBTOOL_FALSE = #
+GL_COND_LIBTOOL_TRUE = 
+GNULIB_CALLOC_POSIX = 0
+GNULIB_CHOWN = 0
+GNULIB_DUP2 = 0
+GNULIB_ENVIRON = 0
+GNULIB_FCHDIR = 0
+GNULIB_FTRUNCATE = 0
+GNULIB_GETCWD = 0
+GNULIB_GETLOGIN_R = 0
+GNULIB_GETPAGESIZE = 0
+GNULIB_GETSUBOPT = 0
+GNULIB_LCHOWN = 0
+GNULIB_LSEEK = 0
+GNULIB_MALLOC_POSIX = 1
+GNULIB_MBSCASECMP = 0
+GNULIB_MBSCASESTR = 0
+GNULIB_MBSCHR = 0
+GNULIB_MBSCSPN = 0
+GNULIB_MBSLEN = 0
+GNULIB_MBSNCASECMP = 0
+GNULIB_MBSNLEN = 0
+GNULIB_MBSPBRK = 0
+GNULIB_MBSPCASECMP = 0
+GNULIB_MBSRCHR = 0
+GNULIB_MBSSEP = 0
+GNULIB_MBSSPN = 0
+GNULIB_MBSSTR = 0
+GNULIB_MBSTOK_R = 0
+GNULIB_MEMMEM = 0
+GNULIB_MEMPCPY = 1
+GNULIB_MEMRCHR = 0
+GNULIB_MKDTEMP = 0
+GNULIB_MKSTEMP = 0
+GNULIB_PUTENV = 0
+GNULIB_RAWMEMCHR = 0
+GNULIB_READLINK = 1
+GNULIB_REALLOC_POSIX = 0
+GNULIB_RPMATCH = 0
+GNULIB_SETENV = 0
+GNULIB_SLEEP = 0
+GNULIB_STPCPY = 1
+GNULIB_STPNCPY = 0
+GNULIB_STRCASESTR = 0
+GNULIB_STRCHRNUL = 0
+GNULIB_STRDUP = 0
+GNULIB_STRERROR = 0
+GNULIB_STRNDUP = 1
+GNULIB_STRNLEN = 1
+GNULIB_STRPBRK = 0
+GNULIB_STRSEP = 0
+GNULIB_STRSIGNAL = 0
+GNULIB_STRSTR = 0
+GNULIB_STRTOD = 0
+GNULIB_STRTOK_R = 0
+GNULIB_STRVERSCMP = 0
+GNULIB_UNSETENV = 0
+GNULIB_WCWIDTH = 0
+GREP = /bin/grep
+HAS_NATURALDOCS = naturaldocs
+HAVE_CALLOC_POSIX = 1
+HAVE_DECL_ENVIRON = 1
+HAVE_DECL_GETLOGIN_R = 1
+HAVE_DECL_MEMMEM = 1
+HAVE_DECL_MEMRCHR = 1
+HAVE_DECL_STRDUP = 1
+HAVE_DECL_STRERROR = 1
+HAVE_DECL_STRNDUP = 1
+HAVE_DECL_STRNLEN = 1
+HAVE_DECL_STRSIGNAL = 1
+HAVE_DECL_STRTOK_R = 1
+HAVE_DECL_WCWIDTH = 1
+HAVE_DUP2 = 1
+HAVE_FTRUNCATE = 1
+HAVE_GETPAGESIZE = 1
+HAVE_GETSUBOPT = 1
+HAVE_INTTYPES_H = 1
+HAVE_ISWCNTRL = 1
+HAVE_LONG_LONG_INT = 1
+HAVE_MALLOC_POSIX = 1
+HAVE_MEMPCPY = 1
+HAVE_MKDTEMP = 1
+HAVE_OS_H = 0
+HAVE_RAWMEMCHR = 1
+HAVE_READLINK = 1
+HAVE_REALLOC_POSIX = 1
+HAVE_RPMATCH = 1
+HAVE_SETENV = 1
+HAVE_SIGNED_SIG_ATOMIC_T = 1
+HAVE_SIGNED_WCHAR_T = 1
+HAVE_SIGNED_WINT_T = 0
+HAVE_SLEEP = 1
+HAVE_STDINT_H = 1
+HAVE_STPCPY = 1
+HAVE_STPNCPY = 1
+HAVE_STRCASESTR = 1
+HAVE_STRCHRNUL = 1
+HAVE_STRNDUP = 1
+HAVE_STRPBRK = 1
+HAVE_STRSEP = 1
+HAVE_STRTOD = 1
+HAVE_STRVERSCMP = 1
+HAVE_SYS_BITYPES_H = 1
+HAVE_SYS_INTTYPES_H = 0
+HAVE_SYS_PARAM_H = 0
+HAVE_SYS_TYPES_H = 1
+HAVE_UNISTD_H = 1
+HAVE_UNSETENV = 1
+HAVE_UNSIGNED_LONG_LONG_INT = 1
+HAVE_WCHAR_H = 1
+HAVE_WCTYPE_H = 1
+HAVE_WINT_T = 1
+HAVE__BOOL = 1
+INCLUDE_NEXT = include_next
+INSTALL_DATA = ${INSTALL} -m 644
+INSTALL_PROGRAM = ${INSTALL}
+INSTALL_SCRIPT = ${INSTALL}
+INSTALL_STRIP_PROGRAM = ${SHELL} $(install_sh) -c -s
+LDFLAGS = 
+LEX = flex
+LEXLIB = -lfl
+LEX_OUTPUT_ROOT = lex.yy
+LIBAUGEAS_VERSION_INFO = 1:0:1
+LIBFA_VERSION_INFO = 0:0:0
+LIBINTL = 
+LIBOBJS = 
+LIBS = 
+LIBTESTS_LIBDEPS = 
+LIBTOOL = $(SHELL) $(top_builddir)/libtool
+LN_S = ln -s
+LOCALCHARSET_TESTS_ENVIRONMENT = CHARSETALIASDIR="$(top_builddir)/gnulib/lib"
+LTALLOCA = 
+LTLIBINTL = 
+LTLIBOBJS = 
+MAKEINFO = ${SHELL} /home/rpinson/augeas/augeas.test/build/aux/missing --run makeinfo
+NATURALDOCSDIR = /home/rpinson/nddir/
+NEXT_STDINT_H = <stdint.h>
+NEXT_STDLIB_H = <stdlib.h>
+NEXT_STRING_H = <string.h>
+NEXT_UNISTD_H = <unistd.h>
+NEXT_WCHAR_H = <wchar.h>
+NEXT_WCTYPE_H = <wctype.h>
+OBJEXT = o
+PACKAGE = augeas
+PACKAGE_BUGREPORT = 
+PACKAGE_NAME = augeas
+PACKAGE_STRING = augeas 0.3.1
+PACKAGE_TARNAME = augeas
+PACKAGE_VERSION = 0.3.1
+PATH_SEPARATOR = :
+PDFDOCS = pdfdocs
+PDFLATEX = /usr/bin/pdflatex
+PRAGMA_SYSTEM_HEADER = #pragma GCC system_header
+PTRDIFF_T_SUFFIX = l
+RANLIB = ranlib
+READLINE_LIBS = -lreadline
+REPLACE_CHOWN = 0
+REPLACE_FCHDIR = 0
+REPLACE_GETCWD = 0
+REPLACE_GETPAGESIZE = 0
+REPLACE_ISWCNTRL = 0
+REPLACE_LCHOWN = 0
+REPLACE_LSEEK = 0
+REPLACE_MEMMEM = 0
+REPLACE_MKSTEMP = 0
+REPLACE_PUTENV = 0
+REPLACE_STRCASESTR = 0
+REPLACE_STRERROR = 0
+REPLACE_STRSIGNAL = 0
+REPLACE_STRSTR = 0
+REPLACE_STRTOD = 0
+REPLACE_WCWIDTH = 0
+SET_MAKE = 
+SHELL = /bin/sh
+SIG_ATOMIC_T_SUFFIX = 
+SIZE_T_SUFFIX = ul
+STDBOOL_H = 
+STDINT_H = stdint.h
+STRIP = strip
+VERSION = 0.3.1
+VOID_UNSETENV = 0
+WARN_CFLAGS =  -Wall -Wformat -Wformat-security -Wmissing-prototypes -Wnested-externs -Wpointer-arith -Wextra -Wshadow -Wcast-align -Wwrite-strings -Waggregate-return -Wstrict-prototypes -Winline -Wredundant-decls -Wno-sign-compare -Wp,-D_FORTIFY_SOURCE=2 -fexceptions -fasynchronous-unwind-tables -Werror 
+WCHAR_H = 
+WCHAR_T_SUFFIX = 
+WCTYPE_H = 
+WINT_T_SUFFIX = u
+YACC = bison -y
+YFLAGS = 
+ac_ct_CC = gcc
+ac_ct_CXX = g++
+ac_ct_F77 = 
+am__fastdepCC_FALSE = #
+am__fastdepCC_TRUE = 
+am__fastdepCXX_FALSE = #
+am__fastdepCXX_TRUE = 
+am__include = include
+am__leading_dot = .
+am__quote = 
+am__tar = ${AMTAR} chof - "$$tardir"
+am__untar = ${AMTAR} xf -
+bindir = ${exec_prefix}/bin
+build = x86_64-unknown-linux-gnu
+build_alias = 
+build_cpu = x86_64
+build_os = linux-gnu
+build_vendor = unknown
+datadir = ${datarootdir}
+datarootdir = ${prefix}/share
+docdir = ${datarootdir}/doc/${PACKAGE_TARNAME}
+dvidir = ${docdir}
+exec_prefix = ${prefix}
+gl_LIBOBJS =  regex.o
+gl_LTLIBOBJS =  regex.lo
+gltests_LIBOBJS = 
+gltests_LTLIBOBJS = 
+host = x86_64-unknown-linux-gnu
+host_alias = 
+host_cpu = x86_64
+host_os = linux-gnu
+host_vendor = unknown
+htmldir = ${docdir}
+includedir = ${prefix}/include
+infodir = ${datarootdir}/info
+install_sh = /home/rpinson/augeas/augeas.test/build/aux/install-sh
+libdir = ${exec_prefix}/lib
+libexecdir = ${exec_prefix}/libexec
+localedir = ${datarootdir}/locale
+localstatedir = ${prefix}/var
+mandir = ${datarootdir}/man
+mkdir_p = mkdir -p --
+oldincludedir = /usr/include
+pdfdir = ${docdir}
+prefix = /usr/local
+program_transform_name = s,x,x,
+psdir = ${docdir}
+sbindir = ${exec_prefix}/sbin
+sharedstatedir = ${prefix}/com
+sysconfdir = ${prefix}/etc
+target_alias = 
+
+# Default install dir for NaturalDocs
+NDPROJECT = conf
+NDSRC = $(top_builddir)/src
+NDLENSES = $(top_builddir)/lenses
+NDFORMAT = HTML
+NDOUTPUT = output
+NDSTYLE = Augeas
+all: all-am
+
+.SUFFIXES:
+$(srcdir)/Makefile.in:  $(srcdir)/Makefile.am  $(am__configure_deps)
+	@for dep in $?; do \
+	  case '$(am__configure_deps)' in \
+	    *$$dep*) \
+	      cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh \
+		&& exit 0; \
+	      exit 1;; \
+	  esac; \
+	done; \
+	echo ' cd $(top_srcdir) && $(AUTOMAKE) --gnu  doc/naturaldocs/Makefile'; \
+	cd $(top_srcdir) && \
+	  $(AUTOMAKE) --gnu  doc/naturaldocs/Makefile
+.PRECIOUS: Makefile
+Makefile: $(srcdir)/Makefile.in $(top_builddir)/config.status
+	@case '$?' in \
+	  *config.status*) \
+	    cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh;; \
+	  *) \
+	    echo ' cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@ $(am__depfiles_maybe)'; \
+	    cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@ $(am__depfiles_maybe);; \
+	esac;
+
+$(top_builddir)/config.status: $(top_srcdir)/configure $(CONFIG_STATUS_DEPENDENCIES)
+	cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh
+
+$(top_srcdir)/configure:  $(am__configure_deps)
+	cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh
+$(ACLOCAL_M4):  $(am__aclocal_m4_deps)
+	cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh
+
+mostlyclean-libtool:
+	-rm -f *.lo
+
+clean-libtool:
+	-rm -rf .libs _libs
+
+distclean-libtool:
+	-rm -f libtool
+uninstall-info-am:
+tags: TAGS
+TAGS:
+
+ctags: CTAGS
+CTAGS:
+
+
+distdir: $(DISTFILES)
+	@srcdirstrip=`echo "$(srcdir)" | sed 's|.|.|g'`; \
+	topsrcdirstrip=`echo "$(top_srcdir)" | sed 's|.|.|g'`; \
+	list='$(DISTFILES)'; for file in $$list; do \
+	  case $$file in \
+	    $(srcdir)/*) file=`echo "$$file" | sed "s|^$$srcdirstrip/||"`;; \
+	    $(top_srcdir)/*) file=`echo "$$file" | sed "s|^$$topsrcdirstrip/|$(top_builddir)/|"`;; \
+	  esac; \
+	  if test -f $$file || test -d $$file; then d=.; else d=$(srcdir); fi; \
+	  dir=`echo "$$file" | sed -e 's,/[^/]*$$,,'`; \
+	  if test "$$dir" != "$$file" && test "$$dir" != "."; then \
+	    dir="/$$dir"; \
+	    $(mkdir_p) "$(distdir)$$dir"; \
+	  else \
+	    dir=''; \
+	  fi; \
+	  if test -d $$d/$$file; then \
+	    if test -d $(srcdir)/$$file && test $$d != $(srcdir); then \
+	      cp -pR $(srcdir)/$$file $(distdir)$$dir || exit 1; \
+	    fi; \
+	    cp -pR $$d/$$file $(distdir)$$dir || exit 1; \
+	  else \
+	    test -f $(distdir)/$$file \
+	    || cp -p $$d/$$file $(distdir)/$$file \
+	    || exit 1; \
+	  fi; \
+	done
+check-am: all-am
+check: check-am
+all-am: Makefile
+installdirs:
+install: install-am
+install-exec: install-exec-am
+install-data: install-data-am
+uninstall: uninstall-am
+
+install-am: all-am
+	@$(MAKE) $(AM_MAKEFLAGS) install-exec-am install-data-am
+
+installcheck: installcheck-am
+install-strip:
+	$(MAKE) $(AM_MAKEFLAGS) INSTALL_PROGRAM="$(INSTALL_STRIP_PROGRAM)" \
+	  install_sh_PROGRAM="$(INSTALL_STRIP_PROGRAM)" INSTALL_STRIP_FLAG=-s \
+	  `test -z '$(STRIP)' || \
+	    echo "INSTALL_PROGRAM_ENV=STRIPPROG='$(STRIP)'"` install
+mostlyclean-generic:
+
+clean-generic:
+
+distclean-generic:
+	-test -z "$(CONFIG_CLEAN_FILES)" || rm -f $(CONFIG_CLEAN_FILES)
+
+maintainer-clean-generic:
+	@echo "This command is intended for maintainers to use"
+	@echo "it deletes files that may require special tools to rebuild."
+clean: clean-am
+
+clean-am: clean-generic clean-libtool clean-local mostlyclean-am
+
+distclean: distclean-am
+	-rm -f Makefile
+distclean-am: clean-am distclean-generic distclean-libtool
+
+dvi: dvi-am
+
+dvi-am:
+
+html: html-am
+
+info: info-am
+
+info-am:
+
+install-data-am:
+
+install-exec-am:
+
+install-info: install-info-am
+
+install-man:
+
+installcheck-am:
+
+maintainer-clean: maintainer-clean-am
+	-rm -f Makefile
+maintainer-clean-am: distclean-am maintainer-clean-generic
+
+mostlyclean: mostlyclean-am
+
+mostlyclean-am: mostlyclean-generic mostlyclean-libtool
+
+pdf: pdf-am
+
+pdf-am:
+
+ps: ps-am
+
+ps-am:
+
+uninstall-am: uninstall-info-am
+
+.PHONY: all all-am check check-am clean clean-generic clean-libtool \
+	clean-local distclean distclean-generic distclean-libtool \
+	distdir dvi dvi-am html html-am info info-am install \
+	install-am install-data install-data-am install-exec \
+	install-exec-am install-info install-info-am install-man \
+	install-strip installcheck installcheck-am installdirs \
+	maintainer-clean maintainer-clean-generic mostlyclean \
+	mostlyclean-generic mostlyclean-libtool pdf pdf-am ps ps-am \
+	uninstall uninstall-am uninstall-info-am
+
+
+all: NaturalDocs
+
+NaturalDocs:
+	mkdir -p $(NDOUTPUT) && \
+	NDDIR=$(NATURALDOCSDIR) \
+	   ./naturaldocs \
+	      -p $(NDPROJECT) \
+	      -i $(NDSRC)   \
+	      -i $(NDLENSES) \
+	      -o $(NDFORMAT) $(NDOUTPUT) \
+	      -s $(NDSTYLE)
+
+clean-local:
+	rm -rf output conf/Data
+# Tell versions [3.59,3.63) of GNU make to not export all variables.
+# Otherwise a system limit (for SysV at least) may be exceeded.
+.NOEXPORT:
diff -r f4e2629f1b51 -r a2e54bd5c9fd doc/naturaldocs/Makefile.am
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/doc/naturaldocs/Makefile.am	Wed Sep 10 16:11:55 2008 +0200
@@ -0,0 +1,24 @@
+
+# Default install dir for NaturalDocs
+NDPROJECT=conf
+NDSRC=$(top_builddir)/src
+NDLENSES=$(top_builddir)/lenses
+NDFORMAT=HTML
+NDOUTPUT=output
+NDSTYLE=Augeas
+
+all: NaturalDocs
+
+NaturalDocs:
+	mkdir -p $(NDOUTPUT) && \
+	NDDIR=$(NATURALDOCSDIR) \
+	   ./naturaldocs \
+	      -p $(NDPROJECT) \
+	      -i $(NDSRC)   \
+	      -i $(NDLENSES) \
+	      -o $(NDFORMAT) $(NDOUTPUT) \
+	      -s $(NDSTYLE)
+
+clean-local:
+	rm -rf output conf/Data
+
diff -r f4e2629f1b51 -r a2e54bd5c9fd doc/naturaldocs/Modules/NaturalDocs/Languages/Augeas.pm
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/doc/naturaldocs/Modules/NaturalDocs/Languages/Augeas.pm	Wed Sep 10 16:11:55 2008 +0200
@@ -0,0 +1,82 @@
+###############################################################################
+#
+#   Class: NaturalDocs::Languages::Augeas
+#
+###############################################################################
+#
+#   A subclass to handle the language variations of Tcl.
+#
+###############################################################################
+
+# This file is part of Natural Docs, which is Copyright (C) 2003-2008 Greg Valure
+# Natural Docs is licensed under the GPL
+
+use strict;
+use integer;
+
+package NaturalDocs::Languages::Augeas;
+
+use base 'NaturalDocs::Languages::Simple';
+
+
+my $pastFirstLet;
+
+
+sub OnCode #(...)
+   {
+   my ($self, @params) = @_;
+
+   $pastFirstLet = 0;
+
+   return $self->SUPER::OnCode(@params);
+   };
+
+
+#
+#   Function: OnPrototypeEnd
+#
+#   Tcl's function syntax is shown below.
+#
+#   > proc [name] { [params] } { [code] }
+#
+#   The opening brace is one of the prototype enders.  We need to allow the first opening brace because it contains the
+#   parameters.
+#
+#   Also, the parameters may have braces within them.  I've seen one that used { seconds 20 } as a parameter.
+#
+#   Parameters:
+#
+#       type - The <TopicType> of the prototype.
+#       prototypeRef - A reference to the prototype so far, minus the ender in dispute.
+#       ender - The ender symbol.
+#
+#   Returns:
+#
+#       ENDER_ACCEPT - The ender is accepted and the prototype is finished.
+#       ENDER_IGNORE - The ender is rejected and parsing should continue.  Note that the prototype will be rejected as a whole
+#                                  if all enders are ignored before reaching the end of the code.
+#       ENDER_ACCEPT_AND_CONTINUE - The ender is accepted so the prototype may stand as is.  However, the prototype might
+#                                                          also continue on so continue parsing.  If there is no accepted ender between here and
+#                                                          the end of the code this version will be accepted instead.
+#       ENDER_REVERT_TO_ACCEPTED - The expedition from ENDER_ACCEPT_AND_CONTINUE failed.  Use the last accepted
+#                                                        version and end parsing.
+#
+sub OnPrototypeEnd #(type, prototypeRef, ender)
+   {
+   my ($self, $type, $prototypeRef, $ender) = @_;
+
+   if ($ender eq "\n")
+       {  return ::ENDER_ACCEPT_AND_CONTINUE();  }
+       elsif ( ($type eq "augeasvariable" || $type eq "augeaslens") &&
+                        $ender eq "let" &&
+                        (!$pastFirstLet || $$prototypeRef =~ /\=[ \t\r\n]*$/) )
+               {
+       $pastFirstLet = 1;
+       return ::ENDER_IGNORE();
+               }
+   else
+       {  return ::ENDER_ACCEPT();  };
+   };
+
+
+1;
diff -r f4e2629f1b51 -r a2e54bd5c9fd doc/naturaldocs/conf/Augeas.css
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/doc/naturaldocs/conf/Augeas.css	Wed Sep 10 16:11:55 2008 +0200
@@ -0,0 +1,770 @@
+/*
+   IMPORTANT: If you're editing this file in the output directory of one of
+   your projects, your changes will be overwritten the next time you run
+   Natural Docs.  Instead, copy this file to your project directory, make your
+   changes, and you can use it with -s.  Even better would be to make a CSS
+   file in your project directory with only your changes, which you can then
+   use with -s [original style] [your changes].
+
+   On the other hand, if you're editing this file in the Natural Docs styles
+   directory, the changes will automatically be applied to all your projects
+   that use this style the next time Natural Docs is run on them.
+
+   This file is part of Natural Docs, which is Copyright (C) 2003-2008 Greg Valure
+   Natural Docs is licensed under the GPL
+*/
+
+body {
+    background: white;
+    background: url('http://augeas.net/styles/augeas-logo.png');
+    background-repeat: no-repeat;
+    background-position: 3px 3px;
+    color: black;
+    font: 10pt Verdana, Arial, sans-serif;
+    margin: 0; padding: 0;
+    }
+
+.ContentPage,
+.IndexPage,
+.FramedMenuPage {
+    background-color: white;
+    }
+.FramedContentPage,
+.FramedIndexPage,
+.FramedSearchResultsPage,
+.PopupSearchResultsPage {
+    background-color: #white;
+    }
+
+
+a:link,
+a:visited { color: #900000; text-decoration: none }
+a:hover { color: #900000; text-decoration: underline }
+a:active { color: #FF0000; text-decoration: underline }
+
+td {
+    vertical-align: top }
+
+img { border: 0;  }
+
+
+/*
+    Comment out this line to use web-style paragraphs (blank line between
+    paragraphs, no indent) instead of print-style paragraphs (no blank line,
+    indented.)
+*/
+p {
+    text-indent: 5ex; margin: 0 }
+
+
+/*  Opera doesn't break with just wbr, but will if you add this.  */
+.Opera wbr:after {
+	content: "\00200B";
+	}
+
+
+/*  Blockquotes are used as containers for things that may need to scroll.  */
+blockquote {
+    padding: 0;
+    margin: 0;
+    overflow: auto;
+    }
+
+
+.Firefox1 blockquote {
+    padding-bottom: .5em;
+    }
+
+/*  Turn off scrolling when printing.  */
+ at media print {
+    blockquote {
+        overflow: visible;
+        }
+    .IE blockquote {
+        width: auto;
+        }
+    }
+
+
+
+#Menu {
+    float: left;
+    padding-top: 100px;
+    left: 0px;
+    margin-bottom: 1em;
+    margin-left:10px;
+    }
+#Menu a {
+    color:black;
+    list-style: none;
+    padding: 0px;
+    font-weight: bold;
+    }
+.ContentPage #Menu,
+.IndexPage #Menu {
+    position: absolute;
+    top: 0;
+    left: 0;
+    width: 31ex;
+    overflow: hidden;
+    }
+.ContentPage .Firefox #Menu,
+.IndexPage .Firefox #Menu {
+    width: 27ex;
+    }
+
+
+    .MTitle {
+        font-size: 16pt; font-weight: bold; font-variant: small-caps;
+        text-align: center;
+        padding: 5px 10px 15px 10px;
+        border-bottom: 1px dotted #000000;
+        color: #8d4a2c;
+        margin-bottom: 15px }
+
+    .MSubTitle {
+        font-size: 9pt; font-weight: normal; font-variant: normal;
+        margin-top: 1ex; margin-bottom: 5px }
+
+
+    .MEntry { }
+
+    .MEntry a:link,
+    .MEntry a:hover,
+    .MEntry a:visited { margin-right: 0 }
+    .MEntry a:active { margin-right: 0 }
+
+
+    .MGroup {
+        font-variant: small-caps; font-weight: bold;
+        margin: 1em 0 1em 10px;
+        }
+
+    .MGroupContent {
+        font-variant: normal; font-weight: normal }
+
+    .MGroup a:link,
+    .MGroup a:hover,
+    .MGroup a:visited { margin-right: 10px }
+    .MGroup a:active { margin-right: 10px }
+
+
+    .MFile,
+    .MText,
+    .MLink,
+    .MIndex {
+        padding: 5px 10px 7px 20px;
+        margin: .1em 0 .1em 0;
+	background: #c9e0a7;
+        }
+
+    .MText {
+        font-size: 8pt; font-style: italic }
+
+    .MLink {
+        font-style: italic }
+
+    #MSelected {
+        color: #000000; background-color: #FFFFFF;
+        /*  Replace padding with border.  */
+	background: #65a703;
+        font-weight: bold;
+        }
+
+
+    #MSearchPanel {
+        padding: 0px 6px;
+        margin: .25em 0;
+        }
+
+
+    #MSearchField {
+        font: italic 9pt Verdana, sans-serif;
+        color: #606060;
+        background-color: #E8E8E8;
+        border: none;
+        padding: 2px 4px;
+        width: 100%;
+        }
+    /* Only Opera gets it right. */
+    .Firefox #MSearchField,
+    .IE #MSearchField,
+    .Safari #MSearchField {
+        width: 94%;
+        }
+    .Opera9 #MSearchField,
+    .Konqueror #MSearchField {
+        width: 97%;
+        }
+    .FramedMenuPage .Firefox #MSearchField,
+    .FramedMenuPage .Safari #MSearchField,
+    .FramedMenuPage .Konqueror #MSearchField {
+        width: 98%;
+        }
+
+    /* Firefox doesn't do this right in frames without #MSearchPanel added on.
+        It's presence doesn't hurt anything other browsers. */
+    #MSearchPanel.MSearchPanelInactive:hover #MSearchField {
+        background-color: #FFFFFF;
+        border: 1px solid #C0C0C0;
+        padding: 1px 3px;
+        }
+    .MSearchPanelActive #MSearchField {
+        background-color: #FFFFFF;
+        border: 1px solid #C0C0C0;
+        font-style: normal;
+        padding: 1px 3px;
+        }
+
+    #MSearchType {
+        visibility: hidden;
+        font: 8pt Verdana, sans-serif;
+        width: 98%;
+        padding: 0;
+        border: 1px solid #C0C0C0;
+        }
+    .MSearchPanelActive #MSearchType,
+    /*  As mentioned above, Firefox doesn't do this right in frames without #MSearchPanel added on. */
+    #MSearchPanel.MSearchPanelInactive:hover #MSearchType,
+    #MSearchType:focus {
+        visibility: visible;
+        color: #606060;
+        }
+    #MSearchType option#MSearchEverything {
+        font-weight: bold;
+        }
+
+    .Opera8 .MSearchPanelInactive:hover,
+    .Opera8 .MSearchPanelActive {
+        margin-left: -1px;
+        }
+
+
+    iframe#MSearchResults {
+        width: 60ex;
+        height: 15em;
+        }
+    #MSearchResultsWindow {
+        display: none;
+        position: absolute;
+        left: 0; top: 0;
+        border: 1px solid #000000;
+        background-color: #E8E8E8;
+        }
+    #MSearchResultsWindowClose {
+        font-weight: bold;
+        font-size: 8pt;
+        display: block;
+        padding: 2px 5px;
+        }
+    #MSearchResultsWindowClose:link,
+    #MSearchResultsWindowClose:visited {
+        color: #000000;
+        text-decoration: none;
+        }
+    #MSearchResultsWindowClose:active,
+    #MSearchResultsWindowClose:hover {
+        color: #800000;
+        text-decoration: none;
+        background-color: #F4F4F4;
+        }
+
+
+
+
+#Content {
+    margin-top: 100px;
+    padding-bottom: 15px;
+    }
+
+.ContentPage #Content {
+    background-color: #FFFFFF;
+    font-size: 9pt;  /* To make 31ex match the menu's 31ex. */
+    margin-left: 34ex;
+    }
+.ContentPage .Firefox #Content {
+    margin-left: 34ex;
+    }
+
+
+
+    .CTopic {
+        font-size: 10pt;
+        margin-bottom: 3em;
+        }
+
+
+    .CTitle {
+        font-size: 12pt; font-weight: bold;
+        border-width: 0 0 1px 0; border-style: solid; border-color: #A0A0A0;
+        margin: 0 15px .5em 15px }
+
+    .CGroup .CTitle {
+        font-size: 16pt; font-variant: small-caps;
+        padding-left: 15px; padding-right: 15px;
+        border-width: 0 0 2px 0; border-color: #000000;
+        margin-left: 0; margin-right: 0; color: #8d4a2c }
+
+    .CClass .CTitle,
+    .CInterface .CTitle,
+    .CDatabase .CTitle,
+    .CDatabaseTable .CTitle,
+    .CSection .CTitle {
+        font-size: 18pt;
+        font-weight: bold;
+        color: #8d4a2c;
+        padding: 10px 15px 10px 15px;
+        border-width: 2px 0; border-color: #000000;
+        margin-left: 0; margin-right: 0 }
+
+    #MainTopic .CTitle {
+        font-size: 20pt;
+        font-weight: bold;
+        color: #8d4a2c;
+        padding: 10px 15px 10px 15px;
+        border-width: 0 0 3px 0; border-color: #000000;
+        margin-left: 0; margin-right: 0 }
+
+    .CBody {
+        margin-left: 0; margin-right: 15px }
+
+
+    .CToolTip {
+        position: absolute; visibility: hidden;
+        left: 0; top: 0;
+        background-color: #FFFFE0;
+        padding: 5px;
+        border-width: 1px 2px 2px 1px; border-style: solid; border-color: #000000;
+        font-size: 8pt;
+        }
+
+    .Opera .CToolTip {
+        max-width: 98%;
+        }
+
+    /*  Scrollbars would be useless.  */
+    .CToolTip blockquote {
+        overflow: hidden;
+        }
+    .IE6 .CToolTip blockquote {
+        overflow: visible;
+        }
+
+    .CHeading {
+        font-weight: bold; font-size: 10pt;
+        margin: 1.5em 0 .5em 0;
+        }
+
+    .CBody pre {
+        font: 10pt "Courier New", Courier, monospace;
+        margin: 1em 0;
+        }
+
+    .CBody ul {
+        /*  I don't know why CBody's margin doesn't apply, but it's consistent across browsers so whatever.
+             Reapply it here as padding.  */
+        padding-left: 15px; padding-right: 15px;
+        margin: .5em 5ex .5em 5ex;
+        }
+
+    .CDescriptionList {
+        margin: .5em 5ex 0 5ex }
+
+        .CDLEntry {
+            font: 10pt "Courier New", Courier, monospace; color: #808080;
+            padding-bottom: .25em;
+            white-space: nowrap }
+
+        .CDLDescription {
+            font-size: 10pt;  /*  For browsers that don't inherit correctly, like Opera 5.  */
+            padding-bottom: .5em; padding-left: 5ex }
+
+
+    .CTopic img {
+        text-align: center;
+        display: block;
+        margin: 1em auto;
+        }
+    .CImageCaption {
+        font-variant: small-caps;
+        font-size: 8pt;
+        color: #808080;
+        text-align: center;
+        position: relative;
+        top: 1em;
+        }
+
+    .CImageLink {
+        color: #808080;
+        font-style: italic;
+        }
+    a.CImageLink:link,
+    a.CImageLink:visited,
+    a.CImageLink:hover { color: #808080 }
+
+
+
+
+
+.Prototype {
+    font: 10pt "Courier New", Courier, monospace;
+    padding: 5px 3ex;
+    border-width: 1px; border-style: solid;
+    margin: 0 5ex 1.5em 5ex;
+    }
+
+    .Prototype td {
+        font-size: 10pt;
+        }
+
+    .PDefaultValue,
+    .PDefaultValuePrefix,
+    .PTypePrefix {
+        color: #8F8F8F;
+        }
+    .PTypePrefix {
+        text-align: right;
+        }
+    .PAfterParameters {
+        vertical-align: bottom;
+        }
+
+    .IE .Prototype table {
+        padding: 0;
+        }
+
+    .CFunction .Prototype {
+        background-color: #F4F4F4; border-color: #D0D0D0 }
+    .CProperty .Prototype {
+        background-color: #F4F4FF; border-color: #C0C0E8 }
+    .CVariable .Prototype {
+        background-color: #FFFFF0; border-color: #E0E0A0 }
+
+    .CClass .Prototype {
+        border-width: 1px 2px 2px 1px; border-style: solid; border-color: #A0A0A0;
+        background-color: #F4F4F4;
+        }
+    .CInterface .Prototype {
+        border-width: 1px 2px 2px 1px; border-style: solid; border-color: #A0A0D0;
+        background-color: #F4F4FF;
+        }
+
+    .CDatabaseIndex .Prototype,
+    .CConstant .Prototype {
+        background-color: #D0D0D0; border-color: #000000 }
+    .CType .Prototype,
+    .CEnumeration .Prototype {
+        background-color: #FAF0F0; border-color: #E0B0B0;
+        }
+    .CDatabaseTrigger .Prototype,
+    .CEvent .Prototype,
+    .CDelegate .Prototype {
+        background-color: #F0FCF0; border-color: #B8E4B8 }
+
+    .CToolTip .Prototype {
+        margin: 0 0 .5em 0;
+        white-space: nowrap;
+        }
+
+
+
+
+
+.Summary {
+    margin: 1.5em 5ex 0 5ex }
+
+    .STitle {
+        font-size: 12pt; font-weight: bold;
+        margin-bottom: .5em;
+        color: #8d4a2c; }
+
+
+    .SBorder {
+        background-color: #FFFFF0;
+        padding: 15px;
+        border: 1px solid #C0C060 }
+
+    /* In a frame IE 6 will make them too long unless you set the width to 100%.  Without frames it will be correct without a width
+        or slightly too long (but not enough to scroll) with a width.  This arbitrary weirdness simply astounds me.  IE 7 has the same
+        problem with frames, haven't tested it without.  */
+    .FramedContentPage .IE .SBorder {
+        width: 100% }
+
+    /*  A treat for Mozilla users.  Blatantly non-standard.  Will be replaced with CSS 3 attributes when finalized/supported.  */
+    .Firefox .SBorder {
+        -moz-border-radius: 20px }
+
+
+    .STable {
+        font-size: 9pt; width: 100% }
+
+    .SEntry {
+        width: 30% }
+    .SDescription {
+        width: 70% }
+
+
+    .SMarked {
+        background-color: #F8F8D8 }
+
+    .SDescription { padding-left: 2ex }
+    .SIndent1 .SEntry { padding-left: 1.5ex }   .SIndent1 .SDescription { padding-left: 3.5ex }
+    .SIndent2 .SEntry { padding-left: 3.0ex }   .SIndent2 .SDescription { padding-left: 5.0ex }
+    .SIndent3 .SEntry { padding-left: 4.5ex }   .SIndent3 .SDescription { padding-left: 6.5ex }
+    .SIndent4 .SEntry { padding-left: 6.0ex }   .SIndent4 .SDescription { padding-left: 8.0ex }
+    .SIndent5 .SEntry { padding-left: 7.5ex }   .SIndent5 .SDescription { padding-left: 9.5ex }
+
+    .SDescription a { color: #800000}
+    .SDescription a:active { color: #A00000 }
+
+    .SGroup td {
+        padding-top: .5em; padding-bottom: .25em }
+
+    .SGroup .SEntry {
+        font-weight: bold; font-variant: small-caps }
+
+    .SGroup .SEntry a { color: #800000 }
+    .SGroup .SEntry a:active { color: #F00000 }
+
+
+    .SMain td,
+    .SClass td,
+    .SDatabase td,
+    .SDatabaseTable td,
+    .SSection td {
+        font-size: 10pt;
+        padding-bottom: .25em }
+
+    .SClass td,
+    .SDatabase td,
+    .SDatabaseTable td,
+    .SSection td {
+        padding-top: 1em }
+
+    .SMain .SEntry,
+    .SClass .SEntry,
+    .SDatabase .SEntry,
+    .SDatabaseTable .SEntry,
+    .SSection .SEntry {
+        font-weight: bold;
+        }
+
+    .SMain .SEntry a,
+    .SClass .SEntry a,
+    .SDatabase .SEntry a,
+    .SDatabaseTable .SEntry a,
+    .SSection .SEntry a { color: #000000 }
+
+    .SMain .SEntry a:active,
+    .SClass .SEntry a:active,
+    .SDatabase .SEntry a:active,
+    .SDatabaseTable .SEntry a:active,
+    .SSection .SEntry a:active { color: #A00000 }
+
+
+
+
+
+.ClassHierarchy {
+    margin: 0 15px 1em 15px }
+
+    .CHEntry {
+        border-width: 1px 2px 2px 1px; border-style: solid; border-color: #A0A0A0;
+        margin-bottom: 3px;
+        padding: 2px 2ex;
+        font-size: 10pt;
+        background-color: #F4F4F4; color: #606060;
+        }
+
+    .Firefox .CHEntry {
+        -moz-border-radius: 4px;
+        }
+
+    .CHCurrent .CHEntry {
+        font-weight: bold;
+        border-color: #000000;
+        color: #000000;
+        }
+
+    .CHChildNote .CHEntry {
+        font-style: italic;
+        font-size: 8pt;
+        }
+
+    .CHIndent {
+        margin-left: 3ex;
+        }
+
+    .CHEntry a:link,
+    .CHEntry a:visited,
+    .CHEntry a:hover {
+        color: #606060;
+        }
+    .CHEntry a:active {
+        color: #800000;
+        }
+
+
+
+
+
+#Index {
+    margin-top: 100px;
+    margin-left: 30px;
+    }
+
+/*  As opposed to .PopupSearchResultsPage #Index  */
+.IndexPage #Index,
+.FramedIndexPage #Index,
+.FramedSearchResultsPage #Index {
+    padding: 15px;
+    }
+
+.IndexPage #Index {
+    font-size: 9pt;  /* To make 27ex match the menu's 27ex. */
+    margin-left: 27ex;
+    }
+
+
+    .IPageTitle {
+        font-size: 20pt; font-weight: bold;
+        color: #8d4a2c;
+        padding: 10px 15px 10px 15px;
+        margin: -15px -15px 0 -15px }
+
+    .FramedSearchResultsPage .IPageTitle {
+        margin-bottom: 15px;
+        }
+
+    .INavigationBar {
+        font-size: 10pt;
+        text-align: center;
+        background-color: #FFFFF0;
+        padding: 5px;
+        border-bottom: solid 1px black;
+        margin: 0 -15px 15px -15px;
+        margin-left: 20px;
+        }
+
+    .INavigationBar a {
+        font-weight: bold }
+
+    .IHeading {
+        font-size: 16pt; font-weight: bold;
+        padding: 2.5em 0 .5em 0;
+        text-align: center;
+        width: 3.5ex;
+        }
+    #IFirstHeading {
+        padding-top: 0;
+        }
+
+    .IEntry {
+        font-size: 10pt;
+        padding-left: 1ex;
+        }
+    .PopupSearchResultsPage .IEntry {
+        font-size: 8pt;
+        padding: 1px 5px;
+        }
+    .PopupSearchResultsPage .Opera9 .IEntry,
+    .FramedSearchResultsPage .Opera9 .IEntry {
+        text-align: left;
+        }
+    .FramedSearchResultsPage .IEntry {
+        padding: 0;
+        }
+
+    .ISubIndex {
+        padding-left: 3ex; padding-bottom: .5em }
+    .PopupSearchResultsPage .ISubIndex {
+        display: none;
+        }
+
+    /*  While it may cause some entries to look like links when they aren't, I found it's much easier to read the
+         index if everything's the same color.  */
+    .ISymbol {
+        font-weight: bold; color: #900000  }
+
+    .IndexPage .ISymbolPrefix,
+    .FramedIndexPage .ISymbolPrefix {
+        font-size: 10pt;
+        text-align: right;
+        color: #C47C7C;
+        background-color: #F8F8F8;
+        border-right: 3px solid #E0E0E0;
+        border-left: 1px solid #E0E0E0;
+        padding: 0 1px 0 2px;
+        }
+    .PopupSearchResultsPage .ISymbolPrefix,
+    .FramedSearchResultsPage .ISymbolPrefix {
+        color: #900000;
+        }
+    .PopupSearchResultsPage .ISymbolPrefix {
+        font-size: 8pt;
+        }
+
+    .IndexPage #IFirstSymbolPrefix,
+    .FramedIndexPage #IFirstSymbolPrefix {
+        border-top: 1px solid #E0E0E0;
+        }
+    .IndexPage #ILastSymbolPrefix,
+    .FramedIndexPage #ILastSymbolPrefix {
+        border-bottom: 1px solid #E0E0E0;
+        }
+    .IndexPage #IOnlySymbolPrefix,
+    .FramedIndexPage #IOnlySymbolPrefix {
+        border-top: 1px solid #E0E0E0;
+        border-bottom: 1px solid #E0E0E0;
+        }
+
+    a.IParent,
+    a.IFile {
+        display: block;
+        }
+
+    .PopupSearchResultsPage .SRStatus {
+        padding: 2px 5px;
+        font-size: 8pt;
+        font-style: italic;
+        }
+    .FramedSearchResultsPage .SRStatus {
+        font-size: 10pt;
+        font-style: italic;
+        }
+
+    .SRResult {
+        display: none;
+        }
+
+
+
+#Footer {
+    font-size: 8pt;
+    color: #989898;
+    text-align: right;
+    }
+
+#Footer p {
+    text-indent: 0;
+    margin-bottom: .5em;
+    }
+
+.ContentPage #Footer,
+.IndexPage #Footer {
+    text-align: right;
+    margin: 2px;
+    }
+
+.FramedMenuPage #Footer {
+    text-align: center;
+    margin: 5em 10px 10px 10px;
+    padding-top: 1em;
+    border-top: 1px solid #C8C8C8;
+    }
+
+    #Footer a:link,
+    #Footer a:hover,
+    #Footer a:visited { color: #989898 }
+    #Footer a:active { color: #A00000 }
+
diff -r f4e2629f1b51 -r a2e54bd5c9fd doc/naturaldocs/conf/Languages.txt
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/doc/naturaldocs/conf/Languages.txt	Wed Sep 10 16:11:55 2008 +0200
@@ -0,0 +1,122 @@
+Format: 1.4
+
+# This is the Natural Docs languages file for this project.  If you change
+# anything here, it will apply to THIS PROJECT ONLY.  If you'd like to change
+# something for all your projects, edit the Languages.txt in Natural Docs'
+# Config directory instead.
+
+
+# You can prevent certain file extensions from being scanned like this:
+# Ignore Extensions: [extension] [extension] ...
+
+
+#-------------------------------------------------------------------------------
+# SYNTAX:
+#
+# Unlike other Natural Docs configuration files, in this file all comments
+# MUST be alone on a line.  Some languages deal with the # character, so you
+# cannot put comments on the same line as content.
+#
+# Also, all lists are separated with spaces, not commas, again because some
+# languages may need to use them.
+#
+# Language: [name]
+# Alter Language: [name]
+#    Defines a new language or alters an existing one.  Its name can use any
+#    characters.  If any of the properties below have an add/replace form, you
+#    must use that when using Alter Language.
+#
+#    The language Shebang Script is special.  It's entry is only used for
+#    extensions, and files with those extensions have their shebang (#!) lines
+#    read to determine the real language of the file.  Extensionless files are
+#    always treated this way.
+#
+#    The language Text File is also special.  It's treated as one big comment
+#    so you can put Natural Docs content in them without special symbols.  Also,
+#    if you don't specify a package separator, ignored prefixes, or enum value
+#    behavior, it will copy those settings from the language that is used most
+#    in the source tree.
+#
+# Extensions: [extension] [extension] ...
+# [Add/Replace] Extensions: [extension] [extension] ...
+#    Defines the file extensions of the language's source files.  You can
+#    redefine extensions found in the main languages file.  You can use * to
+#    mean any undefined extension.
+#
+# Shebang Strings: [string] [string] ...
+# [Add/Replace] Shebang Strings: [string] [string] ...
+#    Defines a list of strings that can appear in the shebang (#!) line to
+#    designate that it's part of the language.  You can redefine strings found
+#    in the main languages file.
+#
+# Ignore Prefixes in Index: [prefix] [prefix] ...
+# [Add/Replace] Ignored Prefixes in Index: [prefix] [prefix] ...
+#
+# Ignore [Topic Type] Prefixes in Index: [prefix] [prefix] ...
+# [Add/Replace] Ignored [Topic Type] Prefixes in Index: [prefix] [prefix] ...
+#    Specifies prefixes that should be ignored when sorting symbols in an
+#    index.  Can be specified in general or for a specific topic type.
+#
+#------------------------------------------------------------------------------
+# For basic language support only:
+#
+# Line Comments: [symbol] [symbol] ...
+#    Defines a space-separated list of symbols that are used for line comments,
+#    if any.
+#
+# Block Comments: [opening sym] [closing sym] [opening sym] [closing sym] ...
+#    Defines a space-separated list of symbol pairs that are used for block
+#    comments, if any.
+#
+# Package Separator: [symbol]
+#    Defines the default package separator symbol.  The default is a dot.
+#
+# [Topic Type] Prototype Enders: [symbol] [symbol] ...
+#    When defined, Natural Docs will attempt to get a prototype from the code
+#    immediately following the topic type.  It stops when it reaches one of
+#    these symbols.  Use \n for line breaks.
+#
+# Line Extender: [symbol]
+#    Defines the symbol that allows a prototype to span multiple lines if
+#    normally a line break would end it.
+#
+# Enum Values: [global|under type|under parent]
+#    Defines how enum values are referenced.  The default is global.
+#    global       - Values are always global, referenced as 'value'.
+#    under type   - Values are under the enum type, referenced as
+#               'package.enum.value'.
+#    under parent - Values are under the enum's parent, referenced as
+#               'package.value'.
+#
+# Perl Package: [perl package]
+#    Specifies the Perl package used to fine-tune the language behavior in ways
+#    too complex to do in this file.
+#
+#------------------------------------------------------------------------------
+# For full language support only:
+#
+# Full Language Support: [perl package]
+#    Specifies the Perl package that has the parsing routines necessary for full
+#    language support.
+#
+#-------------------------------------------------------------------------------
+
+# The following languages are defined in the main file, if you'd like to alter
+# them:
+#
+#    Text File, Shebang Script, C/C++, C#, Java, JavaScript, Perl, Python,
+#    PHP, SQL, Visual Basic, Pascal, Assembly, Ada, Tcl, Ruby, Makefile,
+#    ActionScript, ColdFusion, R, Fortran
+
+# If you add a language that you think would be useful to other developers
+# and should be included in Natural Docs by default, please e-mail it to
+# languages [at] naturaldocs [dot] org.
+
+
+Language: Augeas
+
+   Extension: aug
+   Block Comment: (* *)
+   Augeas Variable Prototype Enders: \n let test module filter
+   Augeas Lens Prototype Enders: \n let test module filter
+   Perl Package: NaturalDocs::Languages::Augeas
diff -r f4e2629f1b51 -r a2e54bd5c9fd doc/naturaldocs/conf/Menu.txt
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/doc/naturaldocs/conf/Menu.txt	Wed Sep 10 16:11:55 2008 +0200
@@ -0,0 +1,111 @@
+Format: Development Release 12-07-2007 (1.35 base)
+
+
+Title: Augeas Documentation
+SubTitle: Modules and API
+
+# You can add a footer to your documentation like this:
+# Footer: [text]
+# If you want to add a copyright notice, this would be the place to do it.
+
+# You can add a timestamp to your documentation like one of these:
+# Timestamp: Generated on month day, year
+# Timestamp: Updated mm/dd/yyyy
+# Timestamp: Last updated mon day
+#
+#   m     - One or two digit month.  January is "1"
+#   mm    - Always two digit month.  January is "01"
+#   mon   - Short month word.  January is "Jan"
+#   month - Long month word.  January is "January"
+#   d     - One or two digit day.  1 is "1"
+#   dd    - Always two digit day.  1 is "01"
+#   day   - Day with letter extension.  1 is "1st"
+#   yy    - Two digit year.  2006 is "06"
+#   yyyy  - Four digit year.  2006 is "2006"
+#   year  - Four digit year.  2006 is "2006"
+
+
+# --------------------------------------------------------------------------
+# 
+# Cut and paste the lines below to change the order in which your files
+# appear on the menu.  Don't worry about adding or removing files, Natural
+# Docs will take care of that.
+# 
+# You can further organize the menu by grouping the entries.  Add a
+# "Group: [name] {" line to start a group, and add a "}" to end it.
+# 
+# You can add text and web links to the menu by adding "Text: [text]" and
+# "Link: [name] ([URL])" lines, respectively.
+# 
+# The formatting and comments are auto-generated, so don't worry about
+# neatness when editing the file.  Natural Docs will clean it up the next
+# time it is run.  When working with groups, just deal with the braces and
+# forget about the indentation and comments.
+# 
+# --------------------------------------------------------------------------
+
+
+File: Augeas  (doc/naturaldocs/Modules/NaturalDocs/Languages/Augeas.pm)
+
+Group: Augeas Modules  {
+
+   Group: Generic Modules  {
+
+      File: IniFile  (lenses/inifile.aug)
+      File: Util  (lenses/util.aug)
+      }  # Group: Generic Modules
+
+   Group: Specific Modules  {
+
+      File: Dput  (lenses/dput.aug)
+      File: Grub  (lenses/grub.aug)
+      File: OpenVPN  (lenses/openvpn.aug)
+      File: PHP  (lenses/php.aug)
+      File: Puppet  (lenses/puppet.aug)
+      File: Sudoers  (lenses/sudoers.aug)
+      }  # Group: Specific Modules
+
+   }  # Group: Augeas Modules
+
+Group: C API  {
+
+   File: Public API  (no auto-title, src/augeas.h)
+   File: Internal API  (no auto-title, src/internal.h)
+   }  # Group: C API
+
+Group: Index  {
+
+   Group: Augeas types  {
+
+      Class Index: Classes
+      Augeas Lens Index: Lenses
+      Augeas Module Index: Modules
+      Augeas Variable Index: Variables
+      Variable Index: Variables
+      }  # Group: Augeas types
+
+   Group: C types  {
+
+      Function Index: Functions
+      Macro Index: Macros
+      }  # Group: C types
+
+   Index: Everything
+   File Index: Files
+   }  # Group: Index
+
+Group: Main Site  {
+
+   Link: Main  (http://augeas.net)
+   Link: FAQ  (http://augeas.net/faq.html)
+   Link: Quick Tour  (http://augeas.net/tour.html)
+   Link: Bug Tracker  (https://fedorahosted.org/augeas/report/1)
+   Link: Todo list  (http://augeas.net/todo.html)
+   Link: Releases  (http://augeas.net/news.html)
+   Link: Contribute  (http://augeas.net/developers.html)
+   Link: Wiki  (http://augeas.net/wiki)
+   Link: Documentation  (http://augeas.net/docs/index.html)
+   Link: libfa  (http://augeas.net/libfa/index.html)
+   Link: Download  (http://augeas.net/download.html)
+   }  # Group: Main Site
+
diff -r f4e2629f1b51 -r a2e54bd5c9fd doc/naturaldocs/conf/Topics.txt
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/doc/naturaldocs/conf/Topics.txt	Wed Sep 10 16:11:55 2008 +0200
@@ -0,0 +1,98 @@
+Format: 1.4
+
+# This is the Natural Docs topics file for this project.  If you change anything
+# here, it will apply to THIS PROJECT ONLY.  If you'd like to change something
+# for all your projects, edit the Topics.txt in Natural Docs' Config directory
+# instead.
+
+
+Ignore Keywords: 
+   class
+
+
+#-------------------------------------------------------------------------------
+# SYNTAX:
+#
+# Topic Type: [name]
+# Alter Topic Type: [name]
+#    Creates a new topic type or alters one from the main file.  Each type gets
+#    its own index and behavior settings.  Its name can have letters, numbers,
+#    spaces, and these charaters: - / . '
+#
+# Plural: [name]
+#    Sets the plural name of the topic type, if different.
+#
+# Keywords:
+#    [keyword]
+#    [keyword], [plural keyword]
+#    ...
+#    Defines or adds to the list of keywords for the topic type.  They may only
+#    contain letters, numbers, and spaces and are not case sensitive.  Plural
+#    keywords are used for list topics.  You can redefine keywords found in the
+#    main topics file.
+#
+# Index: [yes|no]
+#    Whether the topics get their own index.  Defaults to yes.  Everything is
+#    included in the general index regardless of this setting.
+#
+# Scope: [normal|start|end|always global]
+#    How the topics affects scope.  Defaults to normal.
+#    normal        - Topics stay within the current scope.
+#    start         - Topics start a new scope for all the topics beneath it,
+#                    like class topics.
+#    end           - Topics reset the scope back to global for all the topics
+#                    beneath it.
+#    always global - Topics are defined as global, but do not change the scope
+#                    for any other topics.
+#
+# Class Hierarchy: [yes|no]
+#    Whether the topics are part of the class hierarchy.  Defaults to no.
+#
+# Page Title If First: [yes|no]
+#    Whether the topic's title becomes the page title if it's the first one in
+#    a file.  Defaults to no.
+#
+# Break Lists: [yes|no]
+#    Whether list topics should be broken into individual topics in the output.
+#    Defaults to no.
+#
+# Can Group With: [type], [type], ...
+#    Defines a list of topic types that this one can possibly be grouped with.
+#    Defaults to none.
+#-------------------------------------------------------------------------------
+
+# The following topics are defined in the main file, if you'd like to alter
+# their behavior or add keywords:
+#
+#    Generic, Class, Interface, Section, File, Group, Function, Variable,
+#    Property, Type, Constant, Enumeration, Event, Delegate, Macro,
+#    Database, Database Table, Database View, Database Index, Database
+#    Cursor, Database Trigger, Cookie, Build Target
+
+# If you add something that you think would be useful to other developers
+# and should be included in Natural Docs by default, please e-mail it to
+# topics [at] naturaldocs [dot] org.
+
+
+Topic Type: Augeas Lens
+
+   Plural: Augeas Lenses
+   Keywords:
+      view, views
+
+
+Topic Type: Augeas Variable
+
+   Plural: Augeas Variables
+   Keywords:
+      variable, variables
+
+
+Topic Type: Augeas Module
+
+   Plural: Augeas Modules
+   Scope: Start
+   Page Title If First: Yes
+
+   Keywords:
+      module, modules
diff -r f4e2629f1b51 -r a2e54bd5c9fd doc/naturaldocs/naturaldocs
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/doc/naturaldocs/naturaldocs	Wed Sep 10 16:11:55 2008 +0200
@@ -0,0 +1,24 @@
+#!/bin/sh
+
+
+usage() {
+ echo "Wrapper for NaturalDocs in Augeas"
+ echo -e "Usage: [NDDIR=/path/to/naturaldocs/dir] ./naturaldocs [ND options]\n"
+}
+
+
+if [ ! -f "$NDDIR/NaturalDocs" ]; then
+   echo "Error: Could not find NaturalDocs in $NDDIR"
+   echo "Please specify the path to NaturalDocs with NDDIR=/path/to/naturaldocs/dir"
+   echo ""
+   usage
+   exit 1
+fi
+
+
+[ "x$1" = "x--help" ] && usage
+
+exec /usr/bin/perl -M"NaturalDocs::Languages::Augeas" \
+                   -I"$NDDIR/Modules" -I"Modules" \
+		   $NDDIR/NaturalDocs $@
+




More information about the augeas-devel mailing list