[Author Prev][Author Next][Thread Prev][Thread Next][Author Index][Thread Index]

gEDA-cvs: pcb.git: branch: master updated (9a1a142b0efae930388332a0ee4630ae7d33324c)



The branch, master has been updated
       via  9a1a142b0efae930388332a0ee4630ae7d33324c (commit)
       via  d220dbe1b1246afda1c8ea0ff0f19d68386628b5 (commit)
       via  8c5602948cdb8a8b693838173fa2b7af744c2962 (commit)
       via  8771285dde08437fe22b76880ec51cc8c0aedb9b (commit)
       via  fde4ea896fd903885f1a87c184296dcf1fc2523f (commit)
       via  957d6dc0d7ae048cd75644c25e3180cada6eb88d (commit)
       via  7a2e682e842ede06ffdb313f677e98a21e28cc3a (commit)
       via  d42601a5c8481e6eaa48cf643862d86e2e9ce98c (commit)
       via  5fe7f9ab6aea59e60afb1911a4b5f54264b015e8 (commit)
      from  3c18ddb6c270841401c4d5ffec0c25b7bad97315 (commit)

Those revisions listed above that are new to this repository have
not appeared on any other notification email; so we list those
revisions in full, below.


=========
 Summary
=========

 README.cvs           |   30 +-
 configure.ac         |   82 ++-
 doc/Makefile.am      |   40 +-
 doc/actions.texi     | 3226 --------------------------------------------------
 doc/gs/Makefile.inc  |   45 +-
 doc/gs/gafrc         |    1 -
 doc/gs/gafrc.in      |    2 +
 doc/gs/gschemrc      |    1 -
 doc/gs/gschemrc.in   |    2 +
 doc/gs/print-eps.scm |    2 +-
 doc/pcbfile.texi     |  929 ---------------
 doc/version.texi     |    4 -
 lib/Makefile.am      |    4 +-
 po/POTFILES.in       |    1 +
 src/Makefile.am      |    9 +-
 utils/git2cl         |  374 ++++++
 16 files changed, 520 insertions(+), 4232 deletions(-)
 delete mode 100644 doc/actions.texi
 delete mode 100644 doc/gs/gafrc
 create mode 100644 doc/gs/gafrc.in
 delete mode 100644 doc/gs/gschemrc
 create mode 100644 doc/gs/gschemrc.in
 delete mode 100644 doc/pcbfile.texi
 delete mode 100644 doc/version.texi
 create mode 100755 utils/git2cl


=================
 Commit Messages
=================

commit 9a1a142b0efae930388332a0ee4630ae7d33324c
Author: Dan McMahill <dan@xxxxxxxxxxxx>
Commit: Dan McMahill <dan@xxxxxxxxxxxx>

    update this a bit to reflect the new repository home and also remove
    references to needing maintainer-mode

:100644 100644 645ecdf... 0d817f5... M	README.cvs

commit d220dbe1b1246afda1c8ea0ff0f19d68386628b5
Author: Dan McMahill <dan@xxxxxxxxxxxx>
Commit: Dan McMahill <dan@xxxxxxxxxxxx>

    add git2cl utility to help update ChangeLog's for releases.

:000000 100755 0000000... 462b092... A	utils/git2cl

commit 8c5602948cdb8a8b693838173fa2b7af744c2962
Author: Dan McMahill <dan@xxxxxxxxxxxx>
Commit: Dan McMahill <dan@xxxxxxxxxxxx>

    remove some generated files from git.  These are only needed if
    you are building the documentation in which case you have all the
    tools and makefile rules for them to be regenrated anyway.  Eliminates
    all the headaches associated with generated files in version control.

:100644 000000 f8c4261... 0000000... D	doc/actions.texi
:100644 000000 7dd6be8... 0000000... D	doc/pcbfile.texi
:100644 000000 bc949ab... 0000000... D	doc/version.texi

commit 8771285dde08437fe22b76880ec51cc8c0aedb9b
Author: Dan McMahill <dan@xxxxxxxxxxxx>
Commit: Dan McMahill <dan@xxxxxxxxxxxx>

    these are generated at configure time now.

:100644 000000 6e40065... 0000000... D	doc/gs/gafrc
:100644 000000 6e40065... 0000000... D	doc/gs/gschemrc

commit fde4ea896fd903885f1a87c184296dcf1fc2523f
Author: Dan McMahill <dan@xxxxxxxxxxxx>
Commit: Dan McMahill <dan@xxxxxxxxxxxx>

    to handle the case where we may be building outside the source directory,
    generate gafrc and gschemrc at configure time.

:000000 100644 0000000... 13423c0... A	doc/gs/gafrc.in
:000000 100644 0000000... 13423c0... A	doc/gs/gschemrc.in

commit 957d6dc0d7ae048cd75644c25e3180cada6eb88d
Author: Dan McMahill <dan@xxxxxxxxxxxx>
Commit: Dan McMahill <dan@xxxxxxxxxxxx>

    comment out a color theme that relied on a path only present on DJ's machine.
    It isn't really needed anyway.

:100644 100644 44992ad... 427267d... M	doc/gs/print-eps.scm

commit 7a2e682e842ede06ffdb313f677e98a21e28cc3a
Author: Dan McMahill <dan@xxxxxxxxxxxx>
Commit: Dan McMahill <dan@xxxxxxxxxxxx>

    add a missing file.

:100644 100644 7ece01c... 7b54375... M	po/POTFILES.in

commit d42601a5c8481e6eaa48cf643862d86e2e9ce98c
Author: Dan McMahill <dan@xxxxxxxxxxxx>
Commit: Dan McMahill <dan@xxxxxxxxxxxx>

    Remove the use of maintainer mode to gate on/off rules for building
    the documentation.  Instead look for the existance of $(top_srcdir)/.git
    and decide based on that if this is a tarball build (in which case
    the documentation ships already built) or a git build.  If it is a git
    build, then simply require all the needed tools for building the docs.
    If the tools are not found then configure will exit with an explicit
    message saying why it has failed and that either tools need to be installed
    or --disable-doc needs to be given.  Hopefully this will eliminate the
    previous strange behavior of needing --maintainer-mode when building
    docs from cvs/git.

:100644 100644 08fcd6e... 4d1c529... M	configure.ac
:100755 100755 7a795d4... 177cd9c... M	doc/Makefile.am
:100644 100644 00f34a0... 8817a7c... M	doc/gs/Makefile.inc
:100644 100644 5701d50... 9825847... M	lib/Makefile.am

commit 5fe7f9ab6aea59e60afb1911a4b5f54264b015e8
Author: Dan McMahill <dan@xxxxxxxxxxxx>
Commit: Dan McMahill <dan@xxxxxxxxxxxx>

    add gts/predicates_init.h to DISTCLEANFILES.  Also comment out the section
    that extracts REGISTER lines from the gts code.  We currently don't have any
    REGISTER lines in the gts code and so make was exiting because a grep failed.

:100644 100644 ebff648... 48b150d... M	src/Makefile.am

=========
 Changes
=========

commit 9a1a142b0efae930388332a0ee4630ae7d33324c
Author: Dan McMahill <dan@xxxxxxxxxxxx>
Commit: Dan McMahill <dan@xxxxxxxxxxxx>

    update this a bit to reflect the new repository home and also remove
    references to needing maintainer-mode

diff --git a/README.cvs b/README.cvs
index 645ecdf..0d817f5 100644
--- a/README.cvs
+++ b/README.cvs
@@ -44,24 +44,15 @@ texinfo   -- ftp://ftp.gnu.org/pub/gnu/texinfo/
              You will need at least version 4.6 to be able to build
              the documentation.
 
+perl      -- Version 5 or newer.  This is needed for building the documentation.
+
+latex     -- This is needed for building the documentation.
+
 You can find the version of autoconf, automake, and makeinfo by running them with the 
 --version flag.
 
 If you do not wish to build the documentation, use --disable-doc when you run
-configure.  If you do wish to build the documentation, you should enable
-maintainer-mode (--enable-maintainer-mode) which will turn on various
-dependency rules for documentation building.  In addition you must build
-pcb with the png export HID enabled (it is enabled by default) because some
-of the figures in the manual are drawn with pcb.
-
-Please note that maintainer-mode and the png HID are only needed when building
-documentation from cvs sources.  If you are building pcb from a distfile you 
-do not need maintainer-mode and the png export HID is optional.
-
-Finally, if you edit any of the actions identified by 
-/* ACTION(Foo,ActionFoo) */
-comments, you will need perl and in addition, you must have used
-the --enable-maintainer-mode flag to the configure script.
+configure.  When building from a release tarball, the documentation comes preformatted.
 
 ---------
 Check out
@@ -72,8 +63,7 @@ If you already have a checked out PCB source tree, please proceed to the
 
 To check out sources from the anonymous CVS server, run the following:
 
-	cvs -d:pserver:anonymous@xxxxxxxxxxxxxxxxxxxxxxx:/cvsroot/pcb login 
-	cvs -z3 -d:pserver:anonymous@xxxxxxxxxxxxxxxxxxxxxxx:/cvsroot/pcb co pcb
+  cvs -z3 -d:pserver:anonymous@xxxxxxxxxxxxxx/home/git/pcb.git co master
 
 ---------
 Updating
@@ -82,8 +72,7 @@ Updating
 To update an already checked out copy of the PCB source tree, run these commands
 from your top level pcb directory:
 
-	cvs login 
-	cvs -z3 update -PdA
+  cvs -z3 update -PdA
 
 ----------------------------------
 Bootstrapping with the auto* tools
@@ -97,11 +86,6 @@ from the top level pcb directory.  This will run the various auto* tools
 which creates the configure script, the config.h.in file and the various
 Makefile.in's.
 
-If you plan on making changes to configure.ac, Makefile.am's, or actions
-defined by the 
-/* ACTION(Foo,ActionFoo) */
-comments, you may want to enable maintainer mode by passing the
---enable-maintainer mode flag to ./autogen.sh
 
 At this point you can proceed to configure and build PCB as outlined in
 the INSTALL document.

commit d220dbe1b1246afda1c8ea0ff0f19d68386628b5
Author: Dan McMahill <dan@xxxxxxxxxxxx>
Commit: Dan McMahill <dan@xxxxxxxxxxxx>

    add git2cl utility to help update ChangeLog's for releases.

diff --git a/utils/git2cl b/utils/git2cl
new file mode 100755
index 0000000..462b092
--- /dev/null
+++ b/utils/git2cl
@@ -0,0 +1,374 @@
+#!/bin/sh
+exec perl -w -x $0 ${1+"$@"} # -*- mode: perl; perl-indent-level: 2; -*-
+#!perl -w
+
+# Copyright (C) 2007, 2008 Simon Josefsson <simon@xxxxxxxxxxxxx>
+# Copyright (C) 2007 Luis Mondesi <lemsx1@xxxxxxxxx>
+# * calls git directly. To use it just: 
+#   cd ~/Project/my_git_repo; git2cl > ChangeLog
+# * implements strptime()
+# * fixes bugs in $comment parsing
+#   - copy input before we remove leading spaces
+#   - skip "merge branch" statements as they don't
+#     have information about files (i.e. we never
+#     go into $state 2)
+#   - behaves like a pipe/filter if input is given from the CLI
+#     else it calls git log by itself
+#
+# The functions mywrap, last_line_len, wrap_log_entry are derived from
+# the cvs2cl tool, see <http://www.red-bean.com/cvs2cl/>:
+# Copyright (C) 2001,2002,2003,2004 Martyn J. Pearce <fluffy@xxxxxxxx>
+# Copyright (C) 1999 Karl Fogel <kfogel@xxxxxxxxxxxx>
+#
+# git2cl is free software; you can redistribute it and/or modify it
+# under the terms of the GNU General Public License as published by
+# the Free Software Foundation; either version 2, or (at your option)
+# any later version.
+#
+# git2cl is distributed in the hope that it will be useful, but
+# WITHOUT ANY WARRANTY; without even the implied warranty of
+# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
+# General Public License for more details.
+#
+# You should have received a copy of the GNU General Public License
+# along with git2cl; see the file COPYING.  If not, write to the Free
+# Software Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA
+# 02111-1307, USA.
+
+use strict;
+use POSIX qw(strftime);
+use Text::Wrap qw(wrap);
+use FileHandle;
+
+use constant EMPTY_LOG_MESSAGE => '*** empty log message ***';
+
+# this is a helper hash for stptime.
+# Assumes you are calling 'git log ...' with LC_ALL=C
+my %month = (
+    'Jan'=>0,
+    'Feb'=>1,
+    'Mar'=>2,
+    'Apr'=>3,
+    'May'=>4,
+    'Jun'=>5,
+    'Jul'=>6,
+    'Aug'=>7,
+    'Sep'=>8,
+    'Oct'=>9,
+    'Nov'=>10,
+    'Dec'=>11,
+);
+
+my $fh = new FileHandle;
+
+sub key_ready
+{
+    my ($rin, $nfd);
+    vec($rin, fileno(STDIN), 1) = 1;
+    return $nfd = select($rin, undef, undef, 0);
+}
+
+sub strptime {
+    my $str = shift;
+    return undef if not defined $str;
+
+    # we are parsing this format
+    # Fri Oct 26 00:42:56 2007 -0400
+    # to these fields
+    # sec, min, hour, mday, mon, year, wday = -1, yday = -1, isdst = -1
+    # Luis Mondesi <lemsx1@xxxxxxxxx>
+    my @date;
+    if ($str =~ /([[:alpha:]]{3})\s+([[:alpha:]]{3})\s+([[:digit:]]{1,2})\s+([[:digit:]]{1,2}):([[:digit:]]{1,2}):([[:digit:]]{1,2})\s+([[:digit:]]{4})/){
+        push(@date,$6,$5,$4,$3,$month{$2},($7 - 1900),-1,-1,-1);
+    } else {
+        die ("Cannot parse date '$str'\n'");
+    }
+    return @date;
+}
+
+sub mywrap {
+    my ($indent1, $indent2, @text) = @_;
+    # If incoming text looks preformatted, don't get clever
+    my $text = Text::Wrap::wrap($indent1, $indent2, @text);
+    if ( grep /^\s+/m, @text ) {
+	return $text;
+    }
+    my @lines = split /\n/, $text;
+    $indent2 =~ s!^((?: {8})+)!"\t" x (length($1)/8)!e;
+    $lines[0] =~ s/^$indent1\s+/$indent1/;
+    s/^$indent2\s+/$indent2/
+	for @lines[1..$#lines];
+    my $newtext = join "\n", @lines;
+    $newtext .= "\n"
+	if substr($text, -1) eq "\n";
+    return $newtext;
+}
+
+sub last_line_len {
+    my $files_list = shift;
+    my @lines = split (/\n/, $files_list);
+    my $last_line = pop (@lines);
+    return length ($last_line);
+}
+
+# A custom wrap function, sensitive to some common constructs used in
+# log entries.
+sub wrap_log_entry {
+    my $text = shift;                  # The text to wrap.
+    my $left_pad_str = shift;          # String to pad with on the left.
+
+    # These do NOT take left_pad_str into account:
+    my $length_remaining = shift;      # Amount left on current line.
+    my $max_line_length  = shift;      # Amount left for a blank line.
+
+    my $wrapped_text = '';             # The accumulating wrapped entry.
+    my $user_indent = '';              # Inherited user_indent from prev line.
+
+    my $first_time = 1;                # First iteration of the loop?
+    my $suppress_line_start_match = 0; # Set to disable line start checks.
+
+    my @lines = split (/\n/, $text);
+    while (@lines)   # Don't use `foreach' here, it won't work.
+    {
+	my $this_line = shift (@lines);
+	chomp $this_line;
+
+	if ($this_line =~ /^(\s+)/) {
+	    $user_indent = $1;
+	}
+	else {
+	    $user_indent = '';
+	}
+
+	# If it matches any of the line-start regexps, print a newline now...
+	if ($suppress_line_start_match)
+	{
+	    $suppress_line_start_match = 0;
+	}
+	elsif (($this_line =~ /^(\s*)\*\s+[a-zA-Z0-9]/)
+	       || ($this_line =~ /^(\s*)\* [a-zA-Z0-9_\.\/\+-]+/)
+	       || ($this_line =~ /^(\s*)\([a-zA-Z0-9_\.\/\+-]+(\)|,\s*)/)
+	       || ($this_line =~ /^(\s+)(\S+)/)
+	       || ($this_line =~ /^(\s*)- +/)
+	       || ($this_line =~ /^()\s*$/)
+	       || ($this_line =~ /^(\s*)\*\) +/)
+	       || ($this_line =~ /^(\s*)[a-zA-Z0-9](\)|\.|\:) +/))
+	{
+	    $length_remaining = $max_line_length - (length ($user_indent));
+	}
+
+	# Now that any user_indent has been preserved, strip off leading
+	# whitespace, so up-folding has no ugly side-effects.
+	$this_line =~ s/^\s*//;
+
+	# Accumulate the line, and adjust parameters for next line.
+	my $this_len = length ($this_line);
+	if ($this_len == 0)
+	{
+	    # Blank lines should cancel any user_indent level.
+	    $user_indent = '';
+	    $length_remaining = $max_line_length;
+	}
+	elsif ($this_len >= $length_remaining) # Line too long, try breaking it.
+	{
+	    # Walk backwards from the end.  At first acceptable spot, break
+	    # a new line.
+	    my $idx = $length_remaining - 1;
+	    if ($idx < 0) { $idx = 0 };
+	    while ($idx > 0)
+	    {
+		if (substr ($this_line, $idx, 1) =~ /\s/)
+		{
+		    my $line_now = substr ($this_line, 0, $idx);
+		    my $next_line = substr ($this_line, $idx);
+		    $this_line = $line_now;
+
+		    # Clean whitespace off the end.
+		    chomp $this_line;
+
+		    # The current line is ready to be printed.
+		    $this_line .= "\n${left_pad_str}";
+
+		    # Make sure the next line is allowed full room.
+		    $length_remaining = $max_line_length - (length ($user_indent));
+
+		    # Strip next_line, but then preserve any user_indent.
+		    $next_line =~ s/^\s*//;
+
+		    # Sneak a peek at the user_indent of the upcoming line, so
+		    # $next_line (which will now precede it) can inherit that
+		    # indent level.  Otherwise, use whatever user_indent level
+		    # we currently have, which might be none.
+		    my $next_next_line = shift (@lines);
+		    if ((defined ($next_next_line)) && ($next_next_line =~ /^(\s+)/)) {
+			$next_line = $1 . $next_line if (defined ($1));
+			# $length_remaining = $max_line_length - (length ($1));
+			$next_next_line =~ s/^\s*//;
+		    }
+		    else {
+			$next_line = $user_indent . $next_line;
+		    }
+		    if (defined ($next_next_line)) {
+			unshift (@lines, $next_next_line);
+		    }
+		    unshift (@lines, $next_line);
+
+		    # Our new next line might, coincidentally, begin with one of
+		    # the line-start regexps, so we temporarily turn off
+		    # sensitivity to that until we're past the line.
+		    $suppress_line_start_match = 1;
+
+		    last;
+		}
+		else
+		{
+		    $idx--;
+		}
+	    }
+
+	    if ($idx == 0)
+	    {
+		# We bottomed out because the line is longer than the
+		# available space.  But that could be because the space is
+		# small, or because the line is longer than even the maximum
+		# possible space.  Handle both cases below.
+
+		if ($length_remaining == ($max_line_length - (length ($user_indent))))
+		{
+		    # The line is simply too long -- there is no hope of ever
+		    # breaking it nicely, so just insert it verbatim, with
+		    # appropriate padding.
+		    $this_line = "\n${left_pad_str}${this_line}";
+		}
+		else
+		{
+		    # Can't break it here, but may be able to on the next round...
+		    unshift (@lines, $this_line);
+		    $length_remaining = $max_line_length - (length ($user_indent));
+		    $this_line = "\n${left_pad_str}";
+		}
+	    }
+	}
+	else  # $this_len < $length_remaining, so tack on what we can.
+	{
+	    # Leave a note for the next iteration.
+	    $length_remaining = $length_remaining - $this_len;
+
+	    if ($this_line =~ /\.$/)
+	    {
+		$this_line .= "  ";
+		$length_remaining -= 2;
+	    }
+	    else  # not a sentence end
+	    {
+		$this_line .= " ";
+		$length_remaining -= 1;
+	    }
+	}
+
+	# Unconditionally indicate that loop has run at least once.
+	$first_time = 0;
+
+	$wrapped_text .= "${user_indent}${this_line}";
+    }
+
+    # One last bit of padding.
+    $wrapped_text .= "\n";
+
+    return $wrapped_text;
+}
+
+# main
+
+my @date;
+my $author;
+my @files;
+my $comment;
+
+my $state; # 0-header 1-comment 2-files
+my $done = 0;
+
+$state = 0;
+
+# if reading from STDIN, we assume that we are
+# getting git log as input
+if (key_ready())
+{
+
+    #my $dummyfh; # don't care about writing
+    #($fh,$dummyfh) = FileHandle::pipe;
+    $fh->fdopen(*STDIN, 'r');
+}
+else
+{
+    $fh->open("LC_ALL=C git log --pretty --numstat --summary|")
+	or die("Cannot execute git log...$!\n");
+}
+
+while (my $_l = <$fh>) {
+    #print STDERR "debug ($state, " . (@date ? (strftime "%Y-%m-%d", @date) : "") . "): `$_'\n";
+    if ($state == 0) {
+	if ($_l =~ m,^Author: (.*),) {
+	    $author = $1;
+	}
+	if ($_l =~ m,^Date: (.*),) {
+	    @date = strptime($1);
+	}
+	$state = 1 if ($_l =~ m,^$, and $author and (@date+0>0));
+    } elsif ($state == 1) {
+        # * modifying our input text is a bad choice
+        #   let's make a copy of it first, then we remove spaces 
+        # * if we meet a "merge branch" statement, we need to start
+        #   over and find a real entry
+        # Luis Mondesi <lemsx1@xxxxxxxxx>
+        my $_s = $_l;
+	$_s =~ s/^    //g;
+        if ($_s =~ m/^Merge branch/)
+        {
+            $state=0;
+            next;
+        }
+	$comment = $comment . $_s;
+	$state = 2 if ($_l =~ m,^$,);
+    } elsif ($state == 2) {
+	if ($_l =~ m,^([0-9]+)\t([0-9]+)\t(.*)$,) {
+	    push @files, $3;
+	}
+	$done = 1 if ($_l =~ m,^$,);
+    }
+
+    if ($done) {
+	print (strftime "%Y-%m-%d  $author\n\n", @date);
+
+	my $files = join (", ", @files);
+	$files = mywrap ("\t", "\t", "* $files"), ": ";
+
+	if (index($comment, EMPTY_LOG_MESSAGE) > -1 ) {
+	    $comment = "[no log message]\n";
+	}
+
+	my $files_last_line_len = 0;
+	$files_last_line_len = last_line_len($files) + 1;
+	my $msg = wrap_log_entry($comment, "\t", 69-$files_last_line_len, 69);
+
+	$msg =~ s/[ \t]+\n/\n/g;
+
+	print "$files: $msg\n";
+
+	@date = ();
+	$author = "";
+	@files = ();
+	$comment = "";
+
+	$state = 0;
+	$done = 0;
+    }
+}
+
+if (@date + 0)
+{
+    print (strftime "%Y-%m-%d  $author\n\n", @date);
+    my $msg = wrap_log_entry($comment, "\t", 69, 69);
+    $msg =~ s/[ \t]+\n/\n/g;
+    print "\t* $msg\n";
+}

