--- dealer-0.20040530.orig/dealer.dpp.pod
+++ dealer-0.20040530/dealer.dpp.pod
@@ -0,0 +1,167 @@
+=head1 NAME
+
+dealer.dpp - preprocessor for dealer scripts
+
+=head1 SYNOPSIS
+
+B<dealer.dpp> [I<inputfile>]
+
+=head1 DESCRIPTION
+
+dealer.dpp stands for dealer-pre-processor. Its main purpose it to preprocess
+input files for Hans van Staveren's great dealer program.
+
+=head1 SYNTAX
+
+The program expands shape specifications of the form:
+
+    shape{COMPASS, shp1 + shp2 + ... + shpM - shm1 - ... - shmN}
+
+=head2 regular shapes
+
+7xxx, 4432, 4xx5 have the same meaning as in original dealer.
+
+=head2 the `at least' operator
+
+whenever you put a `+' after a suit-length, it means `at least'.
+
+    shape{north, 5+xx5+}: at least 5/5 in the blacks,
+ -->shape(north,5xx5 + 5xx6 + 6xx5 + 5xx7 + 6xx6 + 7xx5 + 5008 + 6007
+                + 7006 + 8005)
+
+=head2 the `at most' operator:
+
+same as the `at least', just use a `-':
+
+    shape{north, 2-xxx}: at most 2 spades,
+ -->shape(north,0xxx + 1xxx + 2xxx)
+
+=head2 the `range' operator:
+
+the range operator operates on a single suit. It comes with [],
+like in Perl.
+
+    shape{north, x[3-5]x[13]}: (3 to 5) hearts, and one or 3 clubs 
+ -->shape(north,x3x1 + x4x1 + x3x3 + x5x1 + x4x3 + x5x3)
+
+Note that shape{north, 3-xxx} is equivalent to shape{north,[0-3]xxx}
+You can write compound ranges if you want:
+
+    shape{north, [013-68]xxx} means: 0,1,3,4,5,6 or 8 spades.
+
+=head2 the `permutation' operator:
+
+the permutation operator will appears as () like in the WBF rules
+of specifying shapes.
+
+    shape{north, (4432)}: any 4432 hand.
+ -->shape(north,any 4432)
+
+what's best is that the () operator can operate on restricted groups
+of cards:
+
+    shape{north, 5s(431)}: 5 spades, the others suits being (431).
+ -->shape(north,5134 + 5314 + 5143 + 5341 + 5413 + 5431)      
+
+What you have to do is:
+
+=over
+
+=item *
+
+specify the suit names (s,h,d,c in english) in the left part of
+the shape, in any order,
+
+=item *
+
+and enclose the rest of the permutation into () in the right part.
+
+=back
+
+A (complicated) example:
+
+    shape{north, 4+c3+d(2+2+)}: at least 5 clubs, at least 3 diamonds, 
+                               and no short major.
+ -->shape(north,3334 + 4234 + 2434 + 3244 + 2344 + 2254 + 3235 + 2335 + 2245 + 2236)
+
+=head2 the `Major' operator:
+
+has to be used together with the () operator. `M' stands for `a major'
+The `M' operator can only be used in the left part (never put a M
+inside the parens)
+
+    shape{north, 5M(xxx)}
+ -->shape(north,x5xx + 5xxx)
+
+    shape{north, 5+M3+c(31)}
+ -->shape(north,1534 + 3514 + 1633 + 3613 + 5134 + 5314 + 6133 + 6313)
+
+=head2 the `minor' operator:
+
+same as the `Major' operator, but in lowercase `m'.
+
+    shape{north, 5M5m(xx)}
+ -->shape(north,x5x5 + 5xx5 + x55x + 5x5x)
+
+=head2 the `conditional' operator:
+
+you've got the possibility of specifying complex conditions to be
+verified that cannot be simply expressed by other operators. In
+order  to do that, you use the `:' operator, just after the
+atomic-shape specification:
+
+    shape{north, shp1:condition1,condition2,...}
+
+The conditions use the letters (s,h,d,c) as variables for the suit
+lengths, and the usual C-operators (*,+,-,/,>,<,==,!,?, and so on).
+Note that the `,' stands for the `and-logical' operator. You can
+use `or' for the `or-logical' operator.
+
+    shape{north, 4+s4+h(xx):d>c,h+s==10}
+ -->shape(north,6421 + 6430 + 5521 + 5530 + 4621 + 4630)
+
+=head1 EXAMPLES
+
+=over
+
+=item a balanced hand
+
+ (3+3+3+2+)
+
+=item a french 1H opening
+
+ x5+xx:h>s,h>=d,h>=c
+
+=item my No_trump opening
+
+ hn = hcp(north)
+ n1NT = (hn > 14 and hn < 18 and shape{north, 5m(332) + 5m2s(42)} )
+     or (hn > 13 and hn < 17 and shape{north, 6m(322)}            )
+     or (hn > 15 and hn < 18 and shape{north, 5M(332)}            )
+     or (hn > 15 and hn < 19 and shape{north, (4432) + (4333)}    )
+
+=back
+
+=head1 SEE ALSO
+
+dealer(6),
+F</usr/share/doc/dealer/Manual>.
+
+=head1 AUTHORS
+
+=over
+
+=item Francois Dellacherie
+
+=item Manpage: Christoph Berg <cb@df7cb.de>
+
+=back
+
+=head1 LICENSE
+
+This program is hereby put in the public domain. Do with it whatever
+you want, but I would like you not to redistribute it in modified form
+without mentioning the fact of modification. I will accept bug reports
+and modification requests, without any obligation of course, but fixing
+bugs someone else put in is beyond me.
+
--- dealer-0.20040530.orig/dealer.pod
+++ dealer-0.20040530/dealer.pod
@@ -0,0 +1,133 @@
+=head1 NAME
+
+dealer - bridge hand generator
+
+=head1 SYNOPSIS
+
+B<dealer> [-023ehuvmqV] [-p I<n>] [-g I<n>] [-s I<seed>] [-l I<n>] [I<inputfile>]
+
+=head1 DESCRIPTION AND EXAMPLE
+
+The program dealer can be used to generate hands for partnerships bidding training or for generating
+statistics that can be used to design conventions, or win postmortems.
+
+Running the program involves 3 steps. First, the user has to write an input file containing
+hand-descriptions and action. A very simple example would look something like:
+
+    condition shape(north, any 4333 + any 4423) and hcp(north)>=19
+    action printall
+
+The first line specifies a condition for the north hand, in this case, a hand with 4333 or 4432 shape
+and at least 19 high card points. The second line tells the program to print the 4 hands. The program
+reads from standard input, so in principle, it is possible to enter the conditions directly into the
+program. Using a file is a lot more practical though, as it allows the user to re-use conditions and
+fine-tune the conditions.
+
+Then the program has to be run, it reads the file, looks at the various command line switches and then
+produces a number of hands. The output appears on the screen but can be re-directed to a file.
+
+Finally, the user has to look at output and analyze the produced hands. Alternatively, the output can
+be used for a playing program.
+
+=head1 OPTIONS
+
+=over
+
+=item B<-e>
+
+Exhaust mode (alpha version).
+
+=item B<-g> I<number>
+
+Maximum number of hands to generate (default is 1000000).
+
+=item B<-l> I<number>
+
+Instead of shuffling, deals are read from the file library.dat by M. Ginsberg
+(see [1]). When using this, the tricks() function is quite fast and bridge.exe
+from GIB is not used.
+
+[1] ftp://ftp.cirl.uoregon.edu/pub/users/ginsberg/bridge/
+
+=item B<-m>
+
+Shows a progress meter.
+
+=item B<-p> I<number>
+
+Maximum number of hands to produce (default is 40).
+
+=item B<-q>
+
+Suppress PBN output (useful for testing, then switch it back on when generating the "final" sample).
+
+=item B<-s> I<number>
+
+Uses number as the seed for the random generator, running the program twice
+with the same seed will produce the same sequence of hands.
+
+=item B<-u>
+
+Select uppercase for the symbols "AKQJT" (default is lowercase).
+
+=item B<-v>
+
+Toggle verbose output, prints statistics at the end of the run (default is on).
+
+=item B<-V>
+
+Emit a version-identification string and exit.
+
+=item B<-h>
+
+Help, prints the syntax.
+
+=item B<-0>
+
+No swapping, each deal is generated normally (shuffling) (default).
+
+=item B<-2>
+
+2-way swapping, after each shuffle another deal is generated by permuting E and
+W, leaving N and S in place (NB: not fully compatible with predeal).
+
+=item B<-3>
+
+3-way swapping, after each shuffle another 5 deals are generated by permuting
+E, W, and S every which way, leaving N in place (NB: not fully compatible with
+predeal).
+
+=back
+
+=head1 BUGS
+
+I would prefer if you did B<not> use this program for generating hands
+for tournaments. I have not investigated the random number generation
+closely enough for me to be comfortable with that thought.
+
+=head1 SEE ALSO
+
+F</usr/share/doc/dealer/Manual>,
+dealer.dpp(6),
+deal(6).
+
+=head1 AUTHORS
+
+=over
+
+=item Hans van Staveren <sater@sater.home.cs.vu.nl>
+
+=item Henk Uijterwaal <henk@ripe.net>
+
+=item Manpage: Christoph Berg <cb@df7cb.de>
+
+=back
+
+=head1 COPYRIGHT AND LICENSE
+
+This program is hereby put in the public domain. Do with it whatever
+you want, but I would like you not to redistribute it in modified form
+without mentioning the fact of modification. I will accept bug reports
+and modification requests, without any obligation of course, but fixing
+bugs someone else put in is beyond me.
+
