~ [ source navigation ] ~ [ identifier search ] ~ [ freetext search ] ~ [ file search ] ~

Minix Cross Reference
Minix/commands/cawf/


Name Size Last modified (GMT) Description
Back Parent directory 1996-09-12 21:18:55
File Makefile 1764 bytes 1996-04-10 02:28:25
File README 9585 bytes 1996-04-10 02:28:21
C file ansi.h 1681 bytes 1996-04-10 02:28:21
C file bsfilt.c 4130 bytes 1996-04-10 02:28:21
C file cawf.c 11788 bytes 1996-04-10 02:28:21
C file cawf.h 9786 bytes 1996-04-10 02:28:21
C file cawflib.h 1355 bytes 1996-04-10 02:28:21
File common 189 bytes 1996-04-10 02:28:22
C file device.c 9225 bytes 1996-04-10 02:28:22
File device.cf 1797 bytes 1996-04-10 02:28:22
File diffs 5730 bytes 1996-04-10 02:28:22
File dumb.dev 2742 bytes 1996-09-10 20:43:44
C file error.c 2427 bytes 1996-04-10 02:28:22
C file expand.c 7221 bytes 1996-04-10 02:28:22
C file expr.c 3692 bytes 1996-04-10 02:28:22
C file getopt.c 1644 bytes 1996-04-10 02:28:22
C file macsup.c 3987 bytes 1996-04-10 02:28:23
File man.mac 2770 bytes 1996-09-08 20:14:04
File me.mac 2605 bytes 1996-04-10 02:28:23
File mnx.mac 1510 bytes 1996-04-10 02:28:23
File ms.mac 2426 bytes 1996-04-10 02:28:23
C file nreq.c 17708 bytes 1996-04-10 02:28:23
C file output.c 2209 bytes 1996-04-10 02:28:23
C file pass2.c 19925 bytes 1996-04-10 02:28:23
C file pass3.c 13228 bytes 1996-04-10 02:28:24
C file proto.h 4345 bytes 1996-04-10 02:28:24
C file regerror.c 299 bytes 1996-04-10 02:28:24
C file regexp.c 29346 bytes 1996-04-10 02:28:24
C file regexp.h 551 bytes 1996-04-10 02:28:24
C file regmagic.h 153 bytes 1996-04-10 02:28:24
C file store.c 7965 bytes 1996-04-10 02:28:25
C file string.c 7035 bytes 1996-04-10 02:28:25

  1 Cawf - nroff-like text formatter
  2 
  3 Cawf is a C version of awf, Henry Spencer's Amazingly Workable (text)
  4 Formatter.  (Awf is written in awk and appears in comp.sources.unix,
  5 Volume 23, Issue 27.)  Cawf and awf provide a usable subset of raw nroff
  6 capabilities and the styles of the man(7), me(7) and ms(7) macro sets.
  7 One of cawf's virtues is that it will run on PC clones under MS-DOS.  It
  8 is also, like awf, totally independent of any licensed Unix source code.
  9 
 10 This distribution contains complete source, make files for Unix and
 11 MS-DOS, documentation (raw and formatted) and MS-DOS executables for cawf
 12 and a companion output filters, bsfilt.
 13 
 14 This is the fourth distribution of cawf.  Changes include:
 15 
 16         *  Some rudimentary output device support has been added, via a device
 17            configuration file.
 18 
 19         *  The code has been converted to use unsigned characters.
 20 
 21         *  An attempt has been made to make the code ANSI C compliant.
 22 
 23         *  The following bugs have been fixed:
 24 
 25                 A bug in the locating of the device file has been corrected,
 26                 so that the code performs as documented.
 27 
 28                 Null macro arguments are ignored.
 29 
 30                 Some unused arguments to local functions have been more
 31                 carefully type cast to avoid portability problems.
 32 
 33         *  The .fl and .rn requests are now supported.
 34 
 35         *  Limited support has been added for the non-break request control
 36            character, the acute accent (').
 37 
 38         *  Argument count conditionals -- operating on \n(.$ -- may now use
 39            the >= and <= operators in addition to [<=>].
 40 
 41         *  Macros may be terminated with "..", ".", "''" or "'".
 42 
 43         *  String interpolation is performed if it is specified at the start
 44            of the .ds request argument.
 45 
 46         *  The .tr request has been enhanced to handle named characters and
 47            string interpolation.
 48 
 49         *  The SS macro is now included in man.mac.
 50 
 51         *  The cawf version number is now displayed in the help output.
 52 
 53         *  A limited -me macro set is included in me.mac.
 54 
 55 Changes to cawf to run under Minix:
 56 
 57         *  The DOS binaries and make files have been removed.
 58  
 59         *  Tabs stops changed from per 5 to per 8.
 60 
 61         *  Bold and underline as it should be in device.cf.
 62 
 63         *  Added .SB and .TA to man.mac.
 64 
 65         *  Numerous prototypes added.
 66 
 67 
 68 CONTENTS
 69 --------
 70 
 71 This Minix distribution of cawf includes:
 72 
 73         README              this file
 74         *.c and *.h         source files to build cawf and bsfilt (bsfilt
 75                             removes Backspaces from cawf output)
 76         bsfilt.1            nroff source for the bsfilt manual page
 77         cawf.1              nroff source for the cawf manual page
 78         common              initialization file for CAWFLIB library
 79         device.cf           output device configuration file for CAWFLIB
 80                             library
 81         dumb.dev            device description file for CAWFLIB library
 82         Makefile            Unix-style make file
 83         man.mac             man(7) macros for CAWFLIB library
 84         me.mac              me(7) macros for CAWFLIB library
 85         ms.mac              ms(7) macros for CAWFLIB library
 86         diffs               Minix patches
 87 #ifdef PUTTING_IT_ON_THE_NET
 88         cawf
 89         bsfilt              binaries compiled under Minix-PC 1.5 using the ACK
 90                             ANSI C compiler using software floating point
 91 #endif
 92 
 93 
 94 LIBRARY
 95 -------
 96 
 97 To use cawf, you must select a location for the CAWFLIB library files.  The
 98 distributed cawf binary expects to find them in /usr/local/lib/cawf but you
 99 can alter that with the CAWFLIB environment variable, or you can change the
100 CAWFLIB #define in cawf.h and rebuild cawf from the sources.
101 
102 CAWFLIB contains a minimum of six files:
103 
104         common          common raw nroff commands to get cawf started
105         dumb.dev        a set of character definitions for a plain, "dumb"
106                         ASCII device - e. g., the console display, a CRT or
107                         a basic line printer
108         device.cf       the output device configuration file
109         man.mac         the man(7) macros
110         me.mac          the me(7) macros
111         ms.mac          the ms(7) macros
112 
113 You may want to add your own macro files to the library.  Just name them
114 "m[your-name].mac", following the usual nroff naming convention for macro
115 files.
116 
117 If you have fancy output devices with special character specifications, you
118 may want to generate new *.dev files for them.  Follow the format of dumb.dev
119 in making new character specifications.  To define characters for a new
120 device, select a name prefix for it and create a file in CAWFLIB with the
121 name "<prefix>.dev".  To use the new file, set the TERM environment variable
122 to <prefix> - e. g., when I test cawf on Unix, I need a vt100.dev, because
123 my TERM environment variable value is usually vt100.  All I do is make
124 vt100.dev a symbolic link to dumb.dev.  Even that isn't even necessary,
125 because cawf will use dumb.dev if it can't find TERM.dev.
126 
127 In addition to the character specifications possible through the *.dev files,
128 cawf provides one-time font selection and bold or italic face support for
129 output devices via its -d and -f options.  Cawf can be directed to issue
130 specific device codes for bold and italic characters, and one font can be
131 specified for the entire document.  Cawf has some built-in output device
132 support, and addition support is contained in the device configuration file,
133 device.cf.  Additional devices may be defined in device.cf.
134 
135 It is not necessary to generate a new *.dev file for each output device
136 definition.  Only when you need special character definitions do you need to
137 create a *.dev file.  The dumb.dev file is adequate for most devices you 
138 define in device.cf.
139 
140 
141 SOURCES
142 -------
143 
144 The Unix make file has some definitions that help tune it to the local
145 Unix environment:
146 
147         CAWFLIB         is a string that can be used in lieu of changes
148                         to cawf.h's CWFLIB #define.
149 
150         MALLOCH         is a string that should be defined when a UNIX
151                         environment has a <malloc.h>, unless it also has a
152                         <stdlib.h> with protoypes for malloc() and its
153                         relatives.  In the latter case, you should define
154                         STDLIB, but you don't need to define MALLOCH.
155 
156         STDLIB          indicates that standard library function prototype
157                         definitions may be found in <stdlib.h>.
158 
159                         STDLIB must be defined for MS-DOS Quick C.
160 
161                         If STDLIB is not defined, the cawf sources try to
162                         define their own library function return values.
163 
164         __STR__         The definition of this string must be deleted when
165                         using the xlc 1.2 compiler on the RISC/System 6000
166                         under AIX 3.2.  Put
167 
168                                 -U__STR__
169 
170                         in the Makefile DEFS string.  This must be done
171                         because the xlc 1.2 compiler does not correctly inline
172                         string functions when compiling pass3.c.
173 
174         UNIX            switches the build environment to Unix.  You may also
175                         have to decide about MALLOCH, STDLIB, __STR__ and USG
176                         when you define UNIX.
177 
178                         Do not define UNIX for MS-DOS Quick-C; do define
179                         STDLIB.
180 
181         USG             adjusts for System V.  (UNIX must also be defined.)
182 
183                         You may also need to define USG to select the proper
184                         header file for string function prototypes.  If UNIX
185                         and USG are defined, "proto.h" selects <string.h>;
186                         if only UNIX, <strings.h>.  Cawf needs the more
187                         complete set of definitions, including strchr() and
188                         strrchr().  If <string.h> #includes <strings.h>, as
189                         is sometimes the case, define only UNIX.
190 
191 I have built and tested cawf in the UNIX context under AIX 3.2 (see the
192 note above on __STR__), BSD4.3-Tahoe, Sequent DYNIX, ETAV (SYSV 3.0),
193 NeXTStep 3.0, SunOS 4.1.1 and Ultrix 2.2.  If you build under another Unix
194 variant, you may have to adjust the source code, header files and Makefile
195 to fit.  Check the Makefile first for hints.
196 
197 
198 ANSI C COMPLIANCE
199 -----------------
200 
201 Some effort has been devoted to making the cawf sources ANSI C compliant.
202 The header file proto.h contains function prototypes that enable ANSI C
203 argument checking.  The state of definition of the __STDC__ symbol is used
204 to select options that depend on strict adherence to the ANSI C standard --
205 e.g., the need for the isascii() test before islower() or isupper().  If
206 your ANSI compiler doesn't define this variable when it's acting in strict
207 ANSI C mode, you may have to define it in the Makefile.
208 
209 
210 MS-DOS CONSIDERATIONS
211 ---------------------
212 
213 The MS-DOS version of cawf was created to run under the KornShell of the
214 Mortis Kern Systems Toolkit.  One ramification of using MKS' ksh is that it
215 supports the separate standard error and standard output streams.  Hence,
216 cawf blithely distributes its error messages to the standard error file, and
217 assumes the user's shell is capable of separating them from standard output.
218 
219 If you don't use the MKS KornShell, but do want to separate the output
220 streams, you'll have to modify the cawf source code.  As a rudimentary aid,
221 cawf uses a separate stream pointer, Efs, for writing error output, but sets
222 it to stderr.  You can change that process to open a separate error file and
223 set Efs to point to it.
224 
225 
226 COPYRIGHTS AND CREDITS
227 ----------------------
228 
229 The sources are copyrighted, but freely distributable under usual terms -
230 retention of credit, etc.
231 
232 Please acknowledge:
233 
234         AT&T for their public-domain release of getopt(3) at the 1985
235         UNIFORUM conference;
236 
237         Chet Creider, Bob Hardy and Ted Campbell for their contributions
238         to font filtering;
239 
240         Henry Spencer for awf and his regular expression package;
241 
242         Andy Tanenbaum for his help in ANSI C compliance, including his
243         ansi.h header file from Minix.
244 
245 Henry says about awf, "I can't believe I really wrote this."  Those are
246 my sentiments exactly about cawf, but I also understand that necessity
247 sometimes forces us to do what we would prefer to avoid.
248 
249 
250 BUGS AND ENHANCEMENTS
251 ---------------------
252 
253 I'll be glad to hear about bugs and needs for enhancements, but make no
254 promises about delivering fixes or upgrades in response.
255 
256 Vic Abell <abe@cc.purdue.edu>
257 24 November 1992
258 
259 
260 MINIX SPECIFIC TINKERING
261 ------------------------
262 
263 Kees J. Bot <kjb@cs.vu.nl>
264 26 November 1992

~ [ source navigation ] ~ [ identifier search ] ~ [ freetext search ] ~ [ file search ] ~

This page was automatically generated by the LXR engine.
Visit the LXR main site for more information.