commit 8c5602948cdb8a8b693838173fa2b7af744c2962
Author: Dan McMahill <dan@xxxxxxxxxxxx>
Commit: Dan McMahill <dan@xxxxxxxxxxxx>

    remove some generated files from git.  These are only needed if
    you are building the documentation in which case you have all the
    tools and makefile rules for them to be regenrated anyway.  Eliminates
    all the headaches associated with generated files in version control.

diff --git a/doc/actions.texi b/doc/actions.texi
deleted file mode 100644
index f8c4261..0000000
--- a/doc/actions.texi
+++ /dev/null
@@ -1,3226 +0,0 @@
-@c key actions
-@c ./../src/action.c 211
-
-Many actions take a @code{delta} parameter as the last parameter,
-which is an amount to change something.  That @code{delta} may include
-units, as an additional parameter, such as @code{Action(Object,5,mm)}.
-If no units are specified, the default is PCB's native units
-(currently 1/100 mil).  Also, if the delta is prefixed by @code{+} or
-@code{-}, the size is increased or decreased by that amount.
-Otherwise, the size size is set to the given amount.
-
-@example
-Action(Object,5,mil)
-Action(Object,+0.5,mm)
-Action(Object,-1)
-@end example
-
-Actions which take a @code{delta} parameter which do not accept all
-these options will specify what they do take.
-
-@c ./../src/action.c 215
-
-@macro pinshapes
-
-Pins, pads, and vias can have various shapes.  All may be round.  Pins
-and pads may be square (obviously "square" pads are usually
-rectangular).  Pins and vias may be octagonal.  When you change a
-shape flag of an element, you actually change all of its pins and
-pads.
-
-Note that the square flag takes precedence over the octagon flag,
-thus, if both the square and octagon flags are set, the object is
-square.  When the square flag is cleared, the pins and pads will be
-either round or, if the octagon flag is set, octagonal.
-
-@end macro
-
-@c ./../src/command.c 64
-
-@macro colonaction
-
-This is one of the command box helper actions.  While it is a regular
-action and can be used like any other action, its name and syntax are
-optimized for use with the command box (@code{:}) and thus the syntax
-is documented for that purpose.
-
-@end macro
-
-@c ./../src/action.c 213
-
-Many actions act on indicated objects on the board.  They will have
-parameters like @code{ToggleObject} or @code{SelectedVias} to indicate
-what group of objects they act on.  Unless otherwise specified, these
-parameters are defined as follows:
-
-@table @code
-
-@item Object
-@itemx ToggleObject
-Affects the object under the mouse pointer.  If this action is invoked
-from a menu or script, the user will be prompted to click on an
-object, which is then the object affected.
-
-@item Selected
-@itemx SelectedObjects
-
-Affects all objects which are currently selected.  At least, all
-selected objects for which the given action makes sense.
-
-@item SelectedPins
-@itemx SelectedVias
-@itemx Selected@var{Type}
-@itemx @i{etc}
-Affects all objects which are both selected and of the @var{Type} specified.
-
-@end table
-
-
-@menu
-* core actions::
-* common actions::
-* gtk actions::
-* lesstif actions::
-@end menu
-
-@node core actions
-@section Core actions
-@menu
-* AddRats Action:: Add one or more rat lines to the board.
-* ApplyVendor Action:: Applies the currently loaded vendor drill table to the current design.
-* Atomic Action:: Save or restore the undo serial number.
-* AutoPlaceSelected Action:: Auto-place selected components.
-* AutoRoute Action:: Auto-route some or all rat lines.
-* ChangeClearSize Action:: Changes the clearance size of objects.
-* ChangeDrillSize Action:: Changes the drilling hole size of objects.
-* ChangeFlag Action:: Sets or clears flags on objects.
-* ChangeHole Action:: Changes the hole flag of objects.
-* ChangeJoin Action:: Changes the join (clearance through polygons) of objects.
-* ChangeName Action:: Sets the name of objects.
-* ChangeOctagon Action:: Changes the octagon-flag of pins and vias.
-* ChangePaste Action:: Changes the no paste flag of objects.
-* ChangePinName Action:: Sets the name of a specific pin on a specific element.
-* ChangeSize Action:: Changes the size of objects.
-* ChangeSquare Action:: Changes the square flag of pins and pads.
-* ClearOctagon Action:: Clears the octagon-flag of pins and vias.
-* ClearSquare Action:: Clears the square-flag of pins and pads.
-* ClrFlag Action:: Clears flags on objects.
-* Connection Action:: Searches connections of the object at the cursor position.
-* Delete Action:: Delete stuff.
-* DeleteRats Action:: Delete rat lines.
-* DisableVendor Action:: Disables automatic drill size mapping.
-* DisperseElements Action:: Disperses elements.
-* Display Action:: Several display-related actions.
-* djopt Action:: Perform various optimizations on the current board
-* DRC Action:: Invoke the DRC check.
-* DumpLibrary Action:: Display the entire contents of the libraries.
-* EnableVendor Action:: Enables automatic drill size mapping.
-* ExecuteFile Action:: Run actions from the given file.
-* Flip Action:: Flip an element to the opposite side of the board.
-* FontEdit Action:: Convert the current font to a PCB for editing
-* FontSave Action:: Convert the current PCB back to a font
-* GlobalPuller Action:: Pull all traces tight.
-* h Action:: Print a help message for commands.
-* l Action:: Loads layout data.
-* le Action:: Loads an element into the current buffer.
-* LoadFrom Action:: Load layout data from a file.
-* LoadVendorFrom Action:: Loads the specified vendor resource file.
-* m Action:: Loads a layout into the current buffer.
-* MarkCrosshair Action:: Set/Reset the Crosshair mark
-* Message Action:: Writes a message to the log window.
-* MinMaskGap Action:: Ensures the mask is a minimum distance from pins and pads.
-* Mode Action:: Change or use the tool mode.
-* MorphPolygon Action:: Converts dead polygon islands into separate polygons.
-* MoveLayer Action:: Moves/Creates/Deletes Layers
-* MoveObject Action:: Moves the object under the crosshair.
-* MoveToCurrentLayer Action:: Moves objects to the current layer.
-* Netlist Action:: Perform various actions on netlists.
-* New Action:: Starts a new layout.
-* OptAutoOnly Action:: Toggles the optimize-only-autorouted flag.
-* PasteBuffer Action:: Various operations on the paste buffer.
-* Polygon Action:: Some polygon related stuff.
-* Puller Action:: Pull an arc-line junction tight.
-* q Action:: Quits the application after confirming.
-* q! Action:: Quits the application without confirming.
-* Quit Action:: Quits the application after confirming.
-* Redo Action:: Redo recent``undo''operations.
-* RemoveSelected Action:: Removes any selected objects.
-* Renumber Action:: Renumber all elements.  The changes will be recorded to filename
-for use in backannotating these changes to the schematic.
-* Report Action:: Produce various report.
-* ReportDialog Action:: Report on the object under the crosshair
-* RipUp Action:: Ripup auto-routed tracks, or convert an element to parts.
-* rn Action:: Reads netlist.
-* RouteStyle Action:: Copies the indicated routing style into the current sizes.
-* s Action:: Saves layout data.
-* SaveSettings Action:: Saves settings.
-* SaveTo Action:: Saves data to a file.
-* Select Action:: Toggles or sets the selection
-* SetFlag Action:: Sets flags on objects.
-* SetOctagon Action:: Sets the octagon-flag of objects.
-* SetSame Action:: Sets current layer and sizes to match indicated item.
-* SetSquare Action:: sets the square-flag of objects.
-* SetThermal Action:: Set the thermal (on the current layer) of pins or vias to the given style.
-Style = 0 means no thermal.
-Style = 1 has diagonal fingers with sharp edges.
-Style = 2 has horizontal and vertical fingers with sharp edges.
-Style = 3 is a solid connection to the plane.Style = 4 has diagonal fingers with rounded edges.
-Style = 5 has horizontal and vertical fingers with rounded edges.
-
-* SetValue Action:: Change various board-wide values and sizes.
-* ToggleHideName Action:: Toggles the visibility of element names.
-* ToggleVendor Action:: Toggles the state of automatic drill size mapping.
-* Undo Action:: Undo recent changes.
-* UnloadVendor Action:: Unloads the current vendor drill mapping table.
-* Unselect Action:: unselects the object at the pointer location or the specified objects
-* w Action:: Saves layout data.
-* wq Action:: Saves the layout data and quits.
-@end menu
-@node AddRats Action
-@subsection AddRats
-@c key AddRats in hid 
-@cartouche
-@format
-AddRats(AllRats|SelectedRats|Close)@end format
-@end cartouche
-
-Add one or more rat lines to the board.
-@c ./../src/action.c 3194
-
-@table @code
-
-@item AllRats
-Create rat lines for all loaded nets that aren't already connected on
-with copper.
-
-@item SelectedRats
-Similarly, but only add rat lines for nets connected to selected pins
-and pads.
-
-@item Close
-Selects the shortest unselected rat on the board.
-
-@end table
-
-
-@node ApplyVendor Action
-@subsection ApplyVendor
-@c key ApplyVendor in hid 
-@cartouche
-@format
-ApplyVendor()@end format
-@end cartouche
-
-Applies the currently loaded vendor drill table to the current design.
-@c ./../src/vendor.c 112
-@cindex vendor map 
-@cindex vendor drill table
-@findex ApplyVendor()
-
-This will modify all of your drill holes to match the list of allowed
-sizes for your vendor.
-
-@node Atomic Action
-@subsection Atomic
-@c key Atomic in hid 
-@cartouche
-@format
-Atomic(Save|Restore|Close|Block)@end format
-@end cartouche
-
-Save or restore the undo serial number.
-@c ./../src/action.c 1605
-
-This action allows making multiple-action bindings into an atomic
-operation that will be undone by a single Undo command.  For example,
-to optimize rat lines, you'd delete the rats and re-add them.  To
-group these into a single undo, you'd want the deletions and the
-additions to have the same undo serial number.  So, you @code{Save},
-delete the rats, @code{Restore}, add the rats - using the same serial
-number as the deletes, then @code{Block}, which checks to see if the
-deletions or additions actually did anything.  If not, the serial
-number is set to the saved number, as there's nothing to undo.  If
-something did happen, the serial number is incremented so that these
-actions are counted as a single undo step.
-
-@table @code
-
-@item Save
-Saves the undo serial number.
-
-@item Restore
-Returns it to the last saved number.
-
-@item Close
-Sets it to 1 greater than the last save.
-
-@item Block
-Does a Restore if there was nothing to undo, else does a Close.
-
-@end table
-
-
-@node AutoPlaceSelected Action
-@subsection AutoPlaceSelected
-@c key AutoPlaceSelected in hid 
-@cartouche
-@format
-AutoPlaceSelected()@end format
-@end cartouche
-
-Auto-place selected components.
-@c ./../src/action.c 3341
-
-Attempts to re-arrange the selected components such that the nets
-connecting them are minimized.  Note that you cannot undo this.
-
-
-@node AutoRoute Action
-@subsection AutoRoute
-@c key AutoRoute in hid 
-@cartouche
-@format
-AutoRoute(AllRats|SelectedRats)@end format
-@end cartouche
-
-Auto-route some or all rat lines.
-@c ./../src/action.c 3364
-
-@table @code
-
-@item AllRats
-Attempt to autoroute all rats.
-
-@item SelectedRats
-Attempt to autoroute the selected rats.
-
-@end table
-
-Before autorouting, it's important to set up a few things.  First,
-make sure any layers you aren't using are disabled, else the
-autorouter may use them.  Next, make sure the current line and via
-styles are set accordingly.  Last, make sure "new lines clear
-polygons" is set, in case you eventually want to add a copper pour.
-
-Autorouting takes a while.  During this time, the program may not be
-responsive.
-
-
-@node ChangeClearSize Action
-@subsection ChangeClearSize
-@c key ChangeClearSize in hid 
-@cartouche
-@format
-ChangeClearSize(Object, delta)
-ChangeClearSize(SelectedPins|SelectedPads|SelectedVias, delta)
-ChangeClearSize(SelectedLines|SelectedArcs, delta
-ChangeClearSize(Selected|SelectedObjects, delta)@end format
-@end cartouche
-
-Changes the clearance size of objects.
-@c ./../src/action.c 3582
-
-If the solder mask is currently showing, this action changes the
-solder mask clearance.  If the mask is not showing, this action
-changes the polygon clearance.
-
-
-@node ChangeDrillSize Action
-@subsection ChangeDrillSize
-@c key ChangeDrillSize in hid 
-@cartouche
-@format
-ChangeDrillSize(Object, delta)
-ChangeDrillSize(SelectedPins|SelectedVias|Selected|SelectedObjects, delta)@end format
-@end cartouche
-
-Changes the drilling hole size of objects.
-@c ./../src/action.c 3524
-
-
-@node ChangeFlag Action
-@subsection ChangeFlag
-@c key ChangeFlag in hid 
-@cartouche
-@format
-ChangeFlag(Object|Selected|SelectedObjects, flag, value)
-ChangeFlag(SelectedLines|SelectedPins|SelectedVias, flag, value)
-ChangeFlag(SelectedPads|SelectedTexts|SelectedNames, flag, value)
-ChangeFlag(SelectedElements, flag, value)
-flag = square | octagon | thermal | join
-"``value = 0 | 1@end format
-@end cartouche
-
-Sets or clears flags on objects.
-@c ./../src/action.c 5561
-
-Toggles the given flag on the indicated object(s).  The flag may be
-one of the flags listed above (square, octagon, thermal, join).  The
-value may be the number 0 or 1.  If the value is 0, the flag is
-cleared.  If the value is 1, the flag is set.
-
-
-@node ChangeHole Action
-@subsection ChangeHole
-@c key ChangeHole in hid 
-@cartouche
-@format
-ChangeHole(ToggleObject|Object|SelectedVias|Selected)@end format
-@end cartouche
-
-Changes the hole flag of objects.
-@c ./../src/action.c 4385
-
-The "hole flag" of a via determines whether the via is a
-plated-through hole (not set), or an unplated hole (set).
-
-
-@node ChangeJoin Action
-@subsection ChangeJoin
-@c key ChangeJoin in hid 
-@cartouche
-@format
-ChangeJoin(ToggleObject|SelectedLines|SelectedArcs|Selected)@end format
-@end cartouche
-
-Changes the join (clearance through polygons) of objects.
-@c ./../src/action.c 3999
-
-The join flag determines whether a line or arc, drawn to intersect a
-polygon, electrically connects to the polygon or not.  When joined,
-the line/arc is simply drawn over the polygon, making an electrical
-connection.  When not joined, a gap is drawn between the line and the
-polygon, insulating them from each other.
-
-
-@node ChangeName Action
-@subsection ChangeName
-@c key ChangeName in hid 
-@cartouche
-@format
-ChangeName(Object)
-"``ChangeName(Layout|Layer)@end format
-@end cartouche
-
-Sets the name of objects.
-@c ./../src/action.c 3802
-
-@table @code
-
-@item Object
-Changes the name of the element under the cursor.
-
-@item Layout
-Changes the name of the layout.  This is printed on the fab drawings.
-
-@item Layer
-Changes the name of the currently active layer.
-
-@end table
-
-
-@node ChangeOctagon Action
-@subsection ChangeOctagon
-@c key ChangeOctagon in hid 
-@cartouche
-@format
-ChangeOctagon(Object|ToggleObject|SelectedObjects|Selected)
-ChangeOctagon(SelectedElements|SelectedPins|SelectedVias)@end format
-@end cartouche
-
-Changes the octagon-flag of pins and vias.
-@c ./../src/action.c 4211
-
-@pinshapes
-
-
-@node ChangePaste Action
-@subsection ChangePaste
-@c key ChangePaste in hid 
-@cartouche
-@format
-ChangePaste(ToggleObject|Object|SelectedPads|Selected)@end format
-@end cartouche
-
-Changes the no paste flag of objects.
-@c ./../src/action.c 4427
-
-The "no paste flag" of a pad determines whether the solderpaste
- stencil will have an opening for the pad (no set) or if there wil be
- no solderpaste on the pad (set).  This is used for things such as
- fiducial pads.
-
-
-@node ChangePinName Action
-@subsection ChangePinName
-@c key ChangePinName in hid 
-@cartouche
-@format
-ChangePinName(ElementName,PinNumber,PinName)@end format
-@end cartouche
-
-Sets the name of a specific pin on a specific element.
-@c ./../src/action.c 3726
-
-This can be especially useful for annotating pin names from a
-schematic to the layout without requiring knowledge of the pcb file
-format.
-
-@example
-ChangePinName(U3, 7, VCC)
-@end example
-
-
-@node ChangeSize Action
-@subsection ChangeSize
-@c key ChangeSize in hid 
-@cartouche
-@format
-ChangeSize(Object, delta)
-ChangeSize(SelectedObjects|Selected, delta)
-ChangeSize(SelectedLines|SelectedPins|SelectedVias, delta)
-ChangeSize(SelectedPads|SelectedTexts|SelectedNames, delta)
-ChangeSize(SelectedElements, delta)@end format
-@end cartouche
-
-Changes the size of objects.
-@c ./../src/action.c 3435
-
-For lines and arcs, this changes the width.  For pins and vias, this
-changes the overall diameter of the copper annulus.  For pads, this
-changes the width and, indirectly, the length.  For texts and names,
-this changes the scaling factor.  For elements, this changes the width
-of the silk layer lines and arcs for this element.
-
-
-@node ChangeSquare Action
-@subsection ChangeSquare
-@c key ChangeSquare in hid 
-@cartouche
-@format
-ChangeSquare(ToggleObject)
-ChangeSquare(SelectedElements|SelectedPins)
-ChangeSquare(Selected|SelectedObjects)@end format
-@end cartouche
-
-Changes the square flag of pins and pads.
-@c ./../src/action.c 4052
-
-Note that @code{Pins} means both pins and pads.
-
-@pinshapes
-
-
-@node ClearOctagon Action
-@subsection ClearOctagon
-@c key ClearOctagon in hid 
-@cartouche
-@format
-ClearOctagon(ToggleObject|Object|SelectedObjects|Selected)
-ClearOctagon(SelectedElements|SelectedPins|SelectedVias)@end format
-@end cartouche
-
-Clears the octagon-flag of pins and vias.
-@c ./../src/action.c 4327
-
-@pinshapes
-
-
-@node ClearSquare Action
-@subsection ClearSquare
-@c key ClearSquare in hid 
-@cartouche
-@format
-ClearSquare(ToggleObject|SelectedElements|SelectedPins)@end format
-@end cartouche
-
-Clears the square-flag of pins and pads.
-@c ./../src/action.c 4158
-
-Note that @code{Pins} means pins and pads.
-
-@pinshapes
-
-
-@node ClrFlag Action
-@subsection ClrFlag
-@c key ClrFlag in hid 
-@cartouche
-@format
-ClrFlag(Object|Selected|SelectedObjects, flag)
-ClrFlag(SelectedLines|SelectedPins|SelectedVias, flag)
-ClrFlag(SelectedPads|SelectedTexts|SelectedNames, flag)
-ClrFlag(SelectedElements, flag)
-flag = square | octagon | thermal | join@end format
-@end cartouche
-
-Clears flags on objects.
-@c ./../src/action.c 5544
-
-Turns the given flag off, regardless of its previous setting.  See
-@code{ChangeFlag}.
-
-@example
-ClrFlag(SelectedLines,join)
-@end example
-
-
-@node Connection Action
-@subsection Connection
-@c key Connection in hid 
-@cartouche
-@format
-Connection(Find|ResetLinesAndPolygons|ResetPinsAndVias|Reset)@end format
-@end cartouche
-
-Searches connections of the object at the cursor position.
-@c ./../src/action.c 2025
-
-Connections found with this action will be highlighted in the
-``connected-color'' color and will have the ``found'' flag set.
-
-@table @code
-
-@item Find
-The net under the cursor is ``found''.
-
-@item ResetLinesAndPolygons
-Any ``found'' lines and polygons are marked ``not found''.
-
-@item ResetPinsAndVias
-Any ``found'' pins and vias are marked ``not found''.
-
-@item Reset
-All ``found'' objects are marked ``not found''.
-
-@item Measure
-The net under the cursor is found and measured (the lengths of all
-line segments are added together)
-
-@end table
-
-
-@node Delete Action
-@subsection Delete
-@c key Delete in hid 
-@cartouche
-@format
-Delete(Object|Selected)
-Delete(AllRats|SelectedRats)  ;@end format
-@end cartouche
-
-Delete stuff.
-@c ./../src/action.c 3258
-
-
-@node DeleteRats Action
-@subsection DeleteRats
-@c key DeleteRats in hid 
-@cartouche
-@format
-DeleteRats(AllRats|Selected|SelectedRats)@end format
-@end cartouche
-
-Delete rat lines.
-@c ./../src/action.c 3307
-
-
-@node DisableVendor Action
-@subsection DisableVendor
-@c key DisableVendor in hid 
-@cartouche
-@format
-DisableVendor()@end format
-@end cartouche
-
-Disables automatic drill size mapping.
-@c ./../src/vendor.c 161
-
-@cindex vendor map 
-@cindex vendor drill table
-@findex DisableVendor()
-
-When drill mapping is enabled, new instances of pins and vias will
-have their drill holes mapped to one of the allowed drill sizes
-specified in the currently loaded vendor drill table.
-
-
-@node DisperseElements Action
-@subsection DisperseElements
-@c key DisperseElements in hid 
-@cartouche
-@format
-DisperseElements(All|Selected)@end format
-@end cartouche
-
-Disperses elements.
-@c ./../src/action.c 2071
-
-Normally this is used when starting a board, by selecting all elements
-and then dispersing them.  This scatters the elements around the board
-so that you can pick individual ones, rather than have all the
-elements at the same 0,0 coordinate and thus impossible to choose
-from.
-
-
-@node Display Action
-@subsection Display
-@c key Display in hid 
-@cartouche
-@format
-Display(NameOnPCB|Description|Value)
-Display(Grid|Redraw)
-Display(CycleClip|CycleCrosshair|Toggle45Degree|ToggleStartDirection)
-Display(ToggleGrid|ToggleRubberBandMode|ToggleUniqueNames)
-Display(ToggleMask|ToggleName|ToggleClearLine|ToggleFullPoly|ToggleSnapPin)
-Display(ToggleThindraw|ToggleThindrawPoly|ToggleOrthoMove|ToggleLocalRef)
-Display(ToggleCheckPlanes|ToggleShowDRC|ToggleAutoDRC)
-Display(ToggleLiveRoute|LockNames|OnlyNames)
-Display(Pinout|PinOrPadName)
-"``Display(Scroll, Direction)@end format
-@end cartouche
-
-Several display-related actions.
-@c ./../src/action.c 2189
-
-@table @code
-
-@item NameOnPCB
-@item Description
-@item Value
-Specify whether all elements show their name, description, or value.
-
-@item Redraw
-Redraw the whole board.
-
-@item Toggle45Degree
-When clear, lines can be drawn at any angle.  When set, lines are
-restricted to multiples of 45 degrees and requested lines may be
-broken up according to the clip setting.
-
-@item CycleClip
-Changes the way lines are restricted to 45 degree increments.  The
-various settings are: straight only, orthogonal then angled, and angled
-then orthogonal.  If AllDirections is set, this action disables it.
-
-@item CycleCrosshair
-Changes crosshair drawing.  Crosshair may accept form of 4-ray,
-8-ray and 12-ray cross.
-
-@item ToggleRubberBandMode
-If set, moving an object moves all the lines attached to it too.
-
-@item ToggleStartDirection
-If set, each time you set a point in a line, the Clip toggles between
-orth-angle and angle-ortho.
-
-@item ToggleUniqueNames
-If set, you will not be permitted to change the name of an element to
-match that of another element.
-
-@item ToggleSnapPin
-If set, pin centers and pad end points are treated as additional grid
-points that the cursor can snap to.
-
-@item ToggleLocalRef
-If set, the mark is automatically set to the beginning of any move, so
-you can see the relative distance you've moved.
-
-@item ToggleThindraw
-If set, objects on the screen are drawn as outlines (lines are drawn
-as center-lines).  This lets you see line endpoints hidden under pins,
-for example.
-
-@item ToggleThindrawPoly
-If set, polygons on the screen are drawn as outlines.
-
-@item ToggleShowDRC
-If set, pending objects (i.e. lines you're in the process of drawing)
-will be drawn with an outline showing how far away from other copper
-you need to be.
-
-@item ToggleLiveRoute
-If set, the progress of the autorouter will be visible on the screen.
-
-@item ToggleAutoDRC
-If set, you will not be permitted to make connections which violate
-the current DRC and netlist settings.
-
-@item ToggleCheckPlanes
-If set, lines and arcs aren't drawn, which usually leaves just the
-polygons.  If you also disable all but the layer you're interested in,
-this allows you to check for isolated regions.
-
-@item ToggleOrthoMove
-If set, the crosshair is only allowed to move orthogonally from its
-previous position.  I.e. you can move an element or line up, down,
-left, or right, but not up+left or down+right.
-
-@item ToggleName
-Selects whether the pinouts show the pin names or the pin numbers.
-
-@item ToggleMask
-Turns the solder mask on or off.
-
-@item ToggleClearLine
-When set, the clear-line flag causes new lines and arcs to have their
-``clear polygons'' flag set, so they won't be electrically connected
-to any polygons they overlap.
-
-@item ToggleFullPoly
-When set, the full-poly flag causes new polygons to have their
-``full polygon'' flag set, so all parts of them will be displayed
-instead of only the biggest one.
-
-@item ToggleGrid
-Resets the origin of the current grid to be wherever the mouse pointer
-is (not where the crosshair currently is).  If you provide two numbers
-after this, the origin is set to that coordinate.  The numbers are in
-PCB internal units, currently 1/100 mil.
-
-@item Grid
-Toggles whether the grid is displayed or not.
-
-@item Pinout
-Causes the pinout of the element indicated by the cursor to be
-displayed, usually in a separate window.
-
-@item PinOrPadName
-Toggles whether the names of pins, pads, or (yes) vias will be
-displayed.  If the cursor is over an element, all of its pins and pads
-are affected.
-
-@item Step <direction> <amount> <units>
-Steps the crosshair in the given direction, with 1=down/left, 2=down,
-etc, according to the numeric keypad layout.  If amount is not given,
-the crosshair steps along the grid.
-
-@end table
-
-
-@node djopt Action
-@subsection djopt
-@c key djopt in hid 
-@cartouche
-@format
-djopt(debumpify|unjaggy|simple|vianudge|viatrim|orthopull)
-djopt(auto) - all of the above
-"``djopt(miter)@end format
-@end cartouche
-
-Perform various optimizations on the current board
-@c ./../src/djopt.c 2878
-
-The different types of optimizations change your board in order to
-reduce the total trace length and via count.
-
-@table @code
-
-@item debumpify
-Looks for U-shaped traces that can be shortened or eliminated.
-
-@item unjaggy
-Looks for corners which could be flipped to eliminate one or more
-corners (i.e. jaggy lines become simpler).
-
-@item simple
-Removing uneeded vias, replacing two or more trace segments in a row
-with a single segment.  This is usually performed automatically after
-other optimizations.
-
-@item vianudge
-Looks for vias where all traces leave in the same direction.  Tries to
-move via in that direction to eliminate one of the traces (and thus a
-corner).
-
-@item viatrim
-Looks for traces that go from via to via, where moving that trace to a
-different layer eliminates one or both vias.
-
-@item orthopull
-Looks for chains of traces all going in one direction, with more
-traces orthogonal on one side than on the other.  Moves the chain in
-that direction, causing a net reduction in trace length, possibly
-eliminating traces and/or corners.
-
-@item splitlines
-Looks for lines that pass through vias, pins, or pads, and splits them
-into separate lines so they can be managed separately.
-
-@item auto
-Performs the above options, repeating until no further optimizations
-can be made.
-
-@item miter
-Replaces 90 degree corners with a pair of 45 degree corners, to reduce
-RF losses and trace length.
-
-@end table
-
-
-@node DRC Action
-@subsection DRC
-@c key DRC in hid 
-@cartouche
-@format
-DRC()@end format
-@end cartouche
-
-Invoke the DRC check.
-@c ./../src/action.c 1640
-
-Note that the design rule check uses the current board rule settings,
-not the current style settings.
-
-
-@node DumpLibrary Action
-@subsection DumpLibrary
-@c key DumpLibrary in hid 
-@cartouche
-@format
-DumpLibrary()@end format
-@end cartouche
-
-Display the entire contents of the libraries.
-@c ./../src/action.c 1674
-
-
-
-@node EnableVendor Action
-@subsection EnableVendor
-@c key EnableVendor in hid 
-@cartouche
-@format
-EnableVendor()@end format
-@end cartouche
-
-Enables automatic drill size mapping.
-@c ./../src/vendor.c 146
-
-@cindex vendor map 
-@cindex vendor drill table
-@findex EnableVendor()
-
-When drill mapping is enabled, new instances of pins and vias will
-have their drill holes mapped to one of the allowed drill sizes
-specified in the currently loaded vendor drill table.  To enable drill
-mapping, a vendor resource file containing a drill table must be
-loaded first.
-
-
-@node ExecuteFile Action
-@subsection ExecuteFile
-@c key ExecuteFile in hid 
-@cartouche
-@format
-ExecuteFile(filename)@end format
-@end cartouche
-
-Run actions from the given file.
-@c ./../src/action.c 5675
-
-Lines starting with @code{#} are ignored.
-
-
-@node Flip Action
-@subsection Flip
-@c key Flip in hid 
-@cartouche
-@format
-Flip(Object|Selected|SelectedElements)@end format
-@end cartouche
-
-Flip an element to the opposite side of the board.
-@c ./../src/action.c 1724
-
-Note that the location of the element will be symmetric about the
-cursor location; i.e. if the part you are pointing at will still be at
-the same spot once the element is on the other side.  When flipping
-multiple elements, this retains their positions relative to each
-other, not their absolute positions on the board.
-
-
-@node FontEdit Action
-@subsection FontEdit
-@c key FontEdit in hid 
-@cartouche
-@format
-FontEdit()@end format
-@end cartouche
-
-Convert the current font to a PCB for editing
-@c ./../src/fontmode.c 72
-
-
-@node FontSave Action
-@subsection FontSave
-@c key FontSave in hid 
-@cartouche
-@format
-FontSave()@end format
-@end cartouche
-
-Convert the current PCB back to a font
-@c ./../src/fontmode.c 163
-
-
-@node GlobalPuller Action
-@subsection GlobalPuller
-@c key GlobalPuller in hid 
-@cartouche
-@format
-GlobalPuller()@end format
-@end cartouche
-
-Pull all traces tight.
-@c ./../src/puller.c 538
-
-
-@node h Action
-@subsection h
-@c key h in hid 
-@cartouche
-@format
-h@end format
-@end cartouche
-
-Print a help message for commands.
-@c ./../src/command.c 72
-
-@colonaction
-
-
-@node l Action
-@subsection l
-@c key l in hid 
-@cartouche
-@format
-l [name]@end format
-@end cartouche
-
-Loads layout data.
-@c ./../src/command.c 99
-
-Loads a new datafile (layout) and, if confirmed, overwrites any
-existing unsaved data.  The filename and the searchpath
-(@emph{filePath}) are passed to the command defined by
-@emph{fileCommand}.  If no filename is specified a file select box
-will popup.
-
-@colonaction
-
-
-@node le Action
-@subsection le
-@c key le in hid 
-@cartouche
-@format
-le [name]@end format
-@end cartouche
-
-Loads an element into the current buffer.
-@c ./../src/command.c 129
-
-The filename and the searchpath (@emph{elementPath}) are passed to the
-command defined by @emph{elementCommand}.  If no filename is specified
-a file select box will popup.
-
-@colonaction
-
-
-@node LoadFrom Action
-@subsection LoadFrom
-@c key LoadFrom in hid 
-@cartouche
-@format
-LoadFrom(Layout|LayoutToBuffer|ElementToBuffer|Netlist|Revert,filename)@end format
-@end cartouche
-
-Load layout data from a file.
-@c ./../src/action.c 4839
-
-This action assumes you know what the filename is.  The various GUIs
-should have a similar @code{Load} action where the filename is
-optional, and will provide their own file selection mechanism to let
-you choose the file name.
-
-@table @code
-
-@item Layout
-Loads an entire PCB layout, replacing the current one.
-
-@item LayoutToBuffer
-Loads an entire PCB layout to the paste buffer.
-
-@item ElementToBuffer
-Loads the given element file into the paste buffer.  Element files
-contain only a single @code{Element} definition, such as the
-``newlib'' library uses.
-
-@item Netlist
-Loads a new netlist, replacing any current netlist.
-
-@item Revert
-Re-loads the current layout from its disk file, reverting any changes
-you may have made.
-
-@end table
-
-
-@node LoadVendorFrom Action
-@subsection LoadVendorFrom
-@c key LoadVendorFrom in hid 
-@cartouche
-@format
-LoadVendorFrom(filename)@end format
-@end cartouche
-
-Loads the specified vendor resource file.
-@c ./../src/vendor.c 201
-
-@cindex vendor map 
-@cindex vendor drill table
-@findex LoadVendorFrom()
-
-@table @var
-@item filename
-Name of the vendor resource file.  If not specified, the user will
-be prompted to enter one.
-@end table
-
-
-@node m Action
-@subsection m
-@c key m in hid 
-@cartouche
-@format
-m [name]@end format
-@end cartouche
-
-Loads a layout into the current buffer.
-@c ./../src/command.c 157
-
-The filename and the searchpath (@emph{filePath}) are passed to the
-command defined by @emph{fileCommand}.
-If no filename is specified a file select box will popup.
-
-@colonaction
-
-
-@node MarkCrosshair Action
-@subsection MarkCrosshair
-@c key MarkCrosshair in hid 
-@cartouche
-@format
-MarkCrosshair()
-"``MarkCrosshair(Center)@end format
-@end cartouche
-
-Set/Reset the Crosshair mark
-@c ./../src/action.c 3397
-
-The ``mark'' is a small X-shaped target on the display which is
-treated like a second origin (the normal origin is the upper let
-corner of the board).  The GUI will display a second set of
-coordinates for this mark, which tells you how far you are from it.
-
-If no argument is given, the mark is toggled - disabled if it was
-enabled, or enabled at the current cursor position of disabled.  If
-the @code{Center} argument is given, the mark is moved to the current
-cursor location.
-
-
-@node Message Action
-@subsection Message
-@c key Message in hid 
-@cartouche
-@format
-Message(message)@end format
-@end cartouche
-
-Writes a message to the log window.
-@c ./../src/action.c 1771
-
-This action displays a message to the log window.  This action is primarily
-provided for use by other programs which may interface with PCB.  If
-multiple arguments are given, each one is sent to the log window
-followed by a newline.
-
-
-@node MinMaskGap Action
-@subsection MinMaskGap
-@c key MinMaskGap in hid 
-@cartouche
-@format
-MinMaskGap(delta)
-"``MinMaskGap(Selected, delta)@end format
-@end cartouche
-
-Ensures the mask is a minimum distance from pins and pads.
-@c ./../src/action.c 3650
-
-Checks all specified pins and/or pads, and increases the mask if
-needed to ensure a minimum distance between the pin or pad edge and
-the mask edge.
-
-
-@node Mode Action
-@subsection Mode
-@c key Mode in hid 
-@cartouche
-@format
-Mode(Arc|Arrow|Copy|InsertPoint|Line|Lock|Move|None|PasteBuffer)
-Mode(Polygon|Rectangle|Remove|Rotate|Text|Thermal|Via)
-Mode(Notify|Release|Cancel|Stroke)
-"``Mode(Save|Restore)@end format
-@end cartouche
-
-Change or use the tool mode.
-@c ./../src/action.c 2513
-
-@table @code
-
-@item Arc
-@itemx Arrow
-@itemx Copy
-@itemx InsertPoint
-@itemx Line
-@itemx Lock
-@itemx Move
-@itemx None
-@itemx PasteBuffer
-@itemx Polygon
-@itemx Rectangle
-@itemx Remove
-@itemx Rotate
-@itemx Text
-@itemx Thermal
-@itemx Via
-Select the indicated tool.
-
-@item Notify
-Called when you press the mouse button, or move the mouse.
-
-@item Release
-Called when you release the mouse button.
-
-@item Cancel
-Cancels any pending tool activity, allowing you to restart elsewhere.
-For example, this allows you to start a new line rather than attach a
-line to the previous line.
-
-@item Escape
-Similar to Cancel but calling this action a second time will return
-to the Arrow tool.
-
-@item Stroke
-If your @code{pcb} was built with libstroke, this invokes the stroke
-input method.  If not, this will restart a drawing mode if you were
-drawing, else it will select objects.
-
-@item Save
-Remembers the current tool.
-
-@item Restore
-Restores the tool to the last saved tool.
-
-@end table
-
-
-@node MorphPolygon Action
-@subsection MorphPolygon
-@c key MorphPolygon in hid 
-@cartouche
-@format
-MorphPolygon(Object|Selected)@end format
-@end cartouche
-
-Converts dead polygon islands into separate polygons.
-@c ./../src/action.c 3884
-
-If a polygon is divided into unconnected "islands", you can use
-this command to convert the otherwise disappeared islands into
-separate polygons. Be sure the cursor is over a portion of the
-polygon that remains visible. Very small islands that may flake
-off are automatically deleted.
-
-
-@node MoveLayer Action
-@subsection MoveLayer
-@c key MoveLayer in hid 
-@cartouche
-@format
-MoveLayer(old,new)@end format
-@end cartouche
-
-Moves/Creates/Deletes Layers
-@c ./../src/move.c 1062
-
-Moves a layer, creates a new layer, or deletes a layer.
-
-@table @code
-
-@item old
-The is the layer number to act upon.  Allowed values are:
-@table @code
-
-@item c
-Currently selected layer.
-
-@item -1
-Create a new layer.
-
-@item number
-An existing layer number.
-
-@end table
-
-@item new
-Specifies where to move the layer to.  Allowed values are:
-@table @code
-@item -1
-Deletes the layer.
-
-@item up
-Moves the layer up.
-
-@item down
-Moves the layer down.
-
-@item c
-Creates a new layer.
-
-@end table
-
-@end table
-
-
-@node MoveObject Action
-@subsection MoveObject
-@c key MoveObject in hid 
-@cartouche
-@format
-MoveObject(X,Y,dim)@end format
-@end cartouche
-
-Moves the object under the crosshair.
-@c ./../src/action.c 5376
-
-The @code{X} and @code{Y} are treated like @code{delta} is for many
-other objects.  For each, if it's prefixed by @code{+} or @code{-},
-then that amount is relative.  Otherwise, it's absolute.  Units can be
-@code{mil} or @code{mm}; if unspecified, units are PCB's internal
-units, currently 1/100 mil.
-
-
-@node MoveToCurrentLayer Action
-@subsection MoveToCurrentLayer
-@c key MoveToCurrentLayer in hid 
-@cartouche
-@format
-MoveToCurrentLayer(Object|SelectedObjects)@end format
-@end cartouche
-
-Moves objects to the current layer.
-@c ./../src/action.c 5418
-
-Note that moving an element from a component layer to a solder layer,
-or from solder to component, won't automatically flip it.  Use the
-@code{Flip()} action to do that.
-
-
-@node Netlist Action
-@subsection Netlist
-@c key Netlist in hid 
-@cartouche
-@format
-Net(find|select|rats|norats[,net[,pin]])@end format
-@end cartouche
-
-Perform various actions on netlists.
-@c ./../src/netlist.c 186
-
-Each of these actions apply to a specified set of nets.  @var{net} and
-@var{pin} are patterns which match one or more nets or pins; these
-patterns may be full names or regular expressions.  If an exact match
-is found, it is the only match; if no exact match is found,
-@emph{then} the pattern is tried as a regular expression.
-
-If neither @var{net} nor @var{pin} are specified, all nets apply.  If
-@var{net} is specified but not @var{pin}, all nets matching @var{net}
-apply.  If both are specified, nets which match @var{net} and contain
-a pin matching @var{pin} apply.
-
-@table @code
-
-@item find
-Nets which apply are marked @emph{found} and are drawn in the
-@code{connected-color} color.
-
-@item select
-Nets which apply are selected.
-
-@item rats
-Nets which apply are marked as available for the rats nest.
-
-@item norats
-Nets which apply are marked as not available for the rats nest.
-
-@end table
-
-
-@node New Action
-@subsection New
-@c key New in hid 
-@cartouche
-@format
-New([name])@end format
-@end cartouche
-
-Starts a new layout.
-@c ./../src/action.c 4902
-
-If a name is not given, one is prompted for.
-
-
-@node OptAutoOnly Action
-@subsection OptAutoOnly
-@c key OptAutoOnly in hid 
-@cartouche
-@format
-OptAutoOnly()@end format
-@end cartouche
-
-Toggles the optimize-only-autorouted flag.
-@c ./../src/djopt.c 124
-
-The original purpose of the trace optimizer was to clean up the traces
-created by the various autorouters that have been used with PCB.  When
-a board has a mix of autorouted and carefully hand-routed traces, you
-don't normally want the optimizer to move your hand-routed traces.
-But, sometimes you do.  By default, the optimizer only optimizes
-autorouted traces.  This action toggles that setting, so that you can
-optimize hand-routed traces also.
-
-
-@node PasteBuffer Action
-@subsection PasteBuffer
-@c key PasteBuffer in hid 
-@cartouche
-@format
-PasteBuffer(AddSelected|Clear|1..MAX_BUFFER)
-PasteBuffer(Rotate, 1..3)
-PasteBuffer(Convert|Save|Restore|Mirror)
-PasteBuffer(ToLayout, X, Y, units)@end format
-@end cartouche
-
-Various operations on the paste buffer.
-@c ./../src/action.c 4966
-
-There are a number of paste buffers; the actual limit is a
-compile-time constant @code{MAX_BUFFER} in @file{globalconst.h}.  It
-is currently @code{5}.  One of these is the ``current'' paste buffer,
-often referred to as ``the'' paste buffer.
-
-@table @code
-
-@item AddSelected
-Copies the selected objects to the current paste buffer.
-
-@item Clear
-Remove all objects from the current paste buffer.
-
-@item Convert
-Convert the current paste buffer to an element.  Vias are converted to
-pins, lines are converted to pads.
-
-@item Restore
-Convert any elements in the paste buffer back to vias and lines.
-
-@item Mirror
-Flip all objects in the paste buffer vertically (up/down flip).  To mirror
-horizontally, combine this with rotations.
-
-@item Rotate
-Rotates the current buffer.  The number to pass is 1..3, where 1 means
-90 degrees counter clockwise, 2 means 180 degrees, and 3 means 90
-degrees clockwise (270 CCW).
-
-@item Save
-Saves any elements in the current buffer to the indicated file.
-
-@item ToLayout
-Pastes any elements in the current buffer to the indicated X, Y
-coordinates in the layout.  The @code{X} and @code{Y} are treated like
-@code{delta} is for many other objects.  For each, if it's prefixed by
-@code{+} or @code{-}, then that amount is relative to the last
-location.  Otherwise, it's absolute.  Units can be
-@code{mil} or @code{mm}; if unspecified, units are PCB's internal
-units, currently 1/100 mil.
-
-
-@item 1..MAX_BUFFER
-Selects the given buffer to be the current paste buffer.
-
-@end table
-
-
-@node Polygon Action
-@subsection Polygon
-@c key Polygon in hid 
-@cartouche
-@format
-Polygon(Close|PreviousPoint)@end format
-@end cartouche
-
-Some polygon related stuff.
-@c ./../src/action.c 5312
-
-Polygons need a special action routine to make life easier.
-
-@table @code
-
-@item Close
-Creates the final segment of the polygon.  This may fail if clipping
-to 45 degree lines is switched on, in which case a warning is issued.
-
-@item PreviousPoint
-Resets the newly entered corner to the previous one. The Undo action
-will call Polygon(PreviousPoint) when appropriate to do so.
-
-@end table
-
-
-@node Puller Action
-@subsection Puller
-@c key Puller in hid 
-@cartouche
-@format
-Puller()@end format
-@end cartouche
-
-Pull an arc-line junction tight.
-@c ./../src/puller.c 418
-
-The @code{Puller()} action is a special-purpose optimization.  When
-invoked while the crosshair is over the junction of an arc and a line,
-it will adjust the arc's angle and the connecting line's endpoint such
-that the line intersects the arc at a tangent.  In the example below,
-the left side is ``before'' with the black target marking where to put
-the crosshair:
-
-@center @image{puller,,,Example of how puller works,png}
-
-The right side is ``after'' with the black target marking where the
-arc-line intersection was moved to.
-
-
-@node q Action
-@subsection q
-@c key q in hid 
-@cartouche
-@format
-q@end format
-@end cartouche
-
-Quits the application after confirming.
-@c ./../src/command.c 185
-
-If you have unsaved changes, you will be prompted to confirm (or
-save) before quitting.
-
-@colonaction
-
-
-@node q! Action
-@subsection q!
-@c key q! in hid 
-@cartouche
-@format
-q!@end format
-@end cartouche
-
-Quits the application without confirming.
-@c ./../src/command.c 199
-
-Note that this command neither saves your data nor prompts for
-confirmation.
-
-@colonaction
-
-
-@node Quit Action
-@subsection Quit
-@c key Quit in hid 
-@cartouche
-@format
-Quit()@end format
-@end cartouche
-
-Quits the application after confirming.
-@c ./../src/action.c 2003
-
-If you have unsaved changes, you will be prompted to confirm (or
-save) before quitting.
-
-
-@node Redo Action
-@subsection Redo
-@c key Redo in hid 
-@cartouche
-@format
-Redo()@end format
-@end cartouche
-
-Redo recent``undo''operations.
-@c ./../src/action.c 5278
-
-This routine allows you to recover from the last undo command.  You
-might want to do this if you thought that undo was going to revert
-something other than what it actually did (in case you are confused
-about which operations are un-doable), or if you have been backing up
-through a long undo list and over-shoot your stopping point.  Any
-change that is made since the undo in question will trim the redo
-list.  For example if you add ten lines, then undo three of them you
-could use redo to put them back, but if you move a line on the board
-before performing the redo, you will lose the ability to "redo" the
-three "undone" lines.
-
-
-@node RemoveSelected Action
-@subsection RemoveSelected
-@c key RemoveSelected in hid 
-@cartouche
-@format
-RemoveSelected()@end format
-@end cartouche
-
-Removes any selected objects.
-@c ./../src/action.c 2720
-
-
-@node Renumber Action
-@subsection Renumber
-@c key Renumber in hid 
-@cartouche
-@format
-Renumber()
-"``Renumber(filename)@end format
-@end cartouche
-
-Renumber all elements.  The changes will be recorded to filename
-for use in backannotating these changes to the schematic.
-@c ./../src/action.c 2738
-
-
-@node Report Action
-@subsection Report
-@c key Report in hid 
-@cartouche
-@format
-Report(Object|DrillReport|FoundPins|NetLength)@end format
-@end cartouche
-
-Produce various report.
-@c ./../src/report.c 651
-
-@table @code
-
-@item Object
-The object under the crosshair will be reported, describing various
-aspects of the object.
-
-@item DrillReport
-A report summarizing the number of drill sizes used, and how many of
-each, will be produced.
-
-@item FoundPins
-A report listing all pins and pads which are marked as ``found'' will
-be produced.
-
-@item NetLength
-The name and length of the net under the crosshair will be reported to
-the message log.
-
-@end table
-
-
-@node ReportDialog Action
-@subsection ReportDialog
-@c key ReportDialog in hid 
-@cartouche
-@format
-ReportDialog()@end format
-@end cartouche
-
-Report on the object under the crosshair
-@c ./../src/report.c 116
-
-This is a shortcut for @code{Report(Object)}.
-
-
-@node RipUp Action
-@subsection RipUp
-@c key RipUp in hid 
-@cartouche
-@format
-RipUp(All|Selected|Element)@end format
-@end cartouche
-
-Ripup auto-routed tracks, or convert an element to parts.
-@c ./../src/action.c 3090
-
-@table @code
-
-@item All
-Removes all lines and vias which were created by the autorouter.
-
-@item Selected
-Removes all selected lines and vias which were created by the
-autorouter.
-
-@item Element
-Converts the element under the cursor to parts (vias and lines).  Note
-that this uses the highest numbered paste buffer.
-
-@end table
-
-
-@node rn Action
-@subsection rn
-@c key rn in hid 
-@cartouche
-@format
-rn [name]@end format
-@end cartouche
-
-Reads netlist.
-@c ./../src/command.c 214
-
-If no filename is given a file select box will pop up.  The file is
-read via the command defined by the @emph{RatCommand} resource. The
-command must send its output to @emph{stdout}.
-
-Netlists are used for generating rat's nests (see @ref{Rats Nest}) and
-for verifying the board layout (which is also accomplished by the
-@emph{Ratsnest} command).
-
-@colonaction
-
-
-@node RouteStyle Action
-@subsection RouteStyle
-@c key RouteStyle in hid 
-@cartouche
-@format
-RouteStyle(1|2|3|4)@end format
-@end cartouche
-
-Copies the indicated routing style into the current sizes.
-@c ./../src/action.c 5344
-
-
-@node s Action
-@subsection s
-@c key s in hid 
-@cartouche
-@format
-s [name]@end format
-@end cartouche
-
-Saves layout data.
-@c ./../src/command.c 244
-
-Data and the filename are passed to the command defined by the
-resource @emph{saveCommand}. It must read the layout data from
-@emph{stdin}.  If no filename is entered, either the last one is used
-again or, if it is not available, a file select box will pop up.
-
-@colonaction
-
-
-@node SaveSettings Action
-@subsection SaveSettings
-@c key SaveSettings in hid 
-@cartouche
-@format
-SaveSettings()
-"``SaveSettings(local)@end format
-@end cartouche
-
-Saves settings.
-@c ./../src/action.c 4823
-
-If you pass no arguments, the settings are stored in
-@code{$HOME/.pcb/settings}.  If you pass the word @code{local} they're
-saved in @code{./pcb.settings}.
-
-
-@node SaveTo Action
-@subsection SaveTo
-@c key SaveTo in hid 
-@cartouche
-@format
-SaveTo(Layout|LayoutAs,filename)
-SaveTo(AllConnections|AllUnusedPins|ElementConnections,filename)
-SaveTo(PasteBuffer,filename)@end format
-@end cartouche
-
-Saves data to a file.
-@c ./../src/action.c 4733
-
-@table @code
-
-@item Layout
-Saves the current layout.
-
-@item LayoutAs
-Saves the current layout, and remembers the filename used.
-
-@item AllConnections
-Save all connections to a file.
-
-@item AllUnusedPins
-List all unused pins to a file.
-
-@item ElementConnections
-Save connections to the element at the cursor to a file.
-
-@item PasteBuffer
-Save the content of the active Buffer to a file. This is the graphical way to create a footprint.
-
-@end table
-
-
-@node Select Action
-@subsection Select
-@c key Select in hid 
-@cartouche
-@format
-Select(ToggleObject)
-Select(All|Block|Connection)
-Select(ElementByName|ObjectByName|PadByName|PinByName)
-Select(ElementByName|ObjectByName|PadByName|PinByName, Name)
-Select(TextByName|ViaByName)
-Select(TextByName|ViaByName, Name)
-"``Select(Convert)@end format
-@end cartouche
-
-Toggles or sets the selection
-@c ./../src/action.c 4469
-
-@table @code
-
-@item ElementByName
-@item ObjectByName
-@item PadByName
-@item PinByName
-@item TextByName
-@item ViaByName
-
-These all rely on having a regular expression parser built into
-@code{pcb}.  If the name is not specified then the user is prompted
-for a pattern, and all objects that match the pattern and are of the
-type specified are selected.
-
-@item Object
-@item ToggleObject
-Selects the object under the cursor.
-
-@item Block
-Selects all objects in a rectangle indicated by the cursor.
-
-@item All
-Selects all objects on the board.
-
-@item Connection
-Selects all connections with the ``found'' flag set.
-
-@item Convert
-Converts the selected objects to an element.  This uses the highest
-numbered paste buffer.
-
-@end table
-
-
-@node SetFlag Action
-@subsection SetFlag
-@c key SetFlag in hid 
-@cartouche
-@format
-SetFlag(Object|Selected|SelectedObjects, flag)
-SetFlag(SelectedLines|SelectedPins|SelectedVias, flag)
-SetFlag(SelectedPads|SelectedTexts|SelectedNames, flag)
-SetFlag(SelectedElements, flag)
-flag = square | octagon | thermal | join@end format
-@end cartouche
-
-Sets flags on objects.
-@c ./../src/action.c 5527
-
-Turns the given flag on, regardless of its previous setting.  See
-@code{ChangeFlag}.
-
-@example
-SetFlag(SelectedPins,thermal)
-@end example
-
-
-@node SetOctagon Action
-@subsection SetOctagon
-@c key SetOctagon in hid 
-@cartouche
-@format
-SetOctagon(Object|ToggleObject|SelectedElements|Selected)@end format
-@end cartouche
-
-Sets the octagon-flag of objects.
-@c ./../src/action.c 4269
-
-@pinshapes
-
-
-@node SetSame Action
-@subsection SetSame
-@c key SetSame in hid 
-@cartouche
-@format
-SetSame()@end format
-@end cartouche
-
-Sets current layer and sizes to match indicated item.
-@c ./../src/action.c 5459
-
-When invoked over any line, arc, polygon, or via, this changes the
-current layer to be the layer that item is on, and changes the current
-sizes (thickness, keepaway, drill, etc) according to that item.
-
-
-@node SetSquare Action
-@subsection SetSquare
-@c key SetSquare in hid 
-@cartouche
-@format
-SetSquare(ToggleObject|SelectedElements|SelectedPins)@end format
-@end cartouche
-
-sets the square-flag of objects.
-@c ./../src/action.c 4105
-
-Note that @code{Pins} means pins and pads.
-
-@pinshapes
-
-
-@node SetThermal Action
-@subsection SetThermal
-@c key SetThermal in hid 
-@cartouche
-@format
-SetThermal(Object|SelectedPins|SelectedVias|Selected, Style)@end format
-@end cartouche
-
-Set the thermal (on the current layer) of pins or vias to the given style.
-Style = 0 means no thermal.
-Style = 1 has diagonal fingers with sharp edges.
-Style = 2 has horizontal and vertical fingers with sharp edges.
-Style = 3 is a solid connection to the plane.Style = 4 has diagonal fingers with rounded edges.
-Style = 5 has horizontal and vertical fingers with rounded edges.
-
-@c ./../src/action.c 1797
-
-This changes how/whether pins or vias connect to any rectangle or polygon
-on the current layer. The first argument can specify one object, or all
-selected pins, or all selected vias, or all selected pins and vias.
-The second argument specifies the style of connection.
-There are 5 possibilities:
-0 - no connection,
-1 - 45 degree fingers with sharp edges,
-2 - horizontal & vertical fingers with sharp edges,
-3 - solid connection,
-4 - 45 degree fingers with rounded corners,
-5 - horizontal & vertical fingers with rounded corners.
-
-Pins and Vias may have thermals whether or not there is a polygon available 
-to connect with. However, they will have no effect without the polygon.
-
-@node SetValue Action
-@subsection SetValue
-@c key SetValue in hid 
-@cartouche
-@format
-SetValue(Grid|Line|LineSize|Text|TextScale|ViaDrillingHole|Via|ViaSize, delta)@end format
-@end cartouche
-
-Change various board-wide values and sizes.
-@c ./../src/action.c 1916
-
-@table @code
-
-@item ViaDrillingHole
-Changes the diameter of the drill for new vias.
-
-@item Grid
-Sets the grid spacing.
-
-@item Line
-@item LineSize
-Changes the thickness of new lines.
-
-@item Via
-@item ViaSize
-Changes the diameter of new vias.
-
-@item Text
-@item TextScale
-Changes the size of new text.
-
-@end table
-
-
-@node ToggleHideName Action
-@subsection ToggleHideName
-@c key ToggleHideName in hid 
-@cartouche
-@format
-ToggleHideName(Object|SelectedElements)@end format
-@end cartouche
-
-Toggles the visibility of element names.
-@c ./../src/action.c 3932
-
-If names are hidden you won't see them on the screen and they will not
-appear on the silk layer when you print the layout.
-
-
-@node ToggleVendor Action
-@subsection ToggleVendor
-@c key ToggleVendor in hid 
-@cartouche
-@format
-ToggleVendor()@end format
-@end cartouche
-
-Toggles the state of automatic drill size mapping.
-@c ./../src/vendor.c 128
-
-@cindex vendor map 
-@cindex vendor drill table
-@findex ToggleVendor()
-
-When drill mapping is enabled, new instances of pins and vias will
-have their drill holes mapped to one of the allowed drill sizes
-specified in the currently loaded vendor drill table.  To enable drill
-mapping, a vendor resource file containing a drill table must be
-loaded first.
-
-
-@node Undo Action
-@subsection Undo
-@c key Undo in hid 
-@cartouche
-@format
-Undo()
-"``Undo(ClearList)@end format
-@end cartouche
-
-Undo recent changes.
-@c ./../src/action.c 5117
-
-The unlimited undo feature of @code{Pcb} allows you to recover from
-most operations that materially affect you work.  Calling
-@code{Undo()} without any parameter recovers from the last (non-undo)
-operation. @code{ClearList} is used to release the allocated
-memory. @code{ClearList} is called whenever a new layout is started or
-loaded. See also @code{Redo} and @code{Atomic}.
-
-Note that undo groups operations by serial number; changes with the
-same serial number will be undone (or redone) as a group.  See
-@code{Atomic}.
-
-
-@node UnloadVendor Action
-@subsection UnloadVendor
-@c key UnloadVendor in hid 
-@cartouche
-@format
-UnloadVendor()@end format
-@end cartouche
-
-Unloads the current vendor drill mapping table.
-@c ./../src/vendor.c 176
-
-@cindex vendor map 
-@cindex vendor drill table
-@findex UnloadVendor()
-
-
-@node Unselect Action
-@subsection Unselect
-@c key Unselect in hid 
-@cartouche
-@format
-Unselect(All|Block|Connection)
-Unselect(ElementByName|ObjectByName|PadByName|PinByName)
-Unselect(ElementByName|ObjectByName|PadByName|PinByName, Name)
-Unselect(TextByName|ViaByName)
-"``Unselect(TextByName|ViaByName, Name)
-@end format
-@end cartouche
-
-unselects the object at the pointer location or the specified objects
-@c ./../src/action.c 4619
-
-@table @code
-
-@item All
-Unselect all objects.
-
-@item Block
-Unselect all objects in a rectangle given by the cursor.
-
-@item Connection
-Unselect all connections with the ``found'' flag set.
-
-@item ElementByName
-@item ObjectByName
-@item PadByName
-@item PinByName
-@item TextByName
-@item ViaByName
-
-These all rely on having a regular expression parser built into
-@code{pcb}.  If the name is not specified then the user is prompted
-for a pattern, and all objects that match the pattern and are of the
-type specified are unselected.
-
-
-@end table
-
-
-@node w Action
-@subsection w
-@c key w in hid 
-@cartouche
-@format
-w [name]@end format
-@end cartouche
-
-Saves layout data.
-@c ./../src/command.c 250
-
-This commands has been added for the convenience of @code{vi} users
-and has the same functionality as @code{s}.
-
-@colonaction
-
-
-@node wq Action
-@subsection wq
-@c key wq in hid 
-@cartouche
-@format
-wq@end format
-@end cartouche
-
-Saves the layout data and quits.
-@c ./../src/command.c 281
-
-This command has been added for the convenience of @code{vi} users and
-has the same functionality as @code{s} combined with @code{q}.
-
-@colonaction
-
-
-@node common actions
-@section common actions
-@c ./../src/hid/common/actions.c 345
-
-@macro hidaction
-
-This is one of a number of actions which are part of the HID
-interface.  The core functions use these actions to tell the current
-GUI when to change the presented information in response to changes
-that the GUI may not know about.  The user normally does not invoke
-these directly.
-
-@end macro
-
-@menu
-* LayersChanged Action:: Tells the GUI that the layers have changed.
-* LibraryChanged Action:: Tells the GUI that the libraries have changed.
-* NetlistChanged Action:: Tells the GUI that the netlist has changed.
-* PCBChanged Action:: Tells the GUI that the whole PCB has changed.
-* RouteStylesChanged Action:: Tells the GUI that the routing styles have changed.
-@end menu
-@node LayersChanged Action
-@subsection LayersChanged
-@c key LayersChanged in hid common
-@cartouche
-@format
-LayersChanged()@end format
-@end cartouche
-
-Tells the GUI that the layers have changed.
-@c ./../src/hid/common/actions.c 366
-
-This includes layer names, colors, stacking order, visibility, etc.
-
-@hidaction
-
-
-@node LibraryChanged Action
-@subsection LibraryChanged
-@c key LibraryChanged in hid common
-@cartouche
-@format
-LibraryChanged()@end format
-@end cartouche
-
-Tells the GUI that the libraries have changed.
-@c ./../src/hid/common/actions.c 371
-
-@hidaction
-
-
-@node NetlistChanged Action
-@subsection NetlistChanged
-@c key NetlistChanged in hid common
-@cartouche
-@format
-NetlistChanged()@end format
-@end cartouche
-
-Tells the GUI that the netlist has changed.
-@c ./../src/hid/common/actions.c 361
-
-@hidaction
-
-
-@node PCBChanged Action
-@subsection PCBChanged
-@c key PCBChanged in hid common
-@cartouche
-@format
-PCBChanged()@end format
-@end cartouche
-
-Tells the GUI that the whole PCB has changed.
-@c ./../src/hid/common/actions.c 351
-
-@hidaction
-
-
-@node RouteStylesChanged Action
-@subsection RouteStylesChanged
-@c key RouteStylesChanged in hid common
-@cartouche
-@format
-RouteStylesChanged()@end format
-@end cartouche
-
-Tells the GUI that the routing styles have changed.
-@c ./../src/hid/common/actions.c 356
-
-@hidaction
-
-
-@node gtk actions
-@section gtk actions
-@menu
-* gtk About Action:: Tell the user about this version of PCB.
-* gtk AdjustStyle Action:: Open the window which allows editing of the route styles
-* gtk Center Action:: Moves the pointer to the center of the window.
-* gtk Cursor Action:: Move the cursor.
-* gtk DoWindows Action:: Open various GUI windows.
-* gtk EditLayerGroups Action:: Open the preferences window which allows editing of the layer groups
-* gtk GetXY Action:: Get a coordinate.
-* gtk Popup Action:: Bring up the popup menu specified by @code{MenuName}.
-If called by a mouse event then the mouse button number
-must be specified as the optional second argument.
-* gtk Print Action:: Print the layout.
-* gtk PrintCalibrate Action:: Calibrate the printer.
-* gtk Save Action:: Save layout and/or element data to a user-selected file.
-* gtk SelectLayer Action:: Select which layer is the current layer.
-* gtk SetUnits Action:: Set the default measurement units.
-* gtk SwapSides Action:: Swaps the side of the board you're looking at.
-* gtk ToggleView Action:: Toggle the visibility of the specified layer or layer group.
-* gtk Zoom Action:: Various zoom factor changes.
-@end menu
-@node gtk About Action
-@subsection gtk About
-@c key gtk About in hid gtk
-@cartouche
-@format
-About()@end format
-@end cartouche
-
-Tell the user about this version of PCB.
-@c ./../src/hid/gtk/gtkhid-main.c 1615
-
-This just pops up a dialog telling the user which version of
-@code{pcb} they're running.
-
-
-@node gtk AdjustStyle Action
-@subsection gtk AdjustStyle
-@c key gtk AdjustStyle in hid gtk
-@cartouche
-@format
-AdjustStyle()
-@end format
-@end cartouche
-
-Open the window which allows editing of the route styles
-@c ./../src/hid/gtk/gui-top-window.c 3810
-
-Opens the window which allows editing of the route styles.
-
-
-@node gtk Center Action
-@subsection gtk Center
-@c key gtk Center in hid gtk
-@cartouche
-@format
-Center()
-@end format
-@end cartouche
-
-Moves the pointer to the center of the window.
-@c ./../src/hid/gtk/gtkhid-main.c 2073
-
-Move the pointer to the center of the window, but only if it's
-currently within the window already.
-
-
-@node gtk Cursor Action
-@subsection gtk Cursor
-@c key gtk Cursor in hid gtk
-@cartouche
-@format
-Cursor(Type,DeltaUp,DeltaRight,Units)@end format
-@end cartouche
-
-Move the cursor.
-@c ./../src/hid/gtk/gtkhid-main.c 2172
-
-This action moves the mouse cursor.  Unlike other actions which take
-coordinates, this action's coordinates are always relative to the
-user's view of the board.  Thus, a positive @var{DeltaUp} may move the
-cursor towards the board origin if the board is inverted.
-
-Type is one of @samp{Pan} or @samp{Warp}.  @samp{Pan} causes the
-viewport to move such that the crosshair is under the mouse cursor.
-@samp{Warp} causes the mouse cursor to move to be above the crosshair.
-
-@var{Units} can be one of the following:
-
-@table @samp
-
-@item mil
-@itemx mm
-The cursor is moved by that amount, in board units.
-
-@item grid
-The cursor is moved by that many grid points.
-
-@item view
-The values are percentages of the viewport's view.  Thus, a pan of
-@samp{100} would scroll the viewport by exactly the width of the
-current view.
-
-@item board
-The values are percentages of the board size.  Thus, a move of
-@samp{50,50} moves you halfway across the board.
-
-@end table
-
-
-@node gtk DoWindows Action
-@subsection gtk DoWindows
-@c key gtk DoWindows in hid gtk
-@cartouche
-@format
-DoWindows(1|2|3|4)
-DoWindows(Layout|Library|Log|Netlist|Preferences)@end format
-@end cartouche
-
-Open various GUI windows.
-@c ./../src/hid/gtk/gtkhid-main.c 2230
-
-@table @code
-
-@item 1
-@itemx Layout
-Open the layout window.  Since the layout window is always shown
-anyway, this has no effect.
-
-@item 2
-@itemx Library
-Open the library window.
-
-@item 3
-@itemx Log
-Open the log window.
-
-@item 4
-@itemx Netlist
-Open the netlist window.
-
-@item 5
-@itemx Preferences
-Open the preferences window.
-
-@end table
-
-
-@node gtk EditLayerGroups Action
-@subsection gtk EditLayerGroups
-@c key gtk EditLayerGroups in hid gtk
-@cartouche
-@format
-EditLayerGroups()
-@end format
-@end cartouche
-
-Open the preferences window which allows editing of the layer groups
-@c ./../src/hid/gtk/gui-top-window.c 3833
-
-Opens the preferences window which is where the layer groups
-are edited.  This action is primarily provides to provide menu
-resource compatibility with the lesstif HID.
-
-
-@node gtk GetXY Action
-@subsection gtk GetXY
-@c key gtk GetXY in hid gtk
-@cartouche
-@format
-GetXY()@end format
-@end cartouche
-
-Get a coordinate.
-@c ./../src/hid/gtk/gtkhid-main.c 1630
-
-Prompts the user for a coordinate, if one is not already selected.
-
-
-@node gtk Popup Action
-@subsection gtk Popup
-@c key gtk Popup in hid gtk
-@cartouche
-@format
-Popup(MenuName, [Button])@end format
-@end cartouche
-
-Bring up the popup menu specified by @code{MenuName}.
-If called by a mouse event then the mouse button number
-must be specified as the optional second argument.
-@c ./../src/hid/gtk/gtkhid-main.c 2297
-
-This just pops up the specified menu.  The menu must have been defined
-as a named subresource of the Popups resource in the menu resource
-file.  If called as a response to a mouse button click, the mouse 
-button number must be specified as the second argument.  
-
-
-@node gtk Print Action
-@subsection gtk Print
-@c key gtk Print in hid gtk
-@cartouche
-@format
-Print()@end format
-@end cartouche
-
-Print the layout.
-@c ./../src/hid/gtk/gtkhid-main.c 1948
-
-This will find the default printing HID, prompt the user for its
-options, and print the layout.
-
-
-@node gtk PrintCalibrate Action
-@subsection gtk PrintCalibrate
-@c key gtk PrintCalibrate in hid gtk
-@cartouche
-@format
-PrintCalibrate()@end format
-@end cartouche
-
-Calibrate the printer.
-@c ./../src/hid/gtk/gtkhid-main.c 1999
-
-This will print a calibration page, which you would measure and type
-the measurements in, so that future printouts will be more precise.
-
-
-@node gtk Save Action
-@subsection gtk Save
-@c key gtk Save in hid gtk
-@cartouche
-@format
-Save()
-Save(Layout|LayoutAs)
-Save(AllConnections|AllUnusedPins|ElementConnections)
-Save(PasteBuffer)@end format
-@end cartouche
-
-Save layout and/or element data to a user-selected file.
-@c ./../src/hid/gtk/gtkhid-main.c 1774
-
-This action is a GUI front-end to the core's @code{SaveTo} action
-(@pxref{SaveTo Action}).  If you happen to pass a filename, like
-@code{SaveTo}, then @code{SaveTo} is called directly.  Else, the
-user is prompted for a filename to save, and then @code{SaveTo} is
-called with that filename.
-
-
-@node gtk SelectLayer Action
-@subsection gtk SelectLayer
-@c key gtk SelectLayer in hid gtk
-@cartouche
-@format
-SelectLayer(1..MAXLAYER|Silk|Rats)@end format
-@end cartouche
-
-Select which layer is the current layer.
-@c ./../src/hid/gtk/gui-top-window.c 2839
-
-The specified layer becomes the currently active layer.  It is made
-visible if it is not already visible
-
-
-@node gtk SetUnits Action
-@subsection gtk SetUnits
-@c key gtk SetUnits in hid gtk
-@cartouche
-@format
-SetUnits(mm|mil)@end format
-@end cartouche
-
-Set the default measurement units.
-@c ./../src/hid/gtk/gtkhid-main.c 2269
-
-@table @code
-
-@item mil
-Sets the display units to mils (1/1000 inch).
-
-@item mm
-Sets the display units to millimeters.
-
-@end table
-
-
-@node gtk SwapSides Action
-@subsection gtk SwapSides
-@c key gtk SwapSides in hid gtk
-@cartouche
-@format
-SwapSides(|v|h|r)@end format
-@end cartouche
-
-Swaps the side of the board you're looking at.
-@c ./../src/hid/gtk/gtkhid-main.c 1856
-
-This action changes the way you view the board.
-
-@table @code
-
-@item v
-Flips the board over vertically (up/down).
-
-@item h
-Flips the board over horizontally (left/right), like flipping pages in
-a book.
-
-@item r
-Rotates the board 180 degrees without changing sides.
-
-@end table
-
-If no argument is given, the board isn't moved but the opposite side
-is shown.
-
-Normally, this action changes which pads and silk layer are drawn as
-true silk, and which are drawn as the "invisible" layer.  It also
-determines which solder mask you see.
-
-As a special case, if the layer group for the side you're looking at
-is visible and currently active, and the layer group for the opposite
-is not visible (i.e. disabled), then this action will also swap which
-layer group is visible and active, effectively swapping the ``working
-side'' of the board.
-
-
-@node gtk ToggleView Action
-@subsection gtk ToggleView
-@c key gtk ToggleView in hid gtk
-@cartouche
-@format
-ToggleView(1..MAXLAYER)
-ToggleView(layername)
-ToggleView(Silk|Rats|Pins|Vias|Mask|BackSide)@end format
-@end cartouche
-
-Toggle the visibility of the specified layer or layer group.
-@c ./../src/hid/gtk/gui-top-window.c 2763
-
-If you pass an integer, that layer is specified by index (the first
-layer is @code{1}, etc).  If you pass a layer name, that layer is
-specified by name.  When a layer is specified, the visibility of the
-layer group containing that layer is toggled.
-
-If you pass a special layer name, the visibility of those components
-(silk, rats, etc) is toggled.  Note that if you have a layer named
-the same as a special layer, the layer is chosen over the special layer.
-
-
-@node gtk Zoom Action
-@subsection gtk Zoom
-@c key gtk Zoom in hid gtk
-@cartouche
-@format
-Zoom()
-Zoom(factor)@end format
-@end cartouche
-
-Various zoom factor changes.
-@c ./../src/hid/gtk/gtkhid-main.c 176
-Changes the zoom (magnification) of the view of the board.  If no
-arguments are passed, the view is scaled such that the board just fits
-inside the visible window (i.e. ``view all'').  Otherwise,
-@var{factor} specifies a change in zoom factor.  It may be prefixed by
-@code{+}, @code{-}, or @code{=} to change how the zoom factor is
-modified.  The @var{factor} is a floating point number, such as
-@code{1.5} or @code{0.75}.
-
-@table @code
-  
-@item +@var{factor}
-Values greater than 1.0 cause the board to be drawn smaller; more of
-the board will be visible.  Values between 0.0 and 1.0 cause the board
-to be drawn bigger; less of the board will be visible.
-  
-@item -@var{factor}
-Values greater than 1.0 cause the board to be drawn bigger; less of
-the board will be visible.  Values between 0.0 and 1.0 cause the board
-to be drawn smaller; more of the board will be visible.
- 
-@item =@var{factor}
- 
-The @var{factor} is an absolute zoom factor; the unit for this value
-is "PCB units per screen pixel".  Since PCB units are 0.01 mil, a
-@var{factor} of 1000 means 10 mils (0.01 in) per pixel, or 100 DPI,
-about the actual resolution of most screens - resulting in an "actual
-size" board.  Similarly, a @var{factor} of 100 gives you a 10x actual
-size.
- 
-@end table
- 
-Note that zoom factors of zero are silently ignored.
- 
-
-
-
-@node lesstif actions
-@section lesstif actions
-@menu
-* lesstif About Action:: Tell the user about this version of PCB.
-* lesstif AdjustSizes Action:: Let the user change the board size, DRC parameters, etc
-* lesstif AdjustStyle Action:: Displays the route style adjustment window.
-* lesstif Benchmark Action:: Benchmark the GUI speed.
-* lesstif Command Action:: Displays the command line input window.
-* lesstif Cursor Action:: Move the cursor.
-* lesstif Debug Action:: Debug action.
-* lesstif DebugXY Action:: Debug action, with coordinates
-* lesstif DoWindows Action:: Open various GUI windows.
-* lesstif DumpKeys Action:: Dump Lesstif key bindings.
-* lesstif EditLayerGroups Action:: Let the user change the layer groupings
-* lesstif Export Action:: Export the layout.
-* lesstif GetXY Action:: Get a coordinate.
-* lesstif LibraryShow Action:: Displays the library window.
-* lesstif Load Action:: Load layout data from a user-selected file.
-* lesstif LoadVendor Action:: Loads a user-selected vendor resource file.
-* lesstif NetlistShow Action:: Selects the given pinname or netname in the netlist window.
-* lesstif Print Action:: Print the layout.
-* lesstif PrintCalibrate Action:: Calibrate the printer.
-* lesstif PromptFor Action:: Prompt for a response.
-* lesstif Return Action:: Simulate a passing or failing action.
-* lesstif Save Action:: Save layout data to a user-selected file.
-* lesstif SelectLayer Action:: Select which layer is the current layer.
-* lesstif SetUnits Action:: Set the default measurement units.
-* lesstif SwapSides Action:: Swaps the side of the board you're looking at.
-* lesstif ToggleView Action:: Toggle the visibility of the specified layer or layer group.
-* lesstif Zoom Action:: Various zoom factor changes.
-@end menu
-@node lesstif About Action
-@subsection lesstif About
-@c key lesstif About in hid lesstif
-@cartouche
-@format
-About()@end format
-@end cartouche
-
-Tell the user about this version of PCB.
-@c ./../src/hid/lesstif/dialogs.c 851
-
-This just pops up a dialog telling the user which version of
-@code{pcb} they're running.
-
-
-@node lesstif AdjustSizes Action
-@subsection lesstif AdjustSizes
-@c key lesstif AdjustSizes in hid lesstif
-@cartouche
-@format
-AdjustSizes()@end format
-@end cartouche
-
-Let the user change the board size, DRC parameters, etc
-@c ./../src/hid/lesstif/dialogs.c 1135
-
-Displays a dialog box that lets the user change the board
-size, DRC parameters, and text scale.
-
-The units are determined by the default display units.
-
-
-@node lesstif AdjustStyle Action
-@subsection lesstif AdjustStyle
-@c key lesstif AdjustStyle in hid lesstif
-@cartouche
-@format
-AdjustStyle()@end format
-@end cartouche
-
-Displays the route style adjustment window.
-@c ./../src/hid/lesstif/styles.c 348
-
-
-@node lesstif Benchmark Action
-@subsection lesstif Benchmark
-@c key lesstif Benchmark in hid lesstif
-@cartouche
-@format
-Benchmark()@end format
-@end cartouche
-
-Benchmark the GUI speed.
-@c ./../src/hid/lesstif/main.c 648
-
-This action is used to speed-test the Lesstif graphics subsystem.  It
-redraws the current screen as many times as possible in ten seconds.
-It reports the amount of time needed to draw the screen once.
-
-
-@node lesstif Command Action
-@subsection lesstif Command
-@c key lesstif Command in hid lesstif
-@cartouche
-@format
-Command()@end format
-@end cartouche
-
-Displays the command line input window.
-@c ./../src/hid/lesstif/main.c 633
-
-The command window allows the user to manually enter actions to be
-executed.  Action syntax can be done one of two ways:
-
-@table @code
-
-@item
-Follow the action name by an open parenthesis, arguments separated by
-commas, end with a close parenthesis.  Example: @code{Abc(1,2,3)}
-
-@item
-Separate the action name and arguments by spaces.  Example: @code{Abc
-1 2 3}.
-
-@end table
-
-The first option allows you to have arguments with spaces in them,
-but the second is more ``natural'' to type for most people.
-
-Note that action names are not case sensitive, but arguments normally
-are.  However, most actions will check for ``keywords'' in a case
-insensitive way.
-
-There are three ways to finish with the command window.  If you press
-the @code{Enter} key, the command is invoked, the window goes away,
-and the next time you bring up the command window it's empty.  If you
-press the @code{Esc} key, the window goes away without invoking
-anything, and the next time you bring up the command window it's
-empty.  If you change focus away from the command window (i.e. click
-on some other window), the command window goes away but the next time
-you bring it up it resumes entering the command you were entering
-before.
-
-
-@node lesstif Cursor Action
-@subsection lesstif Cursor
-@c key lesstif Cursor in hid lesstif
-@cartouche
-@format
-Cursor(Type,DeltaUp,DeltaRight,Units)@end format
-@end cartouche
-
-Move the cursor.
-@c ./../src/hid/lesstif/main.c 705
-
-This action moves the mouse cursor.  Unlike other actions which take
-coordinates, this action's coordinates are always relative to the
-user's view of the board.  Thus, a positive @var{DeltaUp} may move the
-cursor towards the board origin if the board is inverted.
-
-Type is one of @samp{Pan} or @samp{Warp}.  @samp{Pan} causes the
-viewport to move such that the crosshair is under the mouse cursor.
-@samp{Warp} causes the mouse cursor to move to be above the crosshair.
-
-@var{Units} can be one of the following:
-
-@table @samp
-
-@item mil
-@itemx mm
-The cursor is moved by that amount, in board units.
-
-@item grid
-The cursor is moved by that many grid points.
-
-@item view
-The values are percentages of the viewport's view.  Thus, a pan of
-@samp{100} would scroll the viewport by exactly the width of the
-current view.
-
-@item board
-The values are percentages of the board size.  Thus, a move of
-@samp{50,50} moves you halfway across the board.
-
-@end table
-
-
-@node lesstif Debug Action
-@subsection lesstif Debug
-@c key lesstif Debug in hid lesstif
-@cartouche
-@format
-Debug(...)@end format
-@end cartouche
-
-Debug action.
-@c ./../src/hid/lesstif/menu.c 65
-
-This action exists to help debug scripts; it simply prints all its
-arguments to stdout.
-
-
-@node lesstif DebugXY Action
-@subsection lesstif DebugXY
-@c key lesstif DebugXY in hid lesstif
-@cartouche
-@format
-DebugXY(...)@end format
-@end cartouche
-
-Debug action, with coordinates
-@c ./../src/hid/lesstif/menu.c 71
-
-Like @code{Debug}, but requires a coordinate.  If the user hasn't yet
-indicated a location on the board, the user will be prompted to click
-on one.
-
-
-@node lesstif DoWindows Action
-@subsection lesstif DoWindows
-@c key lesstif DoWindows in hid lesstif
-@cartouche
-@format
-DoWindows(1|2|3|4)
-DoWindows(Layout|Library|Log|Netlist)@end format
-@end cartouche
-
-Open various GUI windows.
-@c ./../src/hid/lesstif/dialogs.c 815
-
-@table @code
-
-@item 1
-@itemx Layout
-Open the layout window.  Since the layout window is always shown
-anyway, this has no effect.
-
-@item 2
-@itemx Library
-Open the library window.
-
-@item 3
-@itemx Log
-Open the log window.
-
-@item 4
-@itemx Netlist
-Open the netlist window.
-
-@end table
-
-
-@node lesstif DumpKeys Action
-@subsection lesstif DumpKeys
-@c key lesstif DumpKeys in hid lesstif
-@cartouche
-@format
-DumpKeys()@end format
-@end cartouche
-
-Dump Lesstif key bindings.
-@c ./../src/hid/lesstif/menu.c 100
-
-Causes the list of key bindings (from @code{pcb-menu.res}) to be
-dumped to stdout.  This is most useful when invoked from the command
-line like this:
-
-@example
-pcb --action-string DumpKeys
-@end example
-
-
-@node lesstif EditLayerGroups Action
-@subsection lesstif EditLayerGroups
-@c key lesstif EditLayerGroups in hid lesstif
-@cartouche
-@format
-EditLayerGroups()@end format
-@end cartouche
-
-Let the user change the layer groupings
-@c ./../src/hid/lesstif/dialogs.c 1447
-
-Displays a dialog that lets the user view and change the layer
-groupings.  Each layer (row) can be a member of any one layer group
-(column).  Note the special layers @code{solder} and @code{component}
-allow you to specify which groups represent the top and bottom of the
-board.
-
-See @ref{ChangeName Action}.
-
-
-@node lesstif Export Action
-@subsection lesstif Export
-@c key lesstif Export in hid lesstif
-@cartouche
-@format
-Export()@end format
-@end cartouche
-
-Export the layout.
-@c ./../src/hid/lesstif/dialogs.c 941
-
-Prompts the user for an exporter to use.  Then, prompts the user for
-that exporter's options, and exports the layout.
-
-
-@node lesstif GetXY Action
-@subsection lesstif GetXY
-@c key lesstif GetXY in hid lesstif
-@cartouche
-@format
-GetXY()@end format
-@end cartouche
-
-Get a coordinate.
-@c ./../src/hid/lesstif/menu.c 53
-
-Prompts the user for a coordinate, if one is not already selected.
-
-
-@node lesstif LibraryShow Action
-@subsection lesstif LibraryShow
-@c key lesstif LibraryShow in hid lesstif
-@cartouche
-@format
-LibraryShow()@end format
-@end cartouche
-
-Displays the library window.
-@c ./../src/hid/lesstif/library.c 151
-
-
-@node lesstif Load Action
-@subsection lesstif Load
-@c key lesstif Load in hid lesstif
-@cartouche
-@format
-Load()
-Load(Layout|LayoutToBuffer|ElementToBuffer|Netlist|Revert)@end format
-@end cartouche
-
-Load layout data from a user-selected file.
-@c ./../src/hid/lesstif/dialogs.c 98
-
-This action is a GUI front-end to the core's @code{LoadFrom} action
-(@pxref{LoadFrom Action}).  If you happen to pass a filename, like
-@code{LoadFrom}, then @code{LoadFrom} is called directly.  Else, the
-user is prompted for a filename to load, and then @code{LoadFrom} is
-called with that filename.
-
-
-@node lesstif LoadVendor Action
-@subsection lesstif LoadVendor
-@c key lesstif LoadVendor in hid lesstif
-@cartouche
-@format
-LoadVendor()@end format
-@end cartouche
-
-Loads a user-selected vendor resource file.
-@c ./../src/hid/lesstif/dialogs.c 151
-
-The user is prompted for a file to load, and then
-@code{LoadVendorFrom} is called (@pxref{LoadVendorFrom Action}) to
-load that vendor file.
-
-
-@node lesstif NetlistShow Action
-@subsection lesstif NetlistShow
-@c key lesstif NetlistShow in hid lesstif
-@cartouche
-@format
-NetlistShow(pinname|netname)@end format
-@end cartouche
-
-Selects the given pinname or netname in the netlist window.
-@c ./../src/hid/lesstif/netlist.c 416
-
-
-@node lesstif Print Action
-@subsection lesstif Print
-@c key lesstif Print in hid lesstif
-@cartouche
-@format
-Print()@end format
-@end cartouche
-
-Print the layout.
-@c ./../src/hid/lesstif/dialogs.c 878
-
-This will find the default printing HID, prompt the user for its
-options, and print the layout.
-
-
-@node lesstif PrintCalibrate Action
-@subsection lesstif PrintCalibrate
-@c key lesstif PrintCalibrate in hid lesstif
-@cartouche
-@format
-PrintCalibrate()@end format
-@end cartouche
-
-Calibrate the printer.
-@c ./../src/hid/lesstif/dialogs.c 921
-
-This will print a calibration page, which you would measure and type
-the measurements in, so that future printouts will be more precise.
-
-
-@node lesstif PromptFor Action
-@subsection lesstif PromptFor
-@c key lesstif PromptFor in hid lesstif
-@cartouche
-@format
-PromptFor([message[,default]])@end format
-@end cartouche
-
-Prompt for a response.
-@c ./../src/hid/lesstif/dialogs.c 574
-
-This is mostly for testing the lesstif HID interface.  The parameters
-are passed to the @code{prompt_for()} HID function, causing the user
-to be prompted for a response.  The respose is simply printed to the
-user's stdout.
-
-
-@node lesstif Return Action
-@subsection lesstif Return
-@c key lesstif Return in hid lesstif
-@cartouche
-@format
-Return(0|1)@end format
-@end cartouche
-
-Simulate a passing or failing action.
-@c ./../src/hid/lesstif/menu.c 88
-
-This is for testing.  If passed a 0, does nothing and succeeds.  If
-passed a 1, does nothing but pretends to fail.
-
-
-@node lesstif Save Action
-@subsection lesstif Save
-@c key lesstif Save in hid lesstif
-@cartouche
-@format
-Save()
-Save(Layout|LayoutAs)
-Save(AllConnections|AllUnusedPins|ElementConnections)
-Save(PasteBuffer)@end format
-@end cartouche
-
-Save layout data to a user-selected file.
-@c ./../src/hid/lesstif/dialogs.c 196
-
-This action is a GUI front-end to the core's @code{SaveTo} action
-(@pxref{SaveTo Action}).  If you happen to pass a filename, like
-@code{SaveTo}, then @code{SaveTo} is called directly.  Else, the
-user is prompted for a filename to save, and then @code{SaveTo} is
-called with that filename.
-
-
-@node lesstif SelectLayer Action
-@subsection lesstif SelectLayer
-@c key lesstif SelectLayer in hid lesstif
-@cartouche
-@format
-SelectLayer(1..MAXLAYER|Silk|Rats)@end format
-@end cartouche
-
-Select which layer is the current layer.
-@c ./../src/hid/lesstif/menu.c 386
-
-The specified layer becomes the currently active layer.  It is made
-visible if it is not already visible
-
-
-@node lesstif SetUnits Action
-@subsection lesstif SetUnits
-@c key lesstif SetUnits in hid lesstif
-@cartouche
-@format
-SetUnits(mm|mil)@end format
-@end cartouche
-
-Set the default measurement units.
-@c ./../src/hid/lesstif/main.c 358
-
-@table @code
-
-@item mil
-Sets the display units to mils (1/1000 inch).
-
-@item mm
-Sets the display units to millimeters.
-
-@end table
-
-
-@node lesstif SwapSides Action
-@subsection lesstif SwapSides
-@c key lesstif SwapSides in hid lesstif
-@cartouche
-@format
-SwapSides(|v|h|r)@end format
-@end cartouche
-
-Swaps the side of the board you're looking at.
-@c ./../src/hid/lesstif/main.c 453
-
-This action changes the way you view the board.
-
-@table @code
-
-@item v
-Flips the board over vertically (up/down).
-
-@item h
-Flips the board over horizontally (left/right), like flipping pages in
-a book.
-
-@item r
-Rotates the board 180 degrees without changing sides.
-
-@end table
-
-If no argument is given, the board isn't moved but the opposite side
-is shown.
-
-Normally, this action changes which pads and silk layer are drawn as
-true silk, and which are drawn as the "invisible" layer.  It also
-determines which solder mask you see.
-
-As a special case, if the layer group for the side you're looking at
-is visible and currently active, and the layer group for the opposite
-is not visible (i.e. disabled), then this action will also swap which
-layer group is visible and active, effectively swapping the ``working
-side'' of the board.
-
-
-@node lesstif ToggleView Action
-@subsection lesstif ToggleView
-@c key lesstif ToggleView in hid lesstif
-@cartouche
-@format
-ToggleView(1..MAXLAYER)
-ToggleView(layername)
-ToggleView(Silk|Rats|Pins|Vias|Mask|BackSide)@end format
-@end cartouche
-
-Toggle the visibility of the specified layer or layer group.
-@c ./../src/hid/lesstif/menu.c 408
-
-If you pass an integer, that layer is specified by index (the first
-layer is @code{1}, etc).  If you pass a layer name, that layer is
-specified by name.  When a layer is specified, the visibility of the
-layer group containing that layer is toggled.
-
-If you pass a special layer name, the visibility of those components
-(silk, rats, etc) is toggled.  Note that if you have a layer named
-the same as a special layer, the layer is chosen over the special layer.
-
-
-@node lesstif Zoom Action
-@subsection lesstif Zoom
-@c key lesstif Zoom in hid lesstif
-@cartouche
-@format
-Zoom()
-Zoom(factor)@end format
-@end cartouche
-
-Various zoom factor changes.
-@c ./../src/hid/lesstif/main.c 378
-
-Changes the zoom (magnification) of the view of the board.  If no
-arguments are passed, the view is scaled such that the board just fits
-inside the visible window (i.e. ``view all'').  Otherwise,
-@var{factor} specifies a change in zoom factor.  It may be prefixed by
-@code{+}, @code{-}, or @code{=} to change how the zoom factor is
-modified.  The @var{factor} is a floating point number, such as
-@code{1.5} or @code{0.75}.
-
-@table @code
-
-@item +@var{factor}
-Values greater than 1.0 cause the board to be drawn smaller; more of
-the board will be visible.  Values between 0.0 and 1.0 cause the board
-to be drawn bigger; less of the board will be visible.
-
-@item -@var{factor}
-Values greater than 1.0 cause the board to be drawn bigger; less of
-the board will be visible.  Values between 0.0 and 1.0 cause the board
-to be drawn smaller; more of the board will be visible.
-
-@item =@var{factor}
-
-The @var{factor} is an absolute zoom factor; the unit for this value
-is "PCB units per screen pixel".  Since PCB units are 0.01 mil, a
-@var{factor} of 1000 means 10 mils (0.01 in) per pixel, or 100 DPI,
-about the actual resolution of most screens - resulting in an "actual
-size" board.  Similarly, a @var{factor} of 100 gives you a 10x actual
-size.
-
-@end table
-
-Note that zoom factors of zero are silently ignored.
-
-
diff --git a/doc/pcbfile.texi b/doc/pcbfile.texi
deleted file mode 100644
index 7dd6be8..0000000
--- a/doc/pcbfile.texi
+++ /dev/null
@@ -1,929 +0,0 @@
-@c key pcbfile
-@c ./../src/parse_y.y 121
-
-A special note about units: Older versions of @code{pcb} used mils
-(1/1000 inch) as the base unit; a value of 500 in the file meant
-half an inch.  Newer versions uses a "high resolution" syntax,
-where the base unit is 1/100 of a mil (0.000010 inch); a value of 500 in
-the file means 5 mils.  As a general rule, the variants of each entry
-listed below which use square brackets are the high resolution formats
-and use the 1/100 mil units, and the ones with parentheses are the older
-variants and use 1 mil units.  Note that when multiple variants
-are listed, the most recent (and most preferred) format is the first
-listed.
-
-Symbolic and numeric flags (SFlags and NFlags) are described in
-@ref{Object Flags}.
-
-@menu
-* Arc syntax::
-* Attribute syntax::
-* Connect syntax::
-* Cursor syntax::
-* DRC syntax::
-* Element syntax::
-* ElementArc syntax::
-* ElementLine syntax::
-* FileVersion syntax::
-* Flags syntax::
-* Grid syntax::
-* Groups syntax::
-* Layer syntax::
-* Line syntax::
-* Mark syntax::
-* Net syntax::
-* Netlist syntax::
-* Pad syntax::
-* Pin syntax::
-* PolyArea syntax::
-* Polygon syntax::
-* Rat syntax::
-* Styles syntax::
-* Symbol syntax::
-* SymbolLine syntax::
-* Text syntax::
-* Thermal syntax::
-* Via syntax::
-@end menu
-@c pcbfile Arc
-@node Arc syntax
-@subsection Arc
-@c ./../src/parse_y.y 675
-
-@cartouche
-@format
-Arc [X Y Width Height Thickness Clearance StartAngle DeltaAngle SFlags]
-Arc (X Y Width Height Thickness Clearance StartAngle DeltaAngle NFlags)
-Arc (X Y Width Height Thickness StartAngle DeltaAngle NFlags)
-@end format
-@end cartouche
-
-@table @var
-@item X Y
-Coordinates of the center of the arc.
-@item Width Height
-The width and height, from the center to the edge.  The bounds of the
-circle of which this arc is a segment, is thus @math{2*Width} by
-@math{2*Height}.
-@item Thickness
-The width of the copper trace which forms the arc.
-@item Clearance
-The amount of space cleared around the arc when the line passes
-through a polygon.  The clearance is added to the thickness to get the
-thickness of the clear; thus the space between the arc and the polygon
-is @math{Clearance/2} wide.
-@item StartAngle
-The angle of one end of the arc, in degrees.  In PCB, an angle of zero
-points left (negative X direction), and 90 degrees points down
-(positive Y direction).
-@item DeltaAngle
-The sweep of the arc.  This may be negative.  Positive angles sweep
-counterclockwise.
-@item SFlags
-Symbolic or numeric flags.
-@item NFlags
-Numeric flags.
-@end table
-
-@c pcbfile Attribute
-@node Attribute syntax
-@subsection Attribute
-@c ./../src/parse_y.y 1233
-
-@cartouche
-@format
-Attribute ("Name" "Value")
-@end format
-@end cartouche
-
-Attributes allow boards and elements to have arbitrary data attached
-to them, which is not directly used by PCB itself but may be of use by
-other programs or users.
-
-@table @var
-@item Name
-The name of the attribute
-
-@item Value
-The value of the attribute.  Values are always stored as strings, even
-if the value is interpreted as, for example, a number.
-
-@end table
-
-@c pcbfile Connect
-@node Connect syntax
-@subsection Connect
-@c ./../src/parse_y.y 1223
-
-@cartouche
-@format
-Connect ("PinPad")
-@end format
-@end cartouche
-
-@table @var
-@item PinPad
-The name of a pin or pad which is included in this net.  Pin and Pad
-names are named by the refdes and pin name, like @code{"U14-7"} for
-pin 7 of U14, or @code{"T4-E"} for pin E of T4.
-@end table
-
-@c pcbfile Cursor
-@node Cursor syntax
-@subsection Cursor
-@c ./../src/parse_y.y 324
-
-@cartouche
-@format
-Cursor [X Y Zoom]
-Cursor (X Y Zoom)
-@end format
-@end cartouche
-
-@table @var
-@item X Y
-Location of the cursor when the board was saved.
-@item Zoom
-The current zoom factor.  Note that a zoom factor of "0" means 1 mil
-per screen pixel, N means @math{2^N} mils per screen pixel, etc.  The
-first variant accepts floating point numbers.  The special value
-"1000" means "zoom to fit"
-@end table
-
-@c pcbfile DRC
-@node DRC syntax
-@subsection DRC
-@c ./../src/parse_y.y 370
-
-@cartouche
-@format
-DRC [Bloat Shrink Line Silk Drill Ring]
-DRC [Bloat Shrink Line Silk]
-DRC [Bloat Shrink Line]
-@end format
-@end cartouche
-
-@table @var
-@item Bloat
-Minimum spacing between copper.
-@item Shrink
-Minimum copper overlap to guarantee connectivity.
-@item Line
-Minimum line thickness.
-@item Silk
-Minimum silk thickness.
-@item Drill
-Minimum drill size.
-@item Ring
-Minimum width of the annular ring around pins and vias.
-@end table
-
-@c pcbfile Element
-@node Element syntax
-@subsection Element
-@c ./../src/parse_y.y 777
-
-@cartouche
-@format
-Element [SFlags "Desc" "Name" "Value" MX MY TX TY TDir TScale TSFlags] (
-Element (NFlags "Desc" "Name" "Value" MX MY TX TY TDir TScale TNFlags) (
-Element (NFlags "Desc" "Name" "Value" TX TY TDir TScale TNFlags) (
-Element (NFlags "Desc" "Name" TX TY TDir TScale TNFlags) (
-Element ("Desc" "Name" TX TY TDir TScale TNFlags) (
-@ @ @ @dots{} contents @dots{}
-)
-@end format
-@end cartouche
-
-@table @var
-@item SFlags
-Symbolic or numeric flags, for the element as a whole.
-@item NFlags
-Numeric flags, for the element as a whole.
-@item Desc
-The description of the element.  This is one of the three strings
-which can be displayed on the screen.
-@item Name
-The name of the element, usually the reference designator.
-@item Value
-The value of the element.
-@item MX MY
-The location of the element's mark.  This is the reference point
-for placing the element and its pins and pads.
-@item TX TY
-The upper left corner of the text (one of the three strings).
-@item TDir
-The relative direction of the text.  0 means left to right for
-an unrotated element, 1 means up, 2 left, 3 down.
-@item TScale
-Size of the text, as a percentage of the ``default'' size of of the
-font (the default font is about 40 mils high).  Default is 100 (40
-mils).
-@item TSFlags
-Symbolic or numeric flags, for the text.
-@item TNFlags
-Numeric flags, for the text.
-@end table
-
-Elements may contain pins, pads, element lines, element arcs,
-attributes, and (for older elements) an optional mark.  Note that
-element definitions that have the mark coordinates in the element
-line, only support pins and pads which use relative coordinates.  The
-pin and pad coordinates are relative to the mark.  Element definitions
-which do not include the mark coordinates in the element line, may
-have a Mark definition in their contents, and only use pin and pad
-definitions which use absolute coordinates.
-
-@c pcbfile ElementArc
-@node ElementArc syntax
-@subsection ElementArc
-@c ./../src/parse_y.y 886
-
-@cartouche
-@format
-ElementArc [X Y Width Height StartAngle DeltaAngle Thickness]
-ElementArc (X Y Width Height StartAngle DeltaAngle Thickness)
-@end format
-@end cartouche
-
-@table @var
-@item X Y
-Coordinates of the center of the arc.  These are relative to the
-Element's mark point for new element formats, or absolute for older
-formats.
-@item Width Height
-The width and height, from the center to the edge.  The bounds of the
-circle of which this arc is a segment, is thus @math{2*Width} by
-@math{2*Height}.
-@item StartAngle
-The angle of one end of the arc, in degrees.  In PCB, an angle of zero
-points left (negative X direction), and 90 degrees points down
-(positive Y direction).
-@item DeltaAngle
-The sweep of the arc.  This may be negative.  Positive angles sweep
-counterclockwise.
-@item Thickness
-The width of the silk line which forms the arc.
-@end table
-
-@c pcbfile ElementLine
-@node ElementLine syntax
-@subsection ElementLine
-@c ./../src/parse_y.y 884
-
-@cartouche
-@format
-ElementLine [X1 Y1 X2 Y2 Thickness]
-ElementLine (X1 Y1 X2 Y2 Thickness)
-@end format
-@end cartouche
-
-@table @var
-@item X1 Y1 X2 Y2
-Coordinates of the endpoints of the line.  These are relative to the
-Element's mark point for new element formats, or absolute for older
-formats.
-@item Thickness
-The width of the silk for this line.
-@end table
-
-@c pcbfile FileVersion
-@node FileVersion syntax
-@subsection FileVersion
-@c ./../src/parse_y.y 234
-
-@cartouche
-@format
-FileVersion[Version]
-@end format
-@end cartouche
-
-@table @var
-@item Version
-File format version.  This version number represents the date when the pcb file
-format was last changed.
-@end table
-
-Any version of pcb build from sources equal to or newer
-than this number should be able to read the file.  If this line is not present
-in the input file then file format compatibility is not checked.
-
-
-@c pcbfile Flags
-@node Flags syntax
-@subsection Flags
-@c ./../src/parse_y.y 412
-
-@cartouche
-@format
-Flags(Number)
-@end format
-@end cartouche
-
-@table @var
-@item Number
-A number, whose value is normally given in hex, individual bits of which
-represent pcb-wide flags as defined in @ref{PCBFlags}.
-
-@end table
-
-@c pcbfile Grid
-@node Grid syntax
-@subsection Grid
-@c ./../src/parse_y.y 247
-
-/* %start-doc pcbfile PCB
-
-@cartouche
-@format
-PCB ["Name" Width Height]
-PCB ("Name" Width Height]
-PCB ("Name")
-@end format
-@end cartouche
-
-@table @var
-@item Name
-Name of the PCB project
-@item Width Height
-Size of the board
-@end table
-
-If you don't specify the size of the board, a very large default is
-chosen.
-
-@c ./../src/parse_y.y 270
-
-@cartouche
-@format
-Grid [Step OffsetX OffsetY Visible]
-Grid (Step OffsetX OffsetY Visible)
-Grid (Step OffsetX OffsetY)
-@end format
-@end cartouche
-
-@table @var
-@item Step
-Distance from one grid point to adjacent points.  This value may be a
-floating point number for the first two variants.
-@item OffsetX OffsetY
-The "origin" of the grid.  Normally zero.
-@item Visible
-If non-zero, the grid will be visible on the screen.
-@end table
-
-@c pcbfile Groups
-@node Groups syntax
-@subsection Groups
-@c ./../src/parse_y.y 426
-
-@cartouche
-@format
-Groups("String")
-@end format
-@end cartouche
-
-@table @var
-@item String
-
-Encodes the layer grouping information.  Each group is separated by a
-colon, each member of each group is separated by a comma.  Group
-members are either numbers from @code{1}..@var{N} for each layer, and
-the letters @code{c} or @code{s} representing the component side and
-solder side of the board.  Including @code{c} or @code{s} marks that
-group as being the top or bottom side of the board.
-
-@example
-Groups("1,2,c:3:4:5,6,s:7,8")
-@end example
-
-@end table
-
-@c pcbfile Layer
-@node Layer syntax
-@subsection Layer
-@c ./../src/parse_y.y 566
-
-@cartouche
-@format
-Layer (LayerNum "Name") (
-@ @ @ @dots{} contents @dots{}
-)
-@end format
-@end cartouche
-
-@table @var
-@item LayerNum
-The layer number.  Layers are numbered sequentially, starting with 1.
-The last two layers (9 and 10 by default) are solder-side silk and
-component-side silk, in that order.
-@item Name
-The layer name.
-@item contents
-The contents of the layer, which may include lines, arcs, rectangles,
-text, and polygons.
-@end table
-
-@c pcbfile Line
-@node Line syntax
-@subsection Line
-@c ./../src/parse_y.y 645
-
-@cartouche
-@format
-Line [X1 Y1 X2 Y2 Thickness Clearance SFlags]
-Line (X1 Y1 X2 Y2 Thickness Clearance NFlags)
-Line (X1 Y1 X2 Y2 Thickness NFlags)
-@end format
-@end cartouche
-
-@table @var
-@item X1 Y1 X2 Y2
-The end points of the line
-@item Thickness
-The width of the line
-@item Clearance
-The amount of space cleared around the line when the line passes
-through a polygon.  The clearance is added to the thickness to get the
-thickness of the clear; thus the space between the line and the
-polygon is @math{Clearance/2} wide.
-@item SFlags
-Symbolic or numeric flags
-@item NFlags
-Numeric flags.
-@end table
-
-@c pcbfile Mark
-@node Mark syntax
-@subsection Mark
-@c ./../src/parse_y.y 888
-
-@cartouche
-@format
-Mark [X Y]
-Mark (X Y)
-@end format
-@end cartouche
-
-@table @var
-@item X Y
-Coordinates of the Mark, for older element formats that don't have
-the mark as part of the Element line.
-@end table
-
-@c pcbfile Net
-@node Net syntax
-@subsection Net
-@c ./../src/parse_y.y 1200
-
-@cartouche
-@format
-Net ("Name" "Style") (
-@ @ @ @dots{} connects @dots{}
-)
-@end format
-@end cartouche
-
-@table @var
-@item Name
-The name of this net.
-@item Style
-The routing style that should be used when autorouting this net.
-@end table
-
-@c pcbfile Netlist
-@node Netlist syntax
-@subsection Netlist
-@c ./../src/parse_y.y 1179
-
-@cartouche
-@format
-Netlist ( ) (
-@ @ @ @dots{} nets @dots{}
-)
-@end format
-@end cartouche
-
-@c pcbfile Pad
-@node Pad syntax
-@subsection Pad
-@c ./../src/parse_y.y 1045
-
-@cartouche
-@format
-Pad [rX1 rY1 rX2 rY2 Thickness Clearance Mask "Name" "Number" SFlags]
-Pad (rX1 rY1 rX2 rY2 Thickness Clearance Mask "Name" "Number" NFlags)
-Pad (aX1 aY1 aX2 aY2 Thickness "Name" "Number" NFlags)
-Pad (aX1 aY1 aX2 aY2 Thickness "Name" NFlags)
-@end format
-@end cartouche
-
-@table @var
-@item rX1 rY1 rX2 rY2
-Coordinates of the endpoints of the pad, relative to the element's
-mark.  Note that the copper extends beyond these coordinates by half
-the thickness.  To make a square or round pad, specify the same
-coordinate twice.
-@item aX1 aY1 aX2 aY2
-Same, but absolute coordinates of the endpoints of the pad.
-@item Thickness
-width of the pad.
-@item Clearance
-add to thickness to get clearance width.
-@item Mask
-width of solder mask opening.
-@item Name
-name of pin
-@item Number
-number of pin
-@item SFlags
-symbolic or numerical flags
-@item NFlags
-numerical flags only
-@end table
-
-@c pcbfile Pin
-@node Pin syntax
-@subsection Pin
-@c ./../src/parse_y.y 972
-
-@cartouche
-@format
-Pin [rX rY Thickness Clearance Mask Drill "Name" "Number" SFlags]
-Pin (rX rY Thickness Clearance Mask Drill "Name" "Number" NFlags)
-Pin (aX aY Thickness Drill "Name" "Number" NFlags)
-Pin (aX aY Thickness Drill "Name" NFlags)
-Pin (aX aY Thickness "Name" NFlags)
-@end format
-@end cartouche
-
-@table @var
-@item rX rY
-coordinates of center, relative to the element's mark
-@item aX aY
-absolute coordinates of center.
-@item Thickness
-outer diameter of copper annulus
-@item Clearance
-add to thickness to get clearance diameter
-@item Mask
-diameter of solder mask opening
-@item Drill
-diameter of drill
-@item Name
-name of pin
-@item Number
-number of pin
-@item SFlags
-symbolic or numerical flags
-@item NFlags
-numerical flags only
-@end table
-
-@c pcbfile PolyArea
-@node PolyArea syntax
-@subsection PolyArea
-@c ./../src/parse_y.y 348
-
-@cartouche
-@format
-PolyArea [Area]
-@end format
-@end cartouche
-
-@table @var
-@item Area 
-Minimum area of polygon island to retain. If a polygon has clearances that cause an isolated island to be created, then will only be retained if the area exceeds this minimum area.
-@end table
-
-@c pcbfile Polygon
-@node Polygon syntax
-@subsection Polygon
-@c ./../src/parse_y.y 757
-
-@cartouche
-@format
-Polygon (SFlags) (
-@ @ @ @dots{} (X Y) @dots{}
-@ @ @ @dots{} [X Y] @dots{}
-)
-@end format
-@end cartouche
-
-@table @var
-@item SFlags
-Symbolic or numeric flags.
-@item X Y
-Coordinates of each vertex.  You must list at least three coordinates.
-@end table
-
-@c pcbfile Rat
-@node Rat syntax
-@subsection Rat
-@c ./../src/parse_y.y 551
-
-@cartouche
-@format
-Rat [X1 Y1 Group1 X2 Y2 Group2 SFlags]
-Rat (X1 Y1 Group1 X2 Y2 Group2 NFlags)
-@end format
-@end cartouche
-
-@table @var
-@item X1 Y1 X2 Y2
-The endpoints of the rat line.
-@item Group1 Group2
-The layer group each end is connected on.
-@item SFlags
-Symbolic or numeric flags.
-@item NFlags
-Numeric flags.
-@end table
-
-@c pcbfile Styles
-@node Styles syntax
-@subsection Styles
-@c ./../src/parse_y.y 436
-
-@cartouche
-@format
-Styles("String")
-@end format
-@end cartouche
-
-@table @var
-@item String
-
-Encodes the four routing styles @code{pcb} knows about.  The four styles
-are separated by colons.  Each style consists of five parameters as follows:
-
-@table @var
-@item Name
-The name of the style.
-@item Thickness
-Width of lines and arcs.
-@item Diameter
-Copper diameter of pins and vias.
-@item Drill
-Drill diameter of pins and vias.
-@item Keepaway
-Minimum spacing to other nets.  If omitted, 10 mils is the default.
-
-@end table
-
-@end table
-
-@example
-Styles("Signal,10,40,20:Power,25,60,35:Fat,40,60,35:Skinny,8,36,20")
-Styles["Logic,1000,3600,2000,1000:Power,2500,6000,3500,1000:
-@ @ @ Line,4000,6000,3500,1000:Breakout,600,2402,1181,600"]
-@end example
-
-@noindent
-Note that strings in actual files cannot span lines; the above example
-is split across lines only to make it readable.
-
-@c pcbfile Symbol
-@node Symbol syntax
-@subsection Symbol
-@c ./../src/parse_y.y 1107
-
-@cartouche
-@format
-Symbol [Char Delta] (
-Symbol (Char Delta) (
-@ @ @ @dots{} symbol lines @dots{}
-)
-@end format
-@end cartouche
-
-@table @var
-@item Char
-The character or numerical character value this symbol represents.
-Characters must be in single quotes.
-@item Delta
-Additional space to allow after this character.
-@end table
-
-@c pcbfile SymbolLine
-@node SymbolLine syntax
-@subsection SymbolLine
-@c ./../src/parse_y.y 1162
-
-@cartouche
-@format
-SymbolLine [X1 Y1 X2 Y1 Thickness]
-SymbolLine (X1 Y1 X2 Y1 Thickness)
-@end format
-@end cartouche
-
-@table @var
-@item X1 Y1 X2 Y2
-The endpoints of this line.
-@item Thickness
-The width of this line.
-@end table
-
-@c pcbfile Text
-@node Text syntax
-@subsection Text
-@c ./../src/parse_y.y 703
-
-@cartouche
-@format
-Text [X Y Direction Scale "String" SFlags]
-Text (X Y Direction Scale "String" NFlags)
-Text (X Y Direction "String" NFlags)
-@end format
-@end cartouche
-
-@table @var
-@item X Y
-The location of the upper left corner of the text.
-@item Direction
-0 means text is drawn left to right, 1 means up, 2 means right to left
-(i.e. upside down), and 3 means down.
-@item Scale
-Size of the text, as a percentage of the ``default'' size of of the
-font (the default font is about 40 mils high).  Default is 100 (40
-mils).
-@item String
-The string to draw.
-@item SFlags
-Symbolic or numeric flags.
-@item NFlags
-Numeric flags.
-@end table
-
-@c pcbfile Thermal
-@node Thermal syntax
-@subsection Thermal
-@c ./../src/parse_y.y 359
-
-@cartouche
-@format
-Thermal [Scale]
-@end format
-@end cartouche
-
-@table @var
-@item Scale
-Relative size of thermal fingers.  A value of 1.0 makes the finger
-width twice the clearance gap width (measured across the gap, not
-diameter).  The normal value is 0.5, which results in a finger width
-the same as the clearance gap width.
-@end table
-
-@c pcbfile Via
-@node Via syntax
-@subsection Via
-@c ./../src/parse_y.y 492
-
-@cartouche
-@format
-Via [X Y Thickness Clearance Mask Drill "Name" SFlags]
-Via (X Y Thickness Clearance Mask Drill "Name" NFlags)
-Via (X Y Thickness Clearance Drill "Name" NFlags)
-Via (X Y Thickness Drill "Name" NFlags)
-Via (X Y Thickness "Name" NFlags)
-@end format
-@end cartouche
-
-@table @var
-@item X Y
-coordinates of center
-@item Thickness
-outer diameter of copper annulus
-@item Clearance
-add to thickness to get clearance diameter
-@item Mask
-diameter of solder mask opening
-@item Drill
-diameter of drill
-@item Name
-string, name of via (vias have names?)
-@item SFlags
-symbolic or numerical flags
-@item NFlags
-numerical flags only
-@end table
-
-@c pcbfile ~objectflags
-@c ./../src/const.h 100
-@node Object Flags
-@section Object Flags
-
-Note that object flags can be given numerically (like @code{0x0147})
-or symbolically (like @code{"found,showname,square"}.  Some numeric
-values are reused for different object types.  The table below lists
-the numeric value followed by the symbolic name.
-
-@table @code
-@item 0x0001 pin
-If set, this object is a pin.  This flag is for internal use only.
-@item 0x0002 via
-Likewise, for vias.
-@item 0x0004 found
-If set, this object has been found by @code{FindConnection()}.
-@item 0x0008 hole
-For pins and vias, this flag means that the pin or via is a hole
-without a copper annulus.
-@item 0x0010 rat
-If set for a line, indicates that this line is a rat line instead of a
-copper trace.
-@item 0x0010 pininpoly
-For pins and pads, this flag is used internally to indicate that the
-pin or pad overlaps a polygon on some layer.
-@item 0x0010 clearpoly
-For polygons, this flag means that pins and vias will normally clear
-these polygons (thus, thermals are required for electrical
-connection).  When clear, polygons will solidly connect to pins and
-vias.
-@item 0x0010 hidename
-For elements, when set the name of the element is hidden.
-@item 0x0020 showname
-For elements, when set the names of pins are shown.
-@item 0x0020 clearline
-For lines and arcs, the line/arc will clear polygons instead of
-connecting to them.
-@item 0x0020 fullpoly
-For polygons, the full polygon is drawn (i.e. all parts instead of only the biggest one).
-@item 0x0040 selected
-Set when the object is selected.
-@item 0x0080 onsolder
-For elements and pads, indicates that they are on the solder side.
-@item 0x0080 auto
-For lines and vias, indicates that these were created by the
-autorouter.
-@item 0x0100 square
-For pins and pads, indicates a square (vs round) pin/pad.
-@item 0x0200 rubberend
-For lines, used internally for rubber band moves.
-@item 0x0200 warn
-For pins, vias, and pads, set to indicate a warning.
-@item 0x0400 usetherm
-Obsolete, indicates that pins/vias should be drawn with thermal
-fingers.
-@item 0x0400
-Obsolete, old files used this to indicate lines drawn on silk.
-@item 0x0800 octagon
-Draw pins and vias as octagons.
-@item 0x1000 drc
-Set for objects that fail DRC.
-@item 0x2000 lock
-Set for locked objects.
-@item 0x4000 edge2
-For pads, indicates that the second point is closer to the edge.  For
-pins, indicates that the pin is closer to a horizontal edge and thus
-pinout text should be vertical.
-@item 0x8000 marker
-Marker used internally to avoid revisiting an object.
-@item 0x10000 nopaste
-For pads, set to prevent a solderpaste stencil opening for the
-pad.  Primarily used for pads used as fiducials.
-@end table
-@c pcbfile ~pcbflags
-@c ./../src/const.h 139
-@node PCBFlags
-@section PCBFlags
-@table @code
-@item 0x00001
-Pinout displays pin numbers instead of pin names.
-@item 0x00002
-Use local reference for moves, by setting the mark at the beginning of
-each move.
-@item 0x00004
-When set, only polygons and their clearances are drawn, to see if
-polygons have isolated regions.
-@item 0x00008
-Display DRC region on crosshair.
-@item 0x00010
-Do all move, mirror, rotate with rubberband connections.
-@item 0x00020
-Display descriptions of elements, instead of refdes.
-@item 0x00040
-Display names of elements, instead of refdes.
-@item 0x00080
-Auto-DRC flag.  When set, PCB doesn't let you place copper that
-violates DRC.
-@item 0x00100
-Enable 'all-direction' lines.
-@item 0x00200
-Switch starting angle after each click.
-@item 0x00400
-Force unique names on board.
-@item 0x00800
-New lines/arc clear polygons.
-@item 0x01000
-Crosshair snaps to pins and pads.
-@item 0x02000
-Show the solder mask layer.
-@item 0x04000
-Draw with thin lines.
-@item 0x08000
-Move items orthogonally.
-@item 0x10000
-Draw autoroute paths real-time.
-@item 0x20000
-New polygons are full ones.
-@end table
diff --git a/doc/version.texi b/doc/version.texi
deleted file mode 100644
index bc949ab..0000000
--- a/doc/version.texi
+++ /dev/null
@@ -1,4 +0,0 @@
-@set UPDATED 11 December 2007
-@set UPDATED-MONTH December 2007
-@set EDITION 1.99y
-@set VERSION 1.99y

commit 8771285dde08437fe22b76880ec51cc8c0aedb9b
Author: Dan McMahill <dan@xxxxxxxxxxxx>
Commit: Dan McMahill <dan@xxxxxxxxxxxx>

    these are generated at configure time now.

diff --git a/doc/gs/gafrc b/doc/gs/gafrc
deleted file mode 100644
index 6e40065..0000000
--- a/doc/gs/gafrc
+++ /dev/null
@@ -1 +0,0 @@
-(component-library "./symbols")
diff --git a/doc/gs/gschemrc b/doc/gs/gschemrc
deleted file mode 100644
index 6e40065..0000000
--- a/doc/gs/gschemrc
+++ /dev/null
@@ -1 +0,0 @@
-(component-library "./symbols")

commit fde4ea896fd903885f1a87c184296dcf1fc2523f
Author: Dan McMahill <dan@xxxxxxxxxxxx>
Commit: Dan McMahill <dan@xxxxxxxxxxxx>

    to handle the case where we may be building outside the source directory,
    generate gafrc and gschemrc at configure time.

diff --git a/doc/gs/gafrc.in b/doc/gs/gafrc.in
new file mode 100644
index 0000000..13423c0
--- /dev/null
+++ b/doc/gs/gafrc.in
@@ -0,0 +1,2 @@
+;; (component-library "./symbols")
+(component-library "@srcdir@")
diff --git a/doc/gs/gschemrc.in b/doc/gs/gschemrc.in
new file mode 100644
index 0000000..13423c0
--- /dev/null
+++ b/doc/gs/gschemrc.in
@@ -0,0 +1,2 @@
+;; (component-library "./symbols")
+(component-library "@srcdir@")

commit 957d6dc0d7ae048cd75644c25e3180cada6eb88d
Author: Dan McMahill <dan@xxxxxxxxxxxx>
Commit: Dan McMahill <dan@xxxxxxxxxxxx>

    comment out a color theme that relied on a path only present on DJ's machine.
    It isn't really needed anyway.

diff --git a/doc/gs/print-eps.scm b/doc/gs/print-eps.scm
index 44992ad..427267d 100644
--- a/doc/gs/print-eps.scm
+++ b/doc/gs/print-eps.scm
@@ -8,7 +8,7 @@
 ;; The schematic in "mysch.sch" will be printed to the file "mysch.ps"
 
 ; light background
-(load "/envy/dj/geda/share/gEDA/gschem-lightbg")
+;(load "/envy/dj/geda/share/gEDA/gschem-lightbg")
 
 (output-orientation "portrait")
 (output-type "extents no margins")

commit 7a2e682e842ede06ffdb313f677e98a21e28cc3a
Author: Dan McMahill <dan@xxxxxxxxxxxx>
Commit: Dan McMahill <dan@xxxxxxxxxxxx>

    add a missing file.

diff --git a/po/POTFILES.in b/po/POTFILES.in
index 7ece01c..7b54375 100644
--- a/po/POTFILES.in
+++ b/po/POTFILES.in
@@ -23,6 +23,7 @@ src/hid/gtk/gui-config.c
 src/hid/gtk/gui-dialog-print.c
 src/hid/gtk/gui-dialog-size.c
 src/hid/gtk/gui-dialog.c
+src/hid/gtk/gui-drc-window.c
 src/hid/gtk/gui-keyref-window.c
 src/hid/gtk/gui-library-window.c
 src/hid/gtk/gui-log-window.c

commit d42601a5c8481e6eaa48cf643862d86e2e9ce98c
Author: Dan McMahill <dan@xxxxxxxxxxxx>
Commit: Dan McMahill <dan@xxxxxxxxxxxx>

    Remove the use of maintainer mode to gate on/off rules for building
    the documentation.  Instead look for the existance of $(top_srcdir)/.git
    and decide based on that if this is a tarball build (in which case
    the documentation ships already built) or a git build.  If it is a git
    build, then simply require all the needed tools for building the docs.
    If the tools are not found then configure will exit with an explicit
    message saying why it has failed and that either tools need to be installed
    or --disable-doc needs to be given.  Hopefully this will eliminate the
    previous strange behavior of needing --maintainer-mode when building
    docs from cvs/git.

diff --git a/configure.ac b/configure.ac
index 08fcd6e..4d1c529 100644
--- a/configure.ac
+++ b/configure.ac
@@ -10,6 +10,27 @@ AM_CONFIG_HEADER([config.h])
 
 AM_MAINTAINER_MODE
 
+##########################################################################
+#
+# Try to figure out if we are building from git sources.
+# If we are then unless building of the documentation has
+# been disabled then just require the user have all the right
+# tools.  Users building from a tarball won't need latex, makeinfo,
+# etc. but if you're already downloading development sources, then
+# it is not unreasonable to require development tools.  What motivated
+# this is that using maintainer mode proved to cause regular confusion.
+
+AC_MSG_CHECKING([if you are building from a git checkout])
+pcb_git_version=no
+if test -f $srcdir/.gitignore ; then
+	pcb_git_version=yes
+	AC_MSG_RESULT([yes])
+else
+	AC_MSG_RESULT([no])
+fi
+AM_CONDITIONAL(GIT_VERSION, test x$pcb_git_version = xyes)
+
+
 dnl determine host type
 AC_CANONICAL_HOST
 AC_MSG_CHECKING(for windows)
@@ -102,6 +123,11 @@ AC_PATH_PROG(XPMTOPPM, xpmtoppm, notfound)
 AC_PATH_PROG(PPMTOWINICON, ppmtowinicon, notfound)
 AC_PATH_PROG(CONVERT, convert, notfound)
 
+##########################################################################
+#
+# See if we are supposed to build the docs
+#
+
 docs_yesno=yes
 
 AC_MSG_CHECKING([if the documentation should be built])
@@ -125,7 +151,8 @@ docs_yesno=yes
 ])
 AC_SUBST(DOC)
 
-if test "X$docs_yesno" = "Xyes" -a "X$USE_MAINTAINER_MODE" = "Xyes" ; then
+
+if test "X$docs_yesno" = "Xyes" -a "X$pcb_git_version" = "Xyes" ; then
    AC_CHECK_PROGS(MKINFO, makeinfo, no)
    if test "X$MKINFO" != "Xno"; then
       AC_MSG_CHECKING([for GNU makeinfo version >= 4.6])
@@ -145,31 +172,40 @@ if test "X$docs_yesno" = "Xyes" -a "X$USE_MAINTAINER_MODE" = "Xyes" ; then
       fi
    fi
    if test "X$MKINFO" = "Xno"; then
-      AC_MSG_ERROR([You have requested a maintainer-mode build and a build
+      AC_MSG_ERROR([You have requested a build
 of the documentation.  For this to work, you must have version 4.6 or newer of
 the GNU texinfo package.  You seem to have
 
 $v
 
+Please update to a newer version of texinfo or disable building of
+the documentation with --disable-doc
 ])
    fi
 
    AC_CHECK_PROGS(TEXI2DVI, texi2dvi, no)
    if test "X$TEXI2DVI" = "Xno"; then
-      AC_MSG_ERROR([You have requested a maintainer-mode build and a build
+      AC_MSG_ERROR([You have requested a build
 of the documentation.  For this to work, you must have the texi2dvi program
-installed.])
+installed.  Alternatively, you can disable building the documentation with
+--disable-doc.])
    fi
 
 
 	AC_PATH_PROG(PERL, perl, notfound)
 	if test "X$PERL" = "Xnotfound"; then
-			AC_MSG_ERROR([You have requested a maintainer-mode build and a build
+			AC_MSG_ERROR([You have requested a build
 of the documentation.  For this to work, you must have perl installed.
+Alternatively, you can disable building the documentation with
+--disable-doc.
 ])
 	fi
 fi
 
+##########################################################################
+#
+#
+
 # FIXME:  for now, only try to add -rdynamic if we're using gcc.  We really
 # need to figure out what the correct test is here.  In the mean time, this
 # should let things build with SunPRO again.
@@ -467,6 +503,27 @@ AM_CONDITIONAL(MISSING_TEXI2DVI, test x$TEXI2DVI = xnotfound)
 AC_CHECK_PROGS(PS2PDF, ps2pdf, notfound)
 AM_CONDITIONAL(MISSING_PS2PDF, test x$PS2PDF = xnotfound)
 
+AC_CHECK_PROGS(GSCHEM, gschem, notfound)
+AM_CONDITIONAL(MISSING_GSCHEM, test x$GSCHEM = xnotfound)
+
+if test "X$docs_yesno" = "Xyes" -a "X$pcb_git_version" = "Xyes" ; then
+	if test "$LATEX" = "notfound" -o "$PDFLATEX" = "notfound" -o "$DVIPS" = "notfound" -o "$TEXI2DVI" = "notfound" -o "$PS2PDF" = "notfound" ; then
+		AC_MSG_ERROR([It appears that you are building from a source tree obtained
+via git but you do not have the required tools installed to build the documentation.  Here
+is a list of tools and the detected values:
+LATEX:  $LATEX
+PDFLATEX:  $PDFLATEX
+DVIPS:     $DVIPS
+TEXI2DVI:  $TEXI2DVI
+PS2PDF:    $PS2PDF
+GSCHEM:    $GSCHEM
+
+Either make sure these tools are installed or disable building and installing the documentation
+by using the --disable-doc configure option.
+])
+	fi
+fi
+
 dnl Checks for libraries.
 AC_CHECK_LIB(m, sqrt)
 AC_CHECK_LIB(dl, dlopen)
@@ -712,10 +769,10 @@ AC_SUBST(PCB)
 
 # now make see how essential it was that we have a pcb executable for the build
 # host
-if test "X$USE_MAINTAINER_MODE" = "Xyes" ; then
+if test "X$pcb_git_version" = "Xyes" ; then
 	if test "X$docs_yesno" = "Xyes" -o "X$enable_m4lib_png" = "Xyes" ; then
 		if test "$PCB" = "notfound" ; then
-			AC_MSG_ERROR([You have selected a maintainer mode build with m4lib png
+			AC_MSG_ERROR([You have selected a build with m4lib png
 previews enabled and/or with building the documentation enabled but you also
 appear to be cross-compiling.  For this to work, you must have a pcb installed that
 can run on this machine (the build machine) because it is needed for generating
@@ -897,7 +954,11 @@ if test -d $srcdir/README_FILES; then
 fi
 if test -d $srcdir/doc; then
    AC_CONFIG_FILES(doc/Makefile)
+fi
+if test -d $srcdir/doc/gs; then
    AC_CONFIG_FILES(doc/gs/Makefile)
+   AC_CONFIG_FILES(doc/gs/gafrc)
+   AC_CONFIG_FILES(doc/gs/gschemrc)
 fi
 if test -d $srcdir/example; then
    AC_CONFIG_FILES(example/Makefile)
@@ -944,12 +1005,19 @@ with_exporters=`echo $with_exporters | sed 's/,/ /g'`
 expandedXDGDATADIR=`eval "echo $XDGDATADIR"`
 expandedKDEDATADIR=`eval "echo $KDEDATADIR"`
 
+if test "X$pcb_git_version" = "Xyes" ; then
+	pcb_sources="GIT"
+else
+	pcb_sources="tarball"
+fi
+
 AC_MSG_RESULT([
 ** Configuration summary for $PACKAGE $VERSION:
 
    GUI:                      $with_gui
    Printer:                  $with_printer
    Exporters:                $with_exporters
+   Source tree distribution: $pcb_sources
    Build documentation:      $docs_yesno
    Build toporouter:         $enable_toporouter
    Enable toporouter output: $enable_toporouter_output
diff --git a/doc/Makefile.am b/doc/Makefile.am
index 7a795d4..177cd9c 100755
--- a/doc/Makefile.am
+++ b/doc/Makefile.am
@@ -23,23 +23,19 @@
 ##  Thomas Nau, Schlehenweg 15, 88471 Baustetten, Germany
 ##  Thomas.Nau@xxxxxxxxxxxxx
 ##
-##  RCS: $Id$
-##
+
+## not until it is fully fixed up in terms of building
+##SUBDIRS=	gs
 
 info_TEXINFOS=	pcb.texi
 
-# We avoid adding all the dependencies except in maintainer mode.  This is
-# because the automake team feels that you should not require the user
-# to have makeinfo and friends installed just to build the package.
-# This seems reasonable.  Because of that, the documentation must be
-# built in the source directory so it can be found when creating a distfile
-# and this means you can't build outside the source tree with a read-only
-# source.  So, ignore the dependencies unless we're in maintainer mode
-# but be sure and put the generated files in the distfile via EXTRA_DIST
-# and dist_pkgdata_DATA.  Also this helps us avoid problem with users
-# having various out of date versions of the texinfo package installed
-# which can have all sorts of issues.
-if MAINTAINER_MODE
+# We avoid adding all the dependencies when building from a tarball.
+# This allows end users to use pre-built documentation instead of
+# requiring recent versions of makeinfo and other tools used only
+# to build the documentation.  Users who obtain the cutting edge sources
+# via GIT are considered to be doing "development" and incur a slightly
+# higher list of required tools.
+if GIT_VERSION
 pcb_TEXINFOS=	${inline_texi} ${pcb_output} ${tab_texi}
 else
 pcb_TEXINFOS=
@@ -60,7 +56,7 @@ pdf_docs=	${info_TEXINFOS:.texi=.pdf} refcard.pdf
 # time on the same input file.  That causes clashes in 
 # the .aux files which are used by both latex and
 # pdflatex.
-if MAINTAINER_MODE
+if GIT_VERSION
 refcard.pdf: refcard.ps
 pcb.pdf: pcb.ps
 endif
@@ -76,6 +72,7 @@ mostlyclean-aminfo:
 
 EXTRA_DIST= \
 	ascii2texi.awk \
+	eps2png \
 	extract-docs \
 	refcard.tex \
 	pcb.dvi \
@@ -87,12 +84,11 @@ EXTRA_DIST= \
 	${tab_files} \
 	${tab_texi}
 
-MAINTAINERCLEANFILES= \
+if GIT_VERSION
+BUILT_SOURCES=	${tab_texi} ${pcb_output} ${inline_texi}
+CLEANFILES= \
 	refcard.aux refcard.dvi refcard.log refcard.pdf refcard.ps \
 	${pcb_output} ${tab_texi} ${inline_texi} pcb.dvi pcb.html pcb.pdf pcb.ps
-
-if MAINTAINER_MODE
-BUILT_SOURCES=	${tab_texi} ${pcb_output} ${inline_texi}
 else
 BUILT_SOURCES=
 endif
@@ -129,14 +125,14 @@ pcb_output=	${pcb_output_inst} ${pcb_output_noinst}
 
 ${inline_texi} : extracted-docs
 
-# no need to build these when not in maintainer mode.  They're not used then
+# no need to build these when building via a tarball.  They're not used then
 # anyway.
 .PHONY : extracted-docs
 extracted-docs :
-if MAINTAINER_MODE
+if GIT_VERSION
 	${PERL} $(srcdir)/extract-docs $(srcdir)
 else
-	@echo "Skipping documentation extraction since you are not in maintainer-mode"
+	@echo "Skipping documentation extraction since you are not building from GIT sources"
 endif
 
 SUFFIXES = .dvi .eps .gif .pcb .pdf .png .ps .tab .tex
diff --git a/doc/gs/Makefile.inc b/doc/gs/Makefile.inc
index 00f34a0..8817a7c 100644
--- a/doc/gs/Makefile.inc
+++ b/doc/gs/Makefile.inc
@@ -91,10 +91,6 @@ EXTRA_DIST= \
 	${tab_files} \
 	${tab_texi}
 
-MAINTAINERCLEANFILES= \
-	refcard.aux refcard.dvi refcard.log refcard.pdf refcard.ps \
-	${pcb_output} ${tab_texi} ${inline_texi} pcb.dvi pcb.html pcb.pdf pcb.ps
-
 CLEANFILES = \
 	${html_docs} \
 	${ps_docs} \
@@ -104,7 +100,15 @@ CLEANFILES = \
 	${pdf_files} \
 	${tab_texi}
 
-BUILT_SOURCES=	@MAINTAINER_MODE_TRUE@ ${tab_texi} ${pcb_output} ${inline_texi}
+if GIT_VERSION
+BUILT_SOURCES=	${tab_texi} ${pcb_output} ${inline_texi}
+CLEANFILES+= \
+	refcard.aux refcard.dvi refcard.log refcard.pdf refcard.ps \
+	${pcb_output} ${tab_texi} ${inline_texi} pcb.dvi pcb.html pcb.pdf pcb.ps
+
+else
+BUILT_SOURCES=
+endif
 
 ASCII2TEXI=	${AWK} -f $(srcdir)/../ascii2texi.awk ncol=3
 
@@ -116,20 +120,34 @@ pcb_output=	\
 SUFFIXES = .dvi .eps .gif .pcb .pdf .png .ps .tab .tex
 
 %.png %.eps : %.pcb
-	../../src/pcb -x eps --font-path $(top_srcdir)/src --eps-file $*.eps $<
-	../eps2png -resolution 100 -output $*.png $*.eps
+	$(PCB) -x eps --font-path $(top_srcdir)/src --eps-file $*.eps $<
+	$(PERL) $(srcdir)/../eps2png -resolution 100 -output $*.png $*.eps
 
 %.png %.eps : %.fp
-	../../src/pcb -x eps --font-path $(top_srcdir)/src --eps-file $*.eps $<
-	../eps2png -resolution 100 -output $*.png $*.eps
+	$(PCB) -x eps --font-path $(top_srcdir)/src --eps-file $*.eps $<
+	$(PERL) $(srcdir)/../eps2png -resolution 100 -output $*.png $*.eps
 
 %.png %.eps : %.sch
-	gschem -p -o $*.eps -s ./print-eps.scm $<
-	../eps2png -resolution 100 -output $*.png $*.eps
+if MISSING_GSCHEM
+	@echo "****************************************************"
+	@echo "WARNING:  gschem is missing on your system but"
+	@echo "$@ is out of date and needs to rebuilt."
+	@echo "Changes to $< will be ignored"
+else
+	$(GSCHEM) -p -o $*.eps -s ./print-eps.scm $<
+	$(PERL) $(srcdir)/../eps2png -resolution 100 -output $*.png $*.eps
+endif
 
 %.png %.eps : %.sym
-	gschem -p -o $*.eps -s ./print-eps.scm $<
-	../eps2png -resolution 100 -output $*.png $*.eps
+if MISSING_GSCHEM
+	@echo "****************************************************"
+	@echo "WARNING:  gschem is missing on your system but"
+	@echo "$@ is out of date and needs to rebuilt."
+	@echo "Changes to $< will be ignored"
+else
+	$(GSCHEM) -p -o $*.eps -s $(srcdir)/print-eps.scm $<
+	$(PERL) $(srcdir)/../eps2png -resolution 100 -output $*.png $*.eps
+endif
 
 .eps.pdf :
 if MISSING_PS2PDF
@@ -187,3 +205,4 @@ djtest :
 	@echo png_files = ${png_files}
 	@echo
 	@echo png_found = ${png_found}
+
diff --git a/lib/Makefile.am b/lib/Makefile.am
index 5701d50..9825847 100644
--- a/lib/Makefile.am
+++ b/lib/Makefile.am
@@ -43,7 +43,7 @@ else
 PREVIEW=	
 endif
 
-if MAINTAINER_MODE
+if GIT_VERSION
 NEWLIB_DEPS=	${LIBCONTENTS} ${srcdir}/m4lib_to_newlib.sh
 else
 NEWLIB_DEPS=
@@ -70,7 +70,7 @@ uninstall-local:
 
 EXTRA_DIST=	${NEWLIB} footprint.pcb ${NEWLIB}.stamp png_diff.sh
 
-if MAINTAINER_MODE
+if GIT_VERSION
 DISTCLEANFILES=	${NEWLIB}.stamp
 else
 DISTCLEANFILES=

commit 5fe7f9ab6aea59e60afb1911a4b5f54264b015e8
Author: Dan McMahill <dan@xxxxxxxxxxxx>
Commit: Dan McMahill <dan@xxxxxxxxxxxx>

    add gts/predicates_init.h to DISTCLEANFILES.  Also comment out the section
    that extracts REGISTER lines from the gts code.  We currently don't have any
    REGISTER lines in the gts code and so make was exiting because a grep failed.

diff --git a/src/Makefile.am b/src/Makefile.am
index ebff648..48b150d 100644
--- a/src/Makefile.am
+++ b/src/Makefile.am
@@ -365,10 +365,13 @@ LIBGTS_SRCS = \
 libgts_a_SOURCES = ${LIBGTS_SRCS} gts/gts_lists.h
 libgts_a_DEPENDENCIES = gts/predicates_init.h
 
+ 
 gts/gts_lists.h : ${LIBGTS_SRCS} Makefile
 	true > $@
-	(for f in ${LIBGTS_SRCS} ; do cat $(srcdir)/$$f ; done) | grep "^REGISTER" > $@.tmp
-	mv $@.tmp $@
+# Uncomment out the following if/when we ever end up with REGISTER in any of the gts
+# source files.  For now, there aren't any and so the grep fails and make stops
+#	(for f in ${LIBGTS_SRCS} ; do cat $(srcdir)/$$f ; done) | grep "^REGISTER" > $@.tmp
+#	mv $@.tmp $@
 
 libbatch_a_CPPFLAGS = -I./hid/batch
 LIBBATCH_SRCS = \
@@ -441,11 +444,11 @@ DISTCLEANFILES= pcbtest.sh gpcb-menu.h pcb-menu.h \
 	hid/png/png_lists.h \
 	hid/nelma/nelma_lists.h \
 	hid/ps/ps_lists.h \
+	gts/predicates_init.h \
 	gts/gts_lists.h \
 	core_lists.h \
 	dbus-introspect.h
 
-
 # create wrapper script that lets you test pcb prior to installation
 pcbtest.sh:	$(srcdir)/pcbtest.sh.in Makefile
 	sed -e 's;@BUILDDIR@;${abs_builddir};g' -e 's;@TOP_BUILDDIR@;${abs_top_builddir};g' \




_______________________________________________
geda-cvs mailing list
geda-cvs@xxxxxxxxxxxxxx
http://www.seul.org/cgi-bin/mailman/listinfo/geda-cvs