home *** CD-ROM | disk | FTP | other *** search
/ Usenet 1994 October / usenetsourcesnewsgroupsinfomagicoctober1994disk2.iso / unix / volume26 / cook-1.4 / part02 < prev    next >
Text File  |  1993-05-03  |  101KB  |  3,537 lines

  1. Newsgroups: comp.sources.unix
  2. From: pmiller@bmr.gov.au (Peter Miller)
  3. Subject: v26i210: cook-1.4 - a file construction tool (like "make"), Part02/11
  4. Sender: unix-sources-moderator@efficacy.home.vix.com
  5. Approved: WhoAmI@efficacy.home.vix.com
  6.  
  7. Submitted-By: pmiller@bmr.gov.au (Peter Miller)
  8. Posting-Number: Volume 26, Issue 210
  9. Archive-Name: cook-1.4/part02
  10.  
  11. #! /bin/sh
  12. # This is a shell archive.  Remove anything before this line, then unpack
  13. # it by saving it into a file and typing "sh file".  To overwrite existing
  14. # files, type "sh file -c".  You can also feed this as standard input via
  15. # unshar, or by typing "sh <file", e.g..  If this archive is complete, you
  16. # will see the following message at the end:
  17. #        "End of archive 2 (of 11)."
  18. # Contents:  aux/MANIFEST.sh c_incl/os.c c_incl/sniff.h common/ansi.c
  19. #   common/arglex.h common/error.h common/s-v-arg.h common/str.h
  20. #   common/word.h conf/ConvexOS-10 conf/SunOS-4.1.2 conf/SunOS-4.1.3
  21. #   conf/SysV-4.0 conf/ULTRIX-4.2 conf/dgux-5.4.1 cook/expr.h
  22. #   cook/id.h cook/lex.h cook/match.h cook/os.h doc/conditions
  23. #   doc/history doc/intro doc/refman.t doc/variables find_libs/os.c
  24. #   lib/bison lib/lex man1/copyright.so man1/find_libs.1
  25. #   man1/o__rules.so test/00/t0002a.sh test/00/t0005a.sh
  26. #   test/00/t0007a.sh test/00/t0009a.sh test/00/t0015a.sh
  27. #   test/00/t0018a.sh test/00/t0024a.sh test/00/t0027a.sh
  28. #   test/00/t0030a.sh test/00/t0031a.sh test/00/t0032a.sh
  29. #   test/00/t0034a.sh test/00/t0037a.sh test/00/t0039a.sh
  30. #   test/00/t0040a.sh
  31. # Wrapped by vixie@efficacy.home.vix.com on Tue May  4 01:36:35 1993
  32. PATH=/bin:/usr/bin:/usr/ucb ; export PATH
  33. if test -f 'aux/MANIFEST.sh' -a "${1}" != "-c" ; then 
  34.   echo shar: Will not clobber existing file \"'aux/MANIFEST.sh'\"
  35. else
  36. echo shar: Extracting \"'aux/MANIFEST.sh'\" \(1589 characters\)
  37. sed "s/^X//" >'aux/MANIFEST.sh' <<'END_OF_FILE'
  38. X#! /bin/sh
  39. X#
  40. X#    cook - file construction tool
  41. X#    Copyright (C) 1993 Peter Miller.
  42. X#    All rights reserved.
  43. X#
  44. X#    This program is free software; you can redistribute it and/or modify
  45. X#    it under the terms of the GNU General Public License as published by
  46. X#    the Free Software Foundation; either version 2 of the License, or
  47. X#    (at your option) any later version.
  48. X#
  49. X#    This program is distributed in the hope that it will be useful,
  50. X#    but WITHOUT ANY WARRANTY; without even the implied warranty of
  51. X#    MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
  52. X#    GNU General Public License for more details.
  53. X#
  54. X#    You should have received a copy of the GNU General Public License
  55. X#    along with this program; if not, write to the Free Software
  56. X#    Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.
  57. X#
  58. X# MANIFEST: shell script to generate the MANIFEST file
  59. X#
  60. Xecho
  61. Xecho
  62. Xfor f in $*
  63. Xdo
  64. X    case $f in
  65. X    MANIFEST)
  66. X        info="This file"
  67. X        ;;
  68. X    LICENSE)
  69. X        info="GNU General Public License"
  70. X        ;;
  71. X    README)
  72. X        info="Blurb about cook"
  73. X        ;;
  74. X    BUILDING)
  75. X        info="Instructions how to build, test and install cook"
  76. X        ;;
  77. X    CHANGES)
  78. X        info="Change history of this release of cook"
  79. X        ;;
  80. X    Makefile)
  81. X        info="Instructions to make(1) how to build and test cook"
  82. X        ;;
  83. X    common/patchlevel.h)
  84. X        info="The patch level of this distribution."
  85. X        ;;
  86. X    doc/version.so)
  87. X        info="The patch level of this distribution."
  88. X        ;;
  89. X    *)
  90. X        info=`awk '
  91. X/[     ]MANIFEST:[     ]/ {
  92. X    for (j = 1; j < NF; ++j)
  93. X        if ($j == "MANIFEST:")
  94. X            break;
  95. X    for (k = j + 1; k <= NF; ++k)
  96. X        printf(" %s", $k);
  97. X    printf("\n");
  98. X    exit;
  99. X}' $f`
  100. X        ;;
  101. X    esac
  102. X    echo "$f    $info"
  103. Xdone
  104. Xexit 0
  105. END_OF_FILE
  106. if test 1589 -ne `wc -c <'aux/MANIFEST.sh'`; then
  107.     echo shar: \"'aux/MANIFEST.sh'\" unpacked with wrong size!
  108. fi
  109. # end of 'aux/MANIFEST.sh'
  110. fi
  111. if test -f 'c_incl/os.c' -a "${1}" != "-c" ; then 
  112.   echo shar: Will not clobber existing file \"'c_incl/os.c'\"
  113. else
  114. echo shar: Extracting \"'c_incl/os.c'\" \(1396 characters\)
  115. sed "s/^X//" >'c_incl/os.c' <<'END_OF_FILE'
  116. X/*
  117. X *    cook - file construction tool
  118. X *    Copyright (C) 1990, 1991, 1992, 1993 Peter Miller.
  119. X *    All rights reserved.
  120. X *
  121. X *    This program is free software; you can redistribute it and/or modify
  122. X *    it under the terms of the GNU General Public License as published by
  123. X *    the Free Software Foundation; either version 2 of the License, or
  124. X *    (at your option) any later version.
  125. X *
  126. X *    This program is distributed in the hope that it will be useful,
  127. X *    but WITHOUT ANY WARRANTY; without even the implied warranty of
  128. X *    MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
  129. X *    GNU General Public License for more details.
  130. X *
  131. X *    You should have received a copy of the GNU General Public License
  132. X *    along with this program; if not, write to the Free Software
  133. X *    Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.
  134. X *
  135. X * MANIFEST: functions to isolate operating system interface
  136. X */
  137. X
  138. X#include <sys/types.h>
  139. X#include <sys/stat.h>
  140. X#include <errno.h>
  141. X
  142. X#include <error.h>
  143. X#include <os.h>
  144. X
  145. X/*
  146. X *  NAME
  147. X *    os_exists - tests for the existence of a file
  148. X *
  149. X *  SYNOPSIS
  150. X *    int os_exists(char *filename);
  151. X *
  152. X *  DESCRIPTION
  153. X *    Os_returns 1 if the file exists, 0 if it does not.
  154. X */
  155. X
  156. Xint
  157. Xos_exists(filename)
  158. X    char    *filename;
  159. X{
  160. X    struct stat    st;
  161. X
  162. X    if (stat(filename, &st))
  163. X    {
  164. X        switch (errno)
  165. X        {
  166. X        case ENOENT:
  167. X        case ENOTDIR:
  168. X            break;
  169. X
  170. X        default:
  171. X            nfatal("%s", filename);
  172. X        }
  173. X        return 0;
  174. X    }
  175. X    return 1;
  176. X}
  177. END_OF_FILE
  178. if test 1396 -ne `wc -c <'c_incl/os.c'`; then
  179.     echo shar: \"'c_incl/os.c'\" unpacked with wrong size!
  180. fi
  181. # end of 'c_incl/os.c'
  182. fi
  183. if test -f 'c_incl/sniff.h' -a "${1}" != "-c" ; then 
  184.   echo shar: Will not clobber existing file \"'c_incl/sniff.h'\"
  185. else
  186. echo shar: Extracting \"'c_incl/sniff.h'\" \(1590 characters\)
  187. sed "s/^X//" >'c_incl/sniff.h' <<'END_OF_FILE'
  188. X/*
  189. X *    cook - file construction tool
  190. X *    Copyright (C) 1991, 1992, 1993 Peter Miller.
  191. X *    All rights reserved.
  192. X *
  193. X *    This program is free software; you can redistribute it and/or modify
  194. X *    it under the terms of the GNU General Public License as published by
  195. X *    the Free Software Foundation; either version 2 of the License, or
  196. X *    (at your option) any later version.
  197. X *
  198. X *    This program is distributed in the hope that it will be useful,
  199. X *    but WITHOUT ANY WARRANTY; without even the implied warranty of
  200. X *    MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
  201. X *    GNU General Public License for more details.
  202. X *
  203. X *    You should have received a copy of the GNU General Public License
  204. X *    along with this program; if not, write to the Free Software
  205. X *    Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.
  206. X *
  207. X * MANIFEST: interface definition for c_incl/sniff.c
  208. X */
  209. X
  210. X#ifndef SNIFF_H
  211. X#define SNIFF_H
  212. X
  213. X#ifdef __GUNC__
  214. X #pragma once
  215. X#endif
  216. X
  217. X#include <stdio.h>
  218. X#include <main.h>
  219. X
  220. Xenum
  221. X{
  222. X    absent_ignore,
  223. X    absent_mention,
  224. X    absent_error
  225. X};
  226. X
  227. Xtypedef struct option_ty option_ty;
  228. Xstruct option_ty
  229. X{
  230. X    int    o_verbose;
  231. X    int    o_absent_local;
  232. X    int    o_absent_system;
  233. X    int    o_absent_program;
  234. X};
  235. Xextern option_ty option;
  236. X
  237. Xstruct wlist;
  238. X
  239. Xtypedef struct sniff_ty sniff_ty;
  240. Xstruct sniff_ty
  241. X{
  242. X    int (*scan)_((FILE *, struct wlist *, struct wlist *));
  243. X    void (*prepare)_((void));
  244. X};
  245. X
  246. Xextern    sniff_ty    lang_c;
  247. Xextern    sniff_ty    lang_roff;
  248. X
  249. Xvoid sniff _((char *));
  250. Xvoid sniff_include _((char *));
  251. Xlong sniff_include_count _((void));
  252. Xvoid sniff_prepare _((void));
  253. Xvoid sniff_language _((sniff_ty *));
  254. X
  255. X#endif /* SNIFF_H */
  256. END_OF_FILE
  257. if test 1590 -ne `wc -c <'c_incl/sniff.h'`; then
  258.     echo shar: \"'c_incl/sniff.h'\" unpacked with wrong size!
  259. fi
  260. # end of 'c_incl/sniff.h'
  261. fi
  262. if test -f 'common/ansi.c' -a "${1}" != "-c" ; then 
  263.   echo shar: Will not clobber existing file \"'common/ansi.c'\"
  264. else
  265. echo shar: Extracting \"'common/ansi.c'\" \(1991 characters\)
  266. sed "s/^X//" >'common/ansi.c' <<'END_OF_FILE'
  267. X/*
  268. X *    cook - file construction tool
  269. X *    Copyright (C) 1991, 1992, 1993 Peter Miller.
  270. X *    All rights reserved.
  271. X *
  272. X *    This program is free software; you can redistribute it and/or modify
  273. X *    it under the terms of the GNU General Public License as published by
  274. X *    the Free Software Foundation; either version 2 of the License, or
  275. X *    (at your option) any later version.
  276. X *
  277. X *    This program is distributed in the hope that it will be useful,
  278. X *    but WITHOUT ANY WARRANTY; without even the implied warranty of
  279. X *    MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
  280. X *    GNU General Public License for more details.
  281. X *
  282. X *    You should have received a copy of the GNU General Public License
  283. X *    along with this program; if not, write to the Free Software
  284. X *    Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.
  285. X *
  286. X * MANIFEST: functions to implement missing ANSI C mandated functions
  287. X *
  288. X * This file contains functions for use with non-ANSI conforming systems
  289. X * to implement absent ANSI functionality.
  290. X */
  291. X
  292. X#include <stddef.h>
  293. X#include <stdlib.h>
  294. X#include <string.h>
  295. X#include <stdio.h>
  296. X
  297. X#include <conf.h>
  298. X#include <main.h>
  299. X
  300. X
  301. X/*
  302. X * NAME
  303. X *    strerror - string for error number
  304. X *
  305. X * SYNOPSIS
  306. X *    char *strerror(int errnum);
  307. X *
  308. X * DESCRIPTION
  309. X *    The strerror function maps the error number in errnum to an error
  310. X *    message string.
  311. X *
  312. X * RETURNS
  313. X *    The strerror function returns a pointer to the string, the contents of
  314. X *    which are implementation-defined.  The array pointed to shall not be
  315. X *    modified by the program, but may be overwritten by a subsequent call to
  316. X *    the strerror function.
  317. X *
  318. X * CAVEAT
  319. X *    Unknown errors will be rendered in the form "Error %d", where %d will
  320. X *    be replaced by a decimal representation of the error number.
  321. X */
  322. X
  323. X#ifdef CONF_NO_strerror
  324. X
  325. Xchar *
  326. Xstrerror(n)
  327. X    int        n;
  328. X{
  329. X    extern int    sys_nerr;
  330. X    extern char    *sys_errlist[];
  331. X    static char    buffer[16];
  332. X
  333. X    if (n < 1 || n > sys_nerr)
  334. X    {
  335. X        sprintf(buffer, "Error %d", n);
  336. X        return buffer;
  337. X    }
  338. X    return sys_errlist[n];
  339. X}
  340. X
  341. X#endif
  342. END_OF_FILE
  343. if test 1991 -ne `wc -c <'common/ansi.c'`; then
  344.     echo shar: \"'common/ansi.c'\" unpacked with wrong size!
  345. fi
  346. # end of 'common/ansi.c'
  347. fi
  348. if test -f 'common/arglex.h' -a "${1}" != "-c" ; then 
  349.   echo shar: Will not clobber existing file \"'common/arglex.h'\"
  350. else
  351. echo shar: Extracting \"'common/arglex.h'\" \(1778 characters\)
  352. sed "s/^X//" >'common/arglex.h' <<'END_OF_FILE'
  353. X/*
  354. X *    cook - file construction tool
  355. X *    Copyright (C) 1991, 1992, 1993 Peter Miller.
  356. X *    All rights reserved.
  357. X *
  358. X *    This program is free software; you can redistribute it and/or modify
  359. X *    it under the terms of the GNU General Public License as published by
  360. X *    the Free Software Foundation; either version 2 of the License, or
  361. X *    (at your option) any later version.
  362. X *
  363. X *    This program is distributed in the hope that it will be useful,
  364. X *    but WITHOUT ANY WARRANTY; without even the implied warranty of
  365. X *    MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
  366. X *    GNU General Public License for more details.
  367. X *
  368. X *    You should have received a copy of the GNU General Public License
  369. X *    along with this program; if not, write to the Free Software
  370. X *    Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.
  371. X *
  372. X * MANIFEST: interface definition for common/arglex.c
  373. X */
  374. X
  375. X#ifndef ARGLEX_H
  376. X#define ARGLEX_H
  377. X
  378. X#include <main.h>
  379. X
  380. Xenum arglex_token_ty
  381. X{
  382. X    arglex_token_eoln = -20,
  383. X    arglex_token_help,
  384. X    arglex_token_number,
  385. X    arglex_token_option,
  386. X    arglex_token_stdio,
  387. X    arglex_token_string,
  388. X    arglex_token_tracing,
  389. X    arglex_token_version
  390. X};
  391. Xtypedef enum arglex_token_ty arglex_token_ty;
  392. X
  393. Xtypedef struct arglex_value_ty arglex_value_ty;
  394. Xstruct arglex_value_ty
  395. X{
  396. X    char    *alv_string;
  397. X    long    alv_number;
  398. X};
  399. X
  400. Xtypedef struct arglex_table_ty arglex_table_ty;
  401. Xstruct arglex_table_ty
  402. X{
  403. X    char    *name;
  404. X    int    token;
  405. X};
  406. X
  407. Xextern arglex_token_ty arglex_token;
  408. Xextern arglex_value_ty arglex_value;
  409. Xextern char *progname;
  410. X
  411. Xvoid arglex_init _((int argc, char **argv, arglex_table_ty *table));
  412. Xarglex_token_ty arglex _((void));
  413. Xint arglex_compare _((char *formal, char *actual));
  414. Xvoid arglex_init_from_env _((char *argv0, arglex_table_ty *table));
  415. Xvoid arglex_set_progname _((char *argv0));
  416. X
  417. X#endif /* ARGLEX_H */
  418. END_OF_FILE
  419. if test 1778 -ne `wc -c <'common/arglex.h'`; then
  420.     echo shar: \"'common/arglex.h'\" unpacked with wrong size!
  421. fi
  422. # end of 'common/arglex.h'
  423. fi
  424. if test -f 'common/error.h' -a "${1}" != "-c" ; then 
  425.   echo shar: Will not clobber existing file \"'common/error.h'\"
  426. else
  427. echo shar: Extracting \"'common/error.h'\" \(1440 characters\)
  428. sed "s/^X//" >'common/error.h' <<'END_OF_FILE'
  429. X/*
  430. X *    cook - file construction tool
  431. X *    Copyright (C) 1990, 1991, 1992, 1993 Peter Miller.
  432. X *    All rights reserved.
  433. X *
  434. X *    This program is free software; you can redistribute it and/or modify
  435. X *    it under the terms of the GNU General Public License as published by
  436. X *    the Free Software Foundation; either version 2 of the License, or
  437. X *    (at your option) any later version.
  438. X *
  439. X *    This program is distributed in the hope that it will be useful,
  440. X *    but WITHOUT ANY WARRANTY; without even the implied warranty of
  441. X *    MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
  442. X *    GNU General Public License for more details.
  443. X *
  444. X *    You should have received a copy of the GNU General Public License
  445. X *    along with this program; if not, write to the Free Software
  446. X *    Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.
  447. X *
  448. X * MANIFEST: interface definition for common/error.c
  449. X */
  450. X
  451. X#ifndef ERROR_H
  452. X#define ERROR_H
  453. X
  454. X#include <main.h>
  455. X
  456. Xvoid error _((char *, ...));
  457. Xvoid fatal _((char *, ...));
  458. Xvoid nerror _((char *, ...));
  459. Xvoid nfatal _((char *, ...));
  460. X
  461. X#ifdef DEBUG
  462. X# if defined(__STDC__) || defined(__stdc__)
  463. X#  define assert(c) cook_assert((c) != 0, #c, __FILE__, __LINE__)
  464. X# else
  465. X#  define assert(c) cook_assert((c) != 0, "c", __FILE__, __LINE__)
  466. X# endif
  467. Xvoid cook_assert _((int, char *, char *, int));
  468. X#else
  469. X# define assert(c)
  470. X#endif
  471. X
  472. Xtypedef void (*quit_ty)_((void));
  473. Xvoid quit_handler _((quit_ty));
  474. Xvoid quit _((int));
  475. X
  476. X#endif /* ERROR_H */
  477. END_OF_FILE
  478. if test 1440 -ne `wc -c <'common/error.h'`; then
  479.     echo shar: \"'common/error.h'\" unpacked with wrong size!
  480. fi
  481. # end of 'common/error.h'
  482. fi
  483. if test -f 'common/s-v-arg.h' -a "${1}" != "-c" ; then 
  484.   echo shar: Will not clobber existing file \"'common/s-v-arg.h'\"
  485. else
  486. echo shar: Extracting \"'common/s-v-arg.h'\" \(1856 characters\)
  487. sed "s/^X//" >'common/s-v-arg.h' <<'END_OF_FILE'
  488. X/*
  489. X *    cook - file construction tool
  490. X *    Copyright (C) 1993 Peter Miller.
  491. X *    All rights reserved.
  492. X *
  493. X *    This program is free software; you can redistribute it and/or modify
  494. X *    it under the terms of the GNU General Public License as published by
  495. X *    the Free Software Foundation; either version 2 of the License, or
  496. X *    (at your option) any later version.
  497. X *
  498. X *    This program is distributed in the hope that it will be useful,
  499. X *    but WITHOUT ANY WARRANTY; without even the implied warranty of
  500. X *    MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
  501. X *    GNU General Public License for more details.
  502. X *
  503. X *    You should have received a copy of the GNU General Public License
  504. X *    along with this program; if not, write to the Free Software
  505. X *    Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.
  506. X *
  507. X * MANIFEST: isolate varargs.h vs stdarg differences
  508. X */
  509. X
  510. X#ifndef S_V_ARG_H
  511. X#define S_V_ARG_H
  512. X
  513. X/*
  514. X * This file contains insulation from whether <varargs.h> is being used
  515. X * or whether <stdarg.h> is being used.  Incompatibilities are hidden behind
  516. X * three macros:
  517. X *    sva_last    - last argument in variable arg func defn
  518. X *    sva_last_decl    - declaration for last arg
  519. X *    sva_start    - hides whether nth is used or not
  520. X * These macros are non-syntactic (ugh!) but they sure make things prettier.
  521. X *
  522. X * Do not directly include either <stdarg.h> or <varargs.h> in the code,
  523. X * always use this header <s-v-arg.h> instead.
  524. X *
  525. X * Never refer directly to va_start, va_arg, or va_dcl directly in the code.
  526. X * Direct references to va_list, va_arg and va_end are OK.
  527. X */
  528. X
  529. X#include <conf.h>
  530. X
  531. X#ifdef CONF_NO_stdarg
  532. X
  533. X#include <varargs.h>
  534. X
  535. X#define sva_last ,va_alist
  536. X#define sva_last_decl va_dcl
  537. X#define sva_init(ap, nth) va_start(ap)
  538. X
  539. X#else
  540. X
  541. X#include <stdarg.h>
  542. X
  543. X#define sva_last
  544. X#define    sva_last_decl
  545. X#define    sva_init(ap, nth) va_start(ap, nth)
  546. X
  547. X#endif
  548. X
  549. X#endif /* S_V_ARG_H */
  550. END_OF_FILE
  551. if test 1856 -ne `wc -c <'common/s-v-arg.h'`; then
  552.     echo shar: \"'common/s-v-arg.h'\" unpacked with wrong size!
  553. fi
  554. # end of 'common/s-v-arg.h'
  555. fi
  556. if test -f 'common/str.h' -a "${1}" != "-c" ; then 
  557.   echo shar: Will not clobber existing file \"'common/str.h'\"
  558. else
  559. echo shar: Extracting \"'common/str.h'\" \(1888 characters\)
  560. sed "s/^X//" >'common/str.h' <<'END_OF_FILE'
  561. X/*
  562. X *    cook - file construction tool
  563. X *    Copyright (C) 1990, 1991, 1992, 1993 Peter Miller.
  564. X *    All rights reserved.
  565. X *
  566. X *    This program is free software; you can redistribute it and/or modify
  567. X *    it under the terms of the GNU General Public License as published by
  568. X *    the Free Software Foundation; either version 2 of the License, or
  569. X *    (at your option) any later version.
  570. X *
  571. X *    This program is distributed in the hope that it will be useful,
  572. X *    but WITHOUT ANY WARRANTY; without even the implied warranty of
  573. X *    MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
  574. X *    GNU General Public License for more details.
  575. X *
  576. X *    You should have received a copy of the GNU General Public License
  577. X *    along with this program; if not, write to the Free Software
  578. X *    Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.
  579. X *
  580. X * MANIFEST: interface definition for common/str.c
  581. X */
  582. X
  583. X#ifndef STR_H
  584. X#define STR_H
  585. X
  586. X#include <main.h>
  587. X#include <s-v-arg.h>
  588. X
  589. Xtypedef unsigned long str_hash_ty;
  590. X
  591. Xtypedef struct string_ty string_ty;
  592. Xstruct string_ty
  593. X{
  594. X    str_hash_ty    str_hash;
  595. X    string_ty    *str_next;
  596. X    long        str_references;
  597. X    size_t        str_length;
  598. X    char        str_text[1];
  599. X};
  600. X
  601. Xextern string_ty *str_true;
  602. Xextern string_ty *str_false;
  603. X
  604. Xvoid str_initialize _((void));
  605. Xstring_ty *str_from_c _((char *));
  606. Xstring_ty *str_n_from_c _((char *, size_t));
  607. Xstring_ty *str_copy _((string_ty *));
  608. Xvoid str_free _((string_ty *));
  609. Xstring_ty *str_catenate _((string_ty *, string_ty *));
  610. Xstring_ty *str_cat_three _((string_ty *, string_ty *, string_ty *));
  611. Xint str_bool _((string_ty *));
  612. Xstring_ty *str_upcase _((string_ty *));
  613. Xstring_ty *str_downcase _((string_ty *));
  614. Xvoid str_dump _((void));
  615. Xchar *str_repn _((string_ty *));
  616. Xstring_ty *str_field _((string_ty *s, int sep, int fldnum));
  617. Xstring_ty *str_format _((char *, ...));
  618. Xstring_ty *str_vformat _((char *, va_list));
  619. X
  620. X#define str_equal(s1, s2) ((s1) == (s2))
  621. X
  622. X#endif /* STR_H */
  623. END_OF_FILE
  624. if test 1888 -ne `wc -c <'common/str.h'`; then
  625.     echo shar: \"'common/str.h'\" unpacked with wrong size!
  626. fi
  627. # end of 'common/str.h'
  628. fi
  629. if test -f 'common/word.h' -a "${1}" != "-c" ; then 
  630.   echo shar: Will not clobber existing file \"'common/word.h'\"
  631. else
  632. echo shar: Extracting \"'common/word.h'\" \(1435 characters\)
  633. sed "s/^X//" >'common/word.h' <<'END_OF_FILE'
  634. X/*
  635. X *    cook - file construction tool
  636. X *    Copyright (C) 1991, 1992, 1993 Peter Miller.
  637. X *    All rights reserved.
  638. X *
  639. X *    This program is free software; you can redistribute it and/or modify
  640. X *    it under the terms of the GNU General Public License as published by
  641. X *    the Free Software Foundation; either version 2 of the License, or
  642. X *    (at your option) any later version.
  643. X *
  644. X *    This program is distributed in the hope that it will be useful,
  645. X *    but WITHOUT ANY WARRANTY; without even the implied warranty of
  646. X *    MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
  647. X *    GNU General Public License for more details.
  648. X *
  649. X *    You should have received a copy of the GNU General Public License
  650. X *    along with this program; if not, write to the Free Software
  651. X *    Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.
  652. X *
  653. X * MANIFEST: interface definition for common/word.c
  654. X */
  655. X
  656. X#ifndef WORD_H
  657. X#define WORD_H
  658. X
  659. X#include <stddef.h>
  660. X#include <str.h>
  661. X
  662. Xtypedef struct wlist wlist;
  663. Xstruct    wlist
  664. X{
  665. X    size_t        wl_nwords;
  666. X    string_ty    **wl_word;
  667. X};
  668. X
  669. Xint wl_member _((wlist *, string_ty *));
  670. Xstring_ty *wl2str _((wlist *, int, int));
  671. Xvoid str2wl _((wlist *, string_ty *));
  672. Xvoid wl_append _((wlist *, string_ty *));
  673. Xvoid wl_prepend _((wlist *, string_ty *));
  674. Xvoid wl_append_unique _((wlist *, string_ty *));
  675. Xvoid wl_copy _((wlist *, wlist *));
  676. Xvoid wl_delete _((wlist *, string_ty *));
  677. Xvoid wl_free _((wlist *));
  678. Xvoid wl_zero _((wlist *));
  679. X
  680. X#endif /* WORD_H */
  681. END_OF_FILE
  682. if test 1435 -ne `wc -c <'common/word.h'`; then
  683.     echo shar: \"'common/word.h'\" unpacked with wrong size!
  684. fi
  685. # end of 'common/word.h'
  686. fi
  687. if test -f 'conf/ConvexOS-10' -a "${1}" != "-c" ; then 
  688.   echo shar: Will not clobber existing file \"'conf/ConvexOS-10'\"
  689. else
  690. echo shar: Extracting \"'conf/ConvexOS-10'\" \(2018 characters\)
  691. sed "s/^X//" >'conf/ConvexOS-10' <<'END_OF_FILE'
  692. X/*
  693. X *    cook - file construction tool
  694. X *    Copyright (C) 1992, 1993 Peter Miller.
  695. X *    All rights reserved.
  696. X *
  697. X *    This program is free software; you can redistribute it and/or modify
  698. X *    it under the terms of the GNU General Public License as published by
  699. X *    the Free Software Foundation; either version 2 of the License, or
  700. X *    (at your option) any later version.
  701. X *
  702. X *    This program is distributed in the hope that it will be useful,
  703. X *    but WITHOUT ANY WARRANTY; without even the implied warranty of
  704. X *    MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
  705. X *    GNU General Public License for more details.
  706. X *
  707. X *    You should have received a copy of the GNU General Public License
  708. X *    along with this program; if not, write to the Free Software
  709. X *    Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.
  710. X *
  711. X * MANIFEST: configuration for ConvexOS 10.0
  712. X */
  713. X
  714. X#ifndef CONF_H
  715. X#define CONF_H
  716. X
  717. X/*
  718. X * Define this symbol if your system does NOT
  719. X * have the ANSI C strerror system call, and
  720. X * does not define strerror in <string.h>.
  721. X *
  722. X#define CONF_NO_strerror
  723. X */
  724. X
  725. X/*
  726. X * Define this symbol if your system does NOT
  727. X * have the POSIX tcgetpgrp system call.
  728. X *
  729. X#define CONF_NO_tcgetpgrp
  730. X */
  731. X
  732. X/*
  733. X * Define this symbol if your system does NOT
  734. X * have the stdarg.h include file mandated by ANSI C.
  735. X */
  736. X#ifndef __STDC__
  737. X#define CONF_NO_stdarg
  738. X#endif
  739. X
  740. X/*
  741. X * Define one of these symbols to indicate which
  742. X * universe your UNIX is derived from.
  743. X * If you have a choice, define both.
  744. X */
  745. X#define    BSD
  746. X/* #define SYSV */
  747. X
  748. X/*
  749. X * Define this symbol as an appropriate arguemnt to
  750. X * the getpgrp system call for your system.
  751. X * Ignore if your system does not have a getpgrp system call.
  752. X */
  753. X/* #define CONF_getpgrp_arg 0 */
  754. X#define CONF_getpgrp_arg
  755. X/*
  756. X * Define this symbol to be the pathname of your shell.
  757. X * Leave it as a Bourne shell whenever possible.
  758. X * Some systems have different versions of the Bourne shell,
  759. X * with and without functions; choose the one *with* functions if so.
  760. X */
  761. X#define CONF_SHELL "/bin/sh"
  762. X
  763. X#endif /* CONF_H */
  764. END_OF_FILE
  765. if test 2018 -ne `wc -c <'conf/ConvexOS-10'`; then
  766.     echo shar: \"'conf/ConvexOS-10'\" unpacked with wrong size!
  767. fi
  768. # end of 'conf/ConvexOS-10'
  769. fi
  770. if test -f 'conf/SunOS-4.1.2' -a "${1}" != "-c" ; then 
  771.   echo shar: Will not clobber existing file \"'conf/SunOS-4.1.2'\"
  772. else
  773. echo shar: Extracting \"'conf/SunOS-4.1.2'\" \(2013 characters\)
  774. sed "s/^X//" >'conf/SunOS-4.1.2' <<'END_OF_FILE'
  775. X/*
  776. X *    cook - file construction tool
  777. X *    Copyright (C) 1992, 1993 Peter Miller.
  778. X *    All rights reserved.
  779. X *
  780. X *    This program is free software; you can redistribute it and/or modify
  781. X *    it under the terms of the GNU General Public License as published by
  782. X *    the Free Software Foundation; either version 2 of the License, or
  783. X *    (at your option) any later version.
  784. X *
  785. X *    This program is distributed in the hope that it will be useful,
  786. X *    but WITHOUT ANY WARRANTY; without even the implied warranty of
  787. X *    MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
  788. X *    GNU General Public License for more details.
  789. X *
  790. X *    You should have received a copy of the GNU General Public License
  791. X *    along with this program; if not, write to the Free Software
  792. X *    Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.
  793. X *
  794. X * MANIFEST: configuration for SunOS 4.1.2
  795. X */
  796. X
  797. X#ifndef CONF_H
  798. X#define CONF_H
  799. X
  800. X/*
  801. X * Define this symbol if your system does NOT
  802. X * have the ANSI C strerror system call, and
  803. X * does not define strerror in <string.h>.
  804. X */
  805. X#define CONF_NO_strerror
  806. X
  807. X/*
  808. X * Define this symbol if your system does NOT
  809. X * have the POSIX tcgetpgrp system call.
  810. X *
  811. X#define CONF_NO_tcgetpgrp
  812. X */
  813. X
  814. X/*
  815. X * Define this symbol if your system does NOT
  816. X * have the stdarg.h include file mandated by ANSI C.
  817. X */
  818. X#ifndef __STDC__
  819. X#define CONF_NO_stdarg
  820. X#endif
  821. X
  822. X/*
  823. X * Define one of these symbols to indicate which
  824. X * universe your UNIX is derived from.
  825. X * If you have a choice, define both.
  826. X */
  827. X#define    BSD
  828. X/* #define SYSV */
  829. X
  830. X/*
  831. X * Define this symbol as an appropriate arguemnt to
  832. X * the getpgrp system call for your system.
  833. X * Ignore if your system does not have a getpgrp system call.
  834. X */
  835. X#define CONF_getpgrp_arg 0
  836. X/* #define CONF_getpgrp_arg */
  837. X/*
  838. X * Define this symbol to be the pathname of your shell.
  839. X * Leave it as a Bourne shell whenever possible.
  840. X * Some systems have different versions of the Bourne shell,
  841. X * with and without functions; choose the one *with* functions if so.
  842. X */
  843. X#define CONF_SHELL "/bin/sh"
  844. X
  845. X#endif /* CONF_H */
  846. END_OF_FILE
  847. if test 2013 -ne `wc -c <'conf/SunOS-4.1.2'`; then
  848.     echo shar: \"'conf/SunOS-4.1.2'\" unpacked with wrong size!
  849. fi
  850. # end of 'conf/SunOS-4.1.2'
  851. fi
  852. if test -f 'conf/SunOS-4.1.3' -a "${1}" != "-c" ; then 
  853.   echo shar: Will not clobber existing file \"'conf/SunOS-4.1.3'\"
  854. else
  855. echo shar: Extracting \"'conf/SunOS-4.1.3'\" \(2013 characters\)
  856. sed "s/^X//" >'conf/SunOS-4.1.3' <<'END_OF_FILE'
  857. X/*
  858. X *    cook - file construction tool
  859. X *    Copyright (C) 1992, 1993 Peter Miller.
  860. X *    All rights reserved.
  861. X *
  862. X *    This program is free software; you can redistribute it and/or modify
  863. X *    it under the terms of the GNU General Public License as published by
  864. X *    the Free Software Foundation; either version 2 of the License, or
  865. X *    (at your option) any later version.
  866. X *
  867. X *    This program is distributed in the hope that it will be useful,
  868. X *    but WITHOUT ANY WARRANTY; without even the implied warranty of
  869. X *    MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
  870. X *    GNU General Public License for more details.
  871. X *
  872. X *    You should have received a copy of the GNU General Public License
  873. X *    along with this program; if not, write to the Free Software
  874. X *    Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.
  875. X *
  876. X * MANIFEST: configuration for SunOS 4.1.3
  877. X */
  878. X
  879. X#ifndef CONF_H
  880. X#define CONF_H
  881. X
  882. X/*
  883. X * Define this symbol if your system does NOT
  884. X * have the ANSI C strerror system call, and
  885. X * does not define strerror in <string.h>.
  886. X */
  887. X#define CONF_NO_strerror
  888. X
  889. X/*
  890. X * Define this symbol if your system does NOT
  891. X * have the POSIX tcgetpgrp system call.
  892. X *
  893. X#define CONF_NO_tcgetpgrp
  894. X */
  895. X
  896. X/*
  897. X * Define this symbol if your system does NOT
  898. X * have the stdarg.h include file mandated by ANSI C.
  899. X */
  900. X#ifndef __STDC__
  901. X#define CONF_NO_stdarg
  902. X#endif
  903. X
  904. X/*
  905. X * Define one of these symbols to indicate which
  906. X * universe your UNIX is derived from.
  907. X * If you have a choice, define both.
  908. X */
  909. X#define    BSD
  910. X/* #define SYSV */
  911. X
  912. X/*
  913. X * Define this symbol as an appropriate arguemnt to
  914. X * the getpgrp system call for your system.
  915. X * Ignore if your system does not have a getpgrp system call.
  916. X */
  917. X#define CONF_getpgrp_arg 0
  918. X/* #define CONF_getpgrp_arg */
  919. X/*
  920. X * Define this symbol to be the pathname of your shell.
  921. X * Leave it as a Bourne shell whenever possible.
  922. X * Some systems have different versions of the Bourne shell,
  923. X * with and without functions; choose the one *with* functions if so.
  924. X */
  925. X#define CONF_SHELL "/bin/sh"
  926. X
  927. X#endif /* CONF_H */
  928. END_OF_FILE
  929. if test 2013 -ne `wc -c <'conf/SunOS-4.1.3'`; then
  930.     echo shar: \"'conf/SunOS-4.1.3'\" unpacked with wrong size!
  931. fi
  932. # end of 'conf/SunOS-4.1.3'
  933. fi
  934. if test -f 'conf/SysV-4.0' -a "${1}" != "-c" ; then 
  935.   echo shar: Will not clobber existing file \"'conf/SysV-4.0'\"
  936. else
  937. echo shar: Extracting \"'conf/SysV-4.0'\" \(2018 characters\)
  938. sed "s/^X//" >'conf/SysV-4.0' <<'END_OF_FILE'
  939. X/*
  940. X *    cook - file construction tool
  941. X *    Copyright (C) 1992, 1993 Peter Miller.
  942. X *    All rights reserved.
  943. X *
  944. X *    This program is free software; you can redistribute it and/or modify
  945. X *    it under the terms of the GNU General Public License as published by
  946. X *    the Free Software Foundation; either version 2 of the License, or
  947. X *    (at your option) any later version.
  948. X *
  949. X *    This program is distributed in the hope that it will be useful,
  950. X *    but WITHOUT ANY WARRANTY; without even the implied warranty of
  951. X *    MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
  952. X *    GNU General Public License for more details.
  953. X *
  954. X *    You should have received a copy of the GNU General Public License
  955. X *    along with this program; if not, write to the Free Software
  956. X *    Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.
  957. X *
  958. X * MANIFEST: configuration for generic SVR4 system
  959. X */
  960. X
  961. X#ifndef CONF_H
  962. X#define CONF_H
  963. X
  964. X/*
  965. X * Define this symbol if your system does NOT
  966. X * have the ANSI C strerror system call, and
  967. X * does not define strerror in <string.h>.
  968. X */
  969. X#define CONF_NO_strerror
  970. X
  971. X/*
  972. X * Define this symbol if your system does NOT
  973. X * have the POSIX tcgetpgrp system call.
  974. X */
  975. X#define CONF_NO_tcgetpgrp
  976. X
  977. X/*
  978. X * Define this symbol if your system does NOT
  979. X * have the stdarg.h include file mandated by ANSI C.
  980. X */
  981. X#ifndef __STDC__
  982. X#define CONF_NO_stdarg
  983. X#endif
  984. X
  985. X/*
  986. X * Define one of these symbols to indicate which
  987. X * universe your UNIX is derived from.
  988. X * If you have a choice, define both.
  989. X */
  990. X/* #define BSD */
  991. X#define SYSV
  992. X
  993. X/*
  994. X * Define this symbol as an appropriate arguemnt to
  995. X * the getpgrp system call for your system.
  996. X * Ignore if your system does not have a getpgrp system call.
  997. X */
  998. X/* #define CONF_getpgrp_arg 0 */
  999. X#define CONF_getpgrp_arg
  1000. X/*
  1001. X * Define this symbol to be the pathname of your shell.
  1002. X * Leave it as a Bourne shell whenever possible.
  1003. X * Some systems have different versions of the Bourne shell,
  1004. X * with and without functions; choose the one *with* functions if so.
  1005. X */
  1006. X#define CONF_SHELL "/bin/sh"
  1007. X
  1008. X#endif /* CONF_H */
  1009. END_OF_FILE
  1010. if test 2018 -ne `wc -c <'conf/SysV-4.0'`; then
  1011.     echo shar: \"'conf/SysV-4.0'\" unpacked with wrong size!
  1012. fi
  1013. # end of 'conf/SysV-4.0'
  1014. fi
  1015. if test -f 'conf/ULTRIX-4.2' -a "${1}" != "-c" ; then 
  1016.   echo shar: Will not clobber existing file \"'conf/ULTRIX-4.2'\"
  1017. else
  1018. echo shar: Extracting \"'conf/ULTRIX-4.2'\" \(1986 characters\)
  1019. sed "s/^X//" >'conf/ULTRIX-4.2' <<'END_OF_FILE'
  1020. X/*
  1021. X *    cook - file construction tool
  1022. X *    Copyright (C) 1992, 1993 Peter Miller.
  1023. X *    All rights reserved.
  1024. X *
  1025. X *    This program is free software; you can redistribute it and/or modify
  1026. X *    it under the terms of the GNU General Public License as published by
  1027. X *    the Free Software Foundation; either version 2 of the License, or
  1028. X *    (at your option) any later version.
  1029. X *
  1030. X *    This program is distributed in the hope that it will be useful,
  1031. X *    but WITHOUT ANY WARRANTY; without even the implied warranty of
  1032. X *    MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
  1033. X *    GNU General Public License for more details.
  1034. X *
  1035. X *    You should have received a copy of the GNU General Public License
  1036. X *    along with this program; if not, write to the Free Software
  1037. X *    Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.
  1038. X *
  1039. X * MANIFEST: configuration for ULTRIX 4.2
  1040. X */
  1041. X
  1042. X#ifndef CONF_H
  1043. X#define CONF_H
  1044. X
  1045. X/*
  1046. X * Define this symbol if your system does NOT
  1047. X * have the ANSI C strerror system call, and
  1048. X * does not define strerror in <string.h>.
  1049. X *
  1050. X#define CONF_NO_strerror
  1051. X */
  1052. X
  1053. X/*
  1054. X * Define this symbol if your system does NOT
  1055. X * have the POSIX tcgetpgrp system call.
  1056. X *
  1057. X#define CONF_NO_tcgetpgrp
  1058. X */
  1059. X
  1060. X/*
  1061. X * Define this symbol if your system does NOT
  1062. X * have the stdarg.h include file mandated by ANSI C.
  1063. X */
  1064. X#define CONF_NO_stdarg
  1065. X
  1066. X/*
  1067. X * Define one of these symbols to indicate which
  1068. X * universe your UNIX is derived from.
  1069. X * If you have a choice, define both.
  1070. X */
  1071. X#define BSD
  1072. X#define SYSV
  1073. X
  1074. X/*
  1075. X * Define this symbol as an appropriate arguemnt to
  1076. X * the getpgrp system call for your system.
  1077. X * Ignore if your system does not have a getpgrp system call.
  1078. X */
  1079. X/* #define CONF_getpgrp_arg 0 */
  1080. X#define CONF_getpgrp_arg
  1081. X/*
  1082. X * Define this symbol to be the pathname of your shell.
  1083. X * Leave it as a Bourne shell whenever possible.
  1084. X * Some systems have different versions of the Bourne shell,
  1085. X * with and without functions; choose the one *with* functions if so.
  1086. X */
  1087. X#define CONF_SHELL "/bin/sh5"
  1088. X
  1089. X#endif /* CONF_H */
  1090. END_OF_FILE
  1091. if test 1986 -ne `wc -c <'conf/ULTRIX-4.2'`; then
  1092.     echo shar: \"'conf/ULTRIX-4.2'\" unpacked with wrong size!
  1093. fi
  1094. # end of 'conf/ULTRIX-4.2'
  1095. fi
  1096. if test -f 'conf/dgux-5.4.1' -a "${1}" != "-c" ; then 
  1097.   echo shar: Will not clobber existing file \"'conf/dgux-5.4.1'\"
  1098. else
  1099. echo shar: Extracting \"'conf/dgux-5.4.1'\" \(2015 characters\)
  1100. sed "s/^X//" >'conf/dgux-5.4.1' <<'END_OF_FILE'
  1101. X/*
  1102. X *    cook - file construction tool
  1103. X *    Copyright (C) 1992, 1993 Peter Miller.
  1104. X *    All rights reserved.
  1105. X *
  1106. X *    This program is free software; you can redistribute it and/or modify
  1107. X *    it under the terms of the GNU General Public License as published by
  1108. X *    the Free Software Foundation; either version 2 of the License, or
  1109. X *    (at your option) any later version.
  1110. X *
  1111. X *    This program is distributed in the hope that it will be useful,
  1112. X *    but WITHOUT ANY WARRANTY; without even the implied warranty of
  1113. X *    MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
  1114. X *    GNU General Public License for more details.
  1115. X *
  1116. X *    You should have received a copy of the GNU General Public License
  1117. X *    along with this program; if not, write to the Free Software
  1118. X *    Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.
  1119. X *
  1120. X * MANIFEST: configuration for dgux 5.4.1
  1121. X */
  1122. X
  1123. X#ifndef CONF_H
  1124. X#define CONF_H
  1125. X
  1126. X/*
  1127. X * Define this symbol if your system does NOT
  1128. X * have the ANSI C strerror system call, and
  1129. X * does not define strerror in <string.h>.
  1130. X *
  1131. X#define CONF_NO_strerror
  1132. X */
  1133. X
  1134. X/*
  1135. X * Define this symbol if your system does NOT
  1136. X * have the POSIX tcgetpgrp system call.
  1137. X *
  1138. X#define CONF_NO_tcgetpgrp
  1139. X */
  1140. X
  1141. X/*
  1142. X * Define this symbol if your system does NOT
  1143. X * have the stdarg.h include file mandated by ANSI C.
  1144. X */
  1145. X#ifndef __STDC__
  1146. X#define CONF_NO_stdarg
  1147. X#endif
  1148. X
  1149. X/*
  1150. X * Define one of these symbols to indicate which
  1151. X * universe your UNIX is derived from.
  1152. X * If you have a choice, define both.
  1153. X */
  1154. X/* #define BSD */
  1155. X#define SYSV
  1156. X
  1157. X/*
  1158. X * Define this symbol as an appropriate arguemnt to
  1159. X * the getpgrp system call for your system.
  1160. X * Ignore if your system does not have a getpgrp system call.
  1161. X */
  1162. X/* #define CONF_getpgrp_arg 0 */
  1163. X#define CONF_getpgrp_arg
  1164. X/*
  1165. X * Define this symbol to be the pathname of your shell.
  1166. X * Leave it as a Bourne shell whenever possible.
  1167. X * Some systems have different versions of the Bourne shell,
  1168. X * with and without functions; choose the one *with* functions if so.
  1169. X */
  1170. X#define CONF_SHELL "/bin/sh"
  1171. X
  1172. X#endif /* CONF_H */
  1173. END_OF_FILE
  1174. if test 2015 -ne `wc -c <'conf/dgux-5.4.1'`; then
  1175.     echo shar: \"'conf/dgux-5.4.1'\" unpacked with wrong size!
  1176. fi
  1177. # end of 'conf/dgux-5.4.1'
  1178. fi
  1179. if test -f 'cook/expr.h' -a "${1}" != "-c" ; then 
  1180.   echo shar: Will not clobber existing file \"'cook/expr.h'\"
  1181. else
  1182. echo shar: Extracting \"'cook/expr.h'\" \(1922 characters\)
  1183. sed "s/^X//" >'cook/expr.h' <<'END_OF_FILE'
  1184. X/*
  1185. X *    cook - file construction tool
  1186. X *    Copyright (C) 1990, 1991, 1992, 1993 Peter Miller.
  1187. X *    All rights reserved.
  1188. X *
  1189. X *    This program is free software; you can redistribute it and/or modify
  1190. X *    it under the terms of the GNU General Public License as published by
  1191. X *    the Free Software Foundation; either version 2 of the License, or
  1192. X *    (at your option) any later version.
  1193. X *
  1194. X *    This program is distributed in the hope that it will be useful,
  1195. X *    but WITHOUT ANY WARRANTY; without even the implied warranty of
  1196. X *    MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
  1197. X *    GNU General Public License for more details.
  1198. X *
  1199. X *    You should have received a copy of the GNU General Public License
  1200. X *    along with this program; if not, write to the Free Software
  1201. X *    Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.
  1202. X *
  1203. X * MANIFEST: interface definition for cook/expr.c
  1204. X */
  1205. X
  1206. X#ifndef EXPR_H
  1207. X#define EXPR_H
  1208. X
  1209. X#include <str.h>
  1210. X#include <word.h>
  1211. X
  1212. X/*
  1213. X *  e_op values
  1214. X */
  1215. Xenum expr_op_ty
  1216. X{
  1217. X    OP_CAT = 1,
  1218. X    OP_FUNC,
  1219. X    OP_WORD
  1220. X};
  1221. Xtypedef enum expr_op_ty expr_op_ty;
  1222. X
  1223. Xtypedef struct elist elist;
  1224. Xstruct    elist
  1225. X{
  1226. X    size_t        el_nexprs;
  1227. X    struct expr    **el_expr;
  1228. X};
  1229. X
  1230. Xtypedef struct position position;
  1231. Xstruct    position
  1232. X{
  1233. X    string_ty    *pos_name;
  1234. X    int        pos_line;
  1235. X};
  1236. X
  1237. Xtypedef struct expr expr;
  1238. Xstruct expr
  1239. X{
  1240. X    expr_op_ty    e_op;
  1241. X    long        e_references;
  1242. X    position    e_position;
  1243. X    union
  1244. X    {
  1245. X        string_ty    *e__word;
  1246. X        elist        e__list;
  1247. X        expr        *e__arg[2];
  1248. X    }
  1249. X        e__u;
  1250. X};
  1251. X#define e_word    e__u.e__word
  1252. X#define e_list    e__u.e__list
  1253. X#define e_left    e__u.e__arg[0]
  1254. X#define e_right e__u.e__arg[1]
  1255. X
  1256. Xexpr *expr_alloc _((void));
  1257. Xexpr *expr_copy _((expr *));
  1258. Xvoid expr_free _((expr *));
  1259. Xint expr_eval _((wlist *, expr *));
  1260. Xvoid el_append _((elist *, expr *));
  1261. Xvoid el_free _((elist *));
  1262. Xvoid el_copy _((elist *, elist *));
  1263. Xint el2wl _((wlist *, elist *));
  1264. Xint expr_eval_condition _((expr *));
  1265. Xvoid expr_error _((char *, ...));
  1266. Xvoid el_zero _((elist *));
  1267. X
  1268. X#endif /* EXPR_H */
  1269. END_OF_FILE
  1270. if test 1922 -ne `wc -c <'cook/expr.h'`; then
  1271.     echo shar: \"'cook/expr.h'\" unpacked with wrong size!
  1272. fi
  1273. # end of 'cook/expr.h'
  1274. fi
  1275. if test -f 'cook/id.h' -a "${1}" != "-c" ; then 
  1276.   echo shar: Will not clobber existing file \"'cook/id.h'\"
  1277. else
  1278. echo shar: Extracting \"'cook/id.h'\" \(1640 characters\)
  1279. sed "s/^X//" >'cook/id.h' <<'END_OF_FILE'
  1280. X/*
  1281. X *    cook - file construction tool
  1282. X *    Copyright (C) 1990, 1991, 1992, 1993 Peter Miller.
  1283. X *    All rights reserved.
  1284. X *
  1285. X *    This program is free software; you can redistribute it and/or modify
  1286. X *    it under the terms of the GNU General Public License as published by
  1287. X *    the Free Software Foundation; either version 2 of the License, or
  1288. X *    (at your option) any later version.
  1289. X *
  1290. X *    This program is distributed in the hope that it will be useful,
  1291. X *    but WITHOUT ANY WARRANTY; without even the implied warranty of
  1292. X *    MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
  1293. X *    GNU General Public License for more details.
  1294. X *
  1295. X *    You should have received a copy of the GNU General Public License
  1296. X *    along with this program; if not, write to the Free Software
  1297. X *    Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.
  1298. X *
  1299. X * MANIFEST: interface definition for cook/id.c
  1300. X */
  1301. X
  1302. X#ifndef ID_H
  1303. X#define ID_H
  1304. X
  1305. X#include <main.h>
  1306. X#include <str.h>
  1307. X#include <word.h>
  1308. X
  1309. Xenum id_class_ty
  1310. X{
  1311. X    ID_CLASS_ALREADY,
  1312. X    ID_CLASS_BUILTIN,
  1313. X    ID_CLASS_FLAGS,
  1314. X    ID_CLASS_HASH_KEYWORD,
  1315. X    ID_CLASS_PARSE_KEYWORD,
  1316. X    ID_CLASS_STAT,
  1317. X    ID_CLASS_VARIABLE
  1318. X};
  1319. Xtypedef enum id_class_ty id_class_ty;
  1320. X
  1321. Xtypedef int (*bifp)_((wlist *, wlist *));
  1322. X
  1323. Xextern string_ty *id_need;
  1324. Xextern string_ty *id_younger;
  1325. Xextern string_ty *id_friend;
  1326. Xextern string_ty *id_target;
  1327. Xextern string_ty *id_search_list;
  1328. X
  1329. Xextern void id_initialize _((void));
  1330. Xextern int id_search _((string_ty *, id_class_ty, void *));
  1331. Xextern void id_assign _((string_ty *, id_class_ty, void *));
  1332. Xextern void id_assign_push _((string_ty *, id_class_ty, void *));
  1333. Xextern void id_delete _((string_ty *, id_class_ty));
  1334. X
  1335. X#endif /* ID_H */
  1336. END_OF_FILE
  1337. if test 1640 -ne `wc -c <'cook/id.h'`; then
  1338.     echo shar: \"'cook/id.h'\" unpacked with wrong size!
  1339. fi
  1340. # end of 'cook/id.h'
  1341. fi
  1342. if test -f 'cook/lex.h' -a "${1}" != "-c" ; then 
  1343.   echo shar: Will not clobber existing file \"'cook/lex.h'\"
  1344. else
  1345. echo shar: Extracting \"'cook/lex.h'\" \(1396 characters\)
  1346. sed "s/^X//" >'cook/lex.h' <<'END_OF_FILE'
  1347. X/*
  1348. X *    cook - file construction tool
  1349. X *    Copyright (C) 1990, 1991, 1992, 1993 Peter Miller.
  1350. X *    All rights reserved.
  1351. X *
  1352. X *    This program is free software; you can redistribute it and/or modify
  1353. X *    it under the terms of the GNU General Public License as published by
  1354. X *    the Free Software Foundation; either version 2 of the License, or
  1355. X *    (at your option) any later version.
  1356. X *
  1357. X *    This program is distributed in the hope that it will be useful,
  1358. X *    but WITHOUT ANY WARRANTY; without even the implied warranty of
  1359. X *    MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
  1360. X *    GNU General Public License for more details.
  1361. X *
  1362. X *    You should have received a copy of the GNU General Public License
  1363. X *    along with this program; if not, write to the Free Software
  1364. X *    Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.
  1365. X *
  1366. X * MANIFEST: interface definition for cook/lex.c
  1367. X */
  1368. X
  1369. X#ifndef LEX_H
  1370. X#define LEX_H
  1371. X
  1372. X#include <main.h>
  1373. X#include <str.h>
  1374. X
  1375. Xint hashline_lex _((void));
  1376. Xint lex_cur_line _((void));
  1377. Xint lex_mode _((int));
  1378. Xint parse_lex _((void));
  1379. Xstring_ty *lex_cur_file _((void));
  1380. Xvoid lex_close _((void));
  1381. Xvoid lex_error _((char*, ...));
  1382. Xvoid lex_initialize _((void));
  1383. Xvoid lex_open _((string_ty *));
  1384. Xvoid lex_passing _((int));
  1385. Xvoid lex_trace _((char*, ...));
  1386. X
  1387. X/*
  1388. X *  lex_mode() arguments
  1389. X */
  1390. X#define LM_NORMAL   0
  1391. X#define LM_DATA        1
  1392. X#define LM_SQUOTE   2
  1393. X#define LM_DQUOTE   3
  1394. X
  1395. X#endif /* LEX_H */
  1396. END_OF_FILE
  1397. if test 1396 -ne `wc -c <'cook/lex.h'`; then
  1398.     echo shar: \"'cook/lex.h'\" unpacked with wrong size!
  1399. fi
  1400. # end of 'cook/lex.h'
  1401. fi
  1402. if test -f 'cook/match.h' -a "${1}" != "-c" ; then 
  1403.   echo shar: Will not clobber existing file \"'cook/match.h'\"
  1404. else
  1405. echo shar: Extracting \"'cook/match.h'\" \(1407 characters\)
  1406. sed "s/^X//" >'cook/match.h' <<'END_OF_FILE'
  1407. X/*
  1408. X *    cook - file construction tool
  1409. X *    Copyright (C) 1990, 1992, 1993 Peter Miller.
  1410. X *    All rights reserved.
  1411. X *
  1412. X *    This program is free software; you can redistribute it and/or modify
  1413. X *    it under the terms of the GNU General Public License as published by
  1414. X *    the Free Software Foundation; either version 2 of the License, or
  1415. X *    (at your option) any later version.
  1416. X *
  1417. X *    This program is distributed in the hope that it will be useful,
  1418. X *    but WITHOUT ANY WARRANTY; without even the implied warranty of
  1419. X *    MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
  1420. X *    GNU General Public License for more details.
  1421. X *
  1422. X *    You should have received a copy of the GNU General Public License
  1423. X *    along with this program; if not, write to the Free Software
  1424. X *    Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.
  1425. X *
  1426. X * MANIFEST: interface definition for cook/match.c
  1427. X */
  1428. X
  1429. X#ifndef MATCH_H
  1430. X#define MATCH_H
  1431. X
  1432. X#include <main.h>
  1433. X#include <word.h>
  1434. X
  1435. X#define MATCH_CHAR '%'
  1436. X
  1437. Xtypedef struct match_ty match_ty;
  1438. Xstruct match_ty
  1439. X{
  1440. X    string_ty    *fill[11];
  1441. X    match_ty    *next;
  1442. X};
  1443. X
  1444. Xmatch_ty *match _((string_ty *, string_ty *));
  1445. Xstring_ty *reconstruct _((string_ty *, match_ty *));
  1446. Xvoid match_push _((match_ty *));
  1447. Xmatch_ty *match_pop _((void));
  1448. Xmatch_ty *match_top _((void));
  1449. Xvoid match_free _((match_ty *));
  1450. Xmatch_ty *wl_match _((wlist *, string_ty *));
  1451. Xvoid wl_reconstruct _((wlist *, wlist *, match_ty *));
  1452. X
  1453. X#endif /* MATCH_H */
  1454. END_OF_FILE
  1455. if test 1407 -ne `wc -c <'cook/match.h'`; then
  1456.     echo shar: \"'cook/match.h'\" unpacked with wrong size!
  1457. fi
  1458. # end of 'cook/match.h'
  1459. fi
  1460. if test -f 'cook/os.h' -a "${1}" != "-c" ; then 
  1461.   echo shar: Will not clobber existing file \"'cook/os.h'\"
  1462. else
  1463. echo shar: Extracting \"'cook/os.h'\" \(1586 characters\)
  1464. sed "s/^X//" >'cook/os.h' <<'END_OF_FILE'
  1465. X/*
  1466. X *    cook - file construction tool
  1467. X *    Copyright (C) 1990, 1991, 1992, 1993 Peter Miller.
  1468. X *    All rights reserved.
  1469. X *
  1470. X *    This program is free software; you can redistribute it and/or modify
  1471. X *    it under the terms of the GNU General Public License as published by
  1472. X *    the Free Software Foundation; either version 2 of the License, or
  1473. X *    (at your option) any later version.
  1474. X *
  1475. X *    This program is distributed in the hope that it will be useful,
  1476. X *    but WITHOUT ANY WARRANTY; without even the implied warranty of
  1477. X *    MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
  1478. X *    GNU General Public License for more details.
  1479. X *
  1480. X *    You should have received a copy of the GNU General Public License
  1481. X *    along with this program; if not, write to the Free Software
  1482. X *    Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.
  1483. X *
  1484. X * MANIFEST: interface definition for cook/os.c
  1485. X */
  1486. X
  1487. X#ifndef OS_H
  1488. X#define OS_H
  1489. X
  1490. X#include <time.h>
  1491. X#include <main.h>
  1492. X#include <str.h>
  1493. X#include <word.h>
  1494. X
  1495. Xtime_t os_mtime _((string_ty *));
  1496. Xint os_mtime_adjust _((string_ty *));
  1497. Xint os_touch _((string_ty *));
  1498. Xint os_execute _((wlist *cmd, string_ty *input));
  1499. Xint os_exists _((string_ty *));
  1500. Xstring_ty *os_accdir _((void));
  1501. Xstring_ty *os_curdir _((void));
  1502. Xstring_ty *os_dirname _((string_ty *));
  1503. Xstring_ty *os_entryname _((string_ty *));
  1504. Xstring_ty *os_pathname _((string_ty *));
  1505. Xint os_legal_path _((string_ty *));
  1506. Xint os_delete _((string_ty *));
  1507. Xvoid os_meter_begin _((void));
  1508. Xvoid os_meter_end _((void));
  1509. Xchar *signal_name _((int));
  1510. Xint os_clear_stat _((string_ty *));
  1511. Xint exit_status _((char *, int));
  1512. X
  1513. X#endif /* OS_H */
  1514. END_OF_FILE
  1515. if test 1586 -ne `wc -c <'cook/os.h'`; then
  1516.     echo shar: \"'cook/os.h'\" unpacked with wrong size!
  1517. fi
  1518. # end of 'cook/os.h'
  1519. fi
  1520. if test -f 'doc/conditions' -a "${1}" != "-c" ; then 
  1521.   echo shar: Will not clobber existing file \"'doc/conditions'\"
  1522. else
  1523. echo shar: Extracting \"'doc/conditions'\" \(1702 characters\)
  1524. sed "s/^X//" >'doc/conditions' <<'END_OF_FILE'
  1525. X.\"
  1526. X.\"    cook - file construction tool
  1527. X.\"    Copyright (C) 1990, 1991, 1992, 1993 Peter Miller.
  1528. X.\"    All rights reserved.
  1529. X.\"
  1530. X.\"    This program is free software; you can redistribute it and/or modify
  1531. X.\"    it under the terms of the GNU General Public License as published by
  1532. X.\"    the Free Software Foundation; either version 2 of the License, or
  1533. X.\"    (at your option) any later version.
  1534. X.\"
  1535. X.\"    This program is distributed in the hope that it will be useful,
  1536. X.\"    but WITHOUT ANY WARRANTY; without even the implied warranty of
  1537. X.\"    MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
  1538. X.\"    GNU General Public License for more details.
  1539. X.\"
  1540. X.\"    You should have received a copy of the GNU General Public License
  1541. X.\"    along with this program; if not, write to the Free Software
  1542. X.\"    Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.
  1543. X.\"
  1544. X.\" MANIFEST: Reference Manual, License
  1545. X.\"    
  1546. X.H 1 "License"
  1547. X.B cook
  1548. Xversion
  1549. X.so version.so
  1550. X.br
  1551. XCopyright
  1552. X.if n (C)
  1553. X.if t \(co
  1554. X1988, 1989, 1990, 1991, 1992, 1993 Peter Miller.
  1555. X.br
  1556. XAll rights reserved.
  1557. X.P
  1558. XThis program is free software;
  1559. Xyou can redistribute it
  1560. Xand/or modify it under the terms of the GNU General Public
  1561. XLicense as published by the Free Software Foundation;
  1562. Xeither version 2 of the License,
  1563. Xor (at your option) any later version.
  1564. X.P
  1565. XThis program is distributed in the hope that it will be useful,
  1566. Xbut WITHOUT ANY WARRANTY;
  1567. Xwithout even the implied
  1568. Xwarranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.
  1569. XSee the GNU General Public License for more details.
  1570. X.P
  1571. XYou should have received a copy of the GNU General Public
  1572. XLicense along with this program; if not, write to the Free
  1573. XSoftware Foundation, Inc., 675 Mass Ave, Cambridge, MA
  1574. X02139, USA.
  1575. END_OF_FILE
  1576. if test 1702 -ne `wc -c <'doc/conditions'`; then
  1577.     echo shar: \"'doc/conditions'\" unpacked with wrong size!
  1578. fi
  1579. # end of 'doc/conditions'
  1580. fi
  1581. if test -f 'doc/history' -a "${1}" != "-c" ; then 
  1582.   echo shar: Will not clobber existing file \"'doc/history'\"
  1583. else
  1584. echo shar: Extracting \"'doc/history'\" \(1884 characters\)
  1585. sed "s/^X//" >'doc/history' <<'END_OF_FILE'
  1586. X.\"
  1587. X.\"    cook - file construction tool
  1588. X.\"    Copyright (C) 1990, 1991, 1992, 1993 Peter Miller.
  1589. X.\"    All rights reserved.
  1590. X.\"
  1591. X.\"    This program is free software; you can redistribute it and/or modify
  1592. X.\"    it under the terms of the GNU General Public License as published by
  1593. X.\"    the Free Software Foundation; either version 2 of the License, or
  1594. X.\"    (at your option) any later version.
  1595. X.\"
  1596. X.\"    This program is distributed in the hope that it will be useful,
  1597. X.\"    but WITHOUT ANY WARRANTY; without even the implied warranty of
  1598. X.\"    MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
  1599. X.\"    GNU General Public License for more details.
  1600. X.\"
  1601. X.\"    You should have received a copy of the GNU General Public License
  1602. X.\"    along with this program; if not, write to the Free Software
  1603. X.\"    Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.
  1604. X.\"
  1605. X.\" MANIFEST: Reference Manual, Ancient History
  1606. X.\"    
  1607. X.H 1 "Ancient History"
  1608. X.B Cook
  1609. Xwas originally developed because I was marooned on an operating
  1610. Xsystem without anything even vaguely resembling
  1611. Xmake.
  1612. XThis was in 1988.
  1613. XSince I had to write my own, 
  1614. XI added a few improvements.
  1615. XWhen I finally escaped back to \s-4UNIX\s+4,
  1616. Xit took only two days to port
  1617. X.B cook
  1618. Xto SystemV.
  1619. XI have since deleted all code for that original operating system,
  1620. Xalthough clues to its identity are still present.
  1621. X.P
  1622. XAfter I had
  1623. X.B cook
  1624. Xup on \s-4UNIX\s+4,
  1625. Xthe progress the world had made caught up with me.
  1626. XIt was gratifying that
  1627. Xmany of the features other make-oid authors had thought necessary
  1628. Xwere either already present,
  1629. Xor easily and seamlessly added.
  1630. X.P
  1631. X.B Cook
  1632. Xwas written with portability in mind.
  1633. XThis does not means it is entirely portable,
  1634. Xunfortunately.
  1635. X.B Cook
  1636. Xhas been tested on 
  1637. XSystemV R2 and SystemV R3
  1638. Xand SunOS R4.
  1639. XIt should also be portable to others.
  1640. X.P
  1641. XIf you have any trouble getting 
  1642. X.B cook
  1643. Xworking,
  1644. Xplease e-mail me so I know where I went wrong.
  1645. END_OF_FILE
  1646. if test 1884 -ne `wc -c <'doc/history'`; then
  1647.     echo shar: \"'doc/history'\" unpacked with wrong size!
  1648. fi
  1649. # end of 'doc/history'
  1650. fi
  1651. if test -f 'doc/intro' -a "${1}" != "-c" ; then 
  1652.   echo shar: Will not clobber existing file \"'doc/intro'\"
  1653. else
  1654. echo shar: Extracting \"'doc/intro'\" \(2213 characters\)
  1655. sed "s/^X//" >'doc/intro' <<'END_OF_FILE'
  1656. X.\"
  1657. X.\"    cook - file construction tool
  1658. X.\"    Copyright (C) 1990, 1991, 1992, 1993 Peter Miller.
  1659. X.\"    All rights reserved.
  1660. X.\"
  1661. X.\"    This program is free software; you can redistribute it and/or modify
  1662. X.\"    it under the terms of the GNU General Public License as published by
  1663. X.\"    the Free Software Foundation; either version 2 of the License, or
  1664. X.\"    (at your option) any later version.
  1665. X.\"
  1666. X.\"    This program is distributed in the hope that it will be useful,
  1667. X.\"    but WITHOUT ANY WARRANTY; without even the implied warranty of
  1668. X.\"    MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
  1669. X.\"    GNU General Public License for more details.
  1670. X.\"
  1671. X.\"    You should have received a copy of the GNU General Public License
  1672. X.\"    along with this program; if not, write to the Free Software
  1673. X.\"    Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.
  1674. X.\"
  1675. X.\" MANIFEST: Reference Manual, Introduction
  1676. X.\"    
  1677. X.H 1 "Introduction"
  1678. X.B Cook
  1679. Xis a tool for constructing files.
  1680. XIt is given a set of files to create,
  1681. Xand instructions detailing how to construct them.
  1682. XIn any non-trivial program
  1683. Xthere will be prerequisites to performing
  1684. Xthe actions necessary to creating any file,
  1685. Xsuch as extraction from a source-control system.
  1686. X.B Cook
  1687. Xprovides a mechanism to define these.
  1688. X.P
  1689. XWhen a program is being developed or maintained,
  1690. Xthe programmer will typically change one file of several
  1691. Xwhich comprise the program.
  1692. X.B Cook
  1693. Xexamines the last-modified times of the files to see when
  1694. Xthe prerequisites of a file have changed,
  1695. Ximplying that the file
  1696. Xneeds to be recreated as it is logically out of date.
  1697. X.P
  1698. X.B Cook
  1699. Xalso provides a facility for implicit recipes,
  1700. Xallowing users to specify how to form a file with a given suffix from
  1701. Xa file with a different suffix.
  1702. XFor example,
  1703. Xto create
  1704. X.IB filename .o
  1705. Xfrom
  1706. X.IB filename .c
  1707. X.H 2 "How to Use this Manual"
  1708. XThis manual is divided into two parts.
  1709. X.P
  1710. XThe first part is tutorial introduction to
  1711. X.BR cook .
  1712. XThis part runs from chapter 4 to chapter 5.
  1713. X.P
  1714. XThe second part is for reference and details precisely how
  1715. X.B cook
  1716. Xworks.
  1717. XThis part runs from chapter 6 to chapter 14.
  1718. X.P
  1719. XUsers familiar with other programs similar to 
  1720. X.B cook
  1721. Xare advised to skim the tutorial part before diving into the reference part.
  1722. END_OF_FILE
  1723. if test 2213 -ne `wc -c <'doc/intro'`; then
  1724.     echo shar: \"'doc/intro'\" unpacked with wrong size!
  1725. fi
  1726. # end of 'doc/intro'
  1727. fi
  1728. if test -f 'doc/refman.t' -a "${1}" != "-c" ; then 
  1729.   echo shar: Will not clobber existing file \"'doc/refman.t'\"
  1730. else
  1731. echo shar: Extracting \"'doc/refman.t'\" \(1883 characters\)
  1732. sed "s/^X//" >'doc/refman.t' <<'END_OF_FILE'
  1733. X.\"
  1734. X.\"    cook - file construction tool
  1735. X.\"    Copyright (C) 1990, 1991, 1992, 1993 Peter Miller.
  1736. X.\"    All rights reserved.
  1737. X.\"
  1738. X.\"    This program is free software; you can redistribute it and/or modify
  1739. X.\"    it under the terms of the GNU General Public License as published by
  1740. X.\"    the Free Software Foundation; either version 2 of the License, or
  1741. X.\"    (at your option) any later version.
  1742. X.\"
  1743. X.\"    This program is distributed in the hope that it will be useful,
  1744. X.\"    but WITHOUT ANY WARRANTY; without even the implied warranty of
  1745. X.\"    MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
  1746. X.\"    GNU General Public License for more details.
  1747. X.\"
  1748. X.\"    You should have received a copy of the GNU General Public License
  1749. X.\"    along with this program; if not, write to the Free Software
  1750. X.\"    Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.
  1751. X.\"
  1752. X.\" MANIFEST: Reference Manual
  1753. X.\"
  1754. X.\" must be formatted using "groff -s -t -mm refman.t | lpr"
  1755. X.\"
  1756. X.TL
  1757. Xcook
  1758. X.sp
  1759. Xa file construction tool
  1760. X.AF ""
  1761. X.AU "Peter Miller" "PM"
  1762. X.AT "Software Engineer"
  1763. X.AS
  1764. XThis document describes
  1765. X.BR cook ,
  1766. Xa maintenance tool designed to construct files.
  1767. X.B Cook
  1768. Xmay be used to maintain consistency between executable files and the
  1769. Xassociated source files that are used to generate them.
  1770. XThe consistency is designated by the relative
  1771. Xlast-modified times of files
  1772. Xand is thus automatically adjusted each time a file is edited,
  1773. Xcompiled or otherwise modified.
  1774. X.B Cook
  1775. Xvalidates the consistency of a system of
  1776. Xfiles and executes all commands necessary to maintain that
  1777. Xconsistency.
  1778. X.AE
  1779. X.MT 4 1
  1780. X.nr Hb 9
  1781. X.de eB
  1782. X.br
  1783. X.ft CW
  1784. X.in +0.5i
  1785. X.ta 8n 16n 24n 32n 40n 48n
  1786. X.nf
  1787. X..
  1788. X.de eE
  1789. X.br
  1790. X.ft R
  1791. X.fi
  1792. X.in -0.5i
  1793. X..
  1794. X.SK
  1795. X.PH "'Cook''Cook'"
  1796. X.PF "'Page %''Page %'"
  1797. X.nr Ej 1
  1798. X.so intro
  1799. X.so history
  1800. X.so conditions
  1801. X.so intro.aa
  1802. X.so intro.bb
  1803. X.so cmdline
  1804. X.so language
  1805. X.so builtin
  1806. X.so variables
  1807. X.so how
  1808. X.so option
  1809. X.so match
  1810. X.so system
  1811. X.so glossary
  1812. X.TC
  1813. END_OF_FILE
  1814. if test 1883 -ne `wc -c <'doc/refman.t'`; then
  1815.     echo shar: \"'doc/refman.t'\" unpacked with wrong size!
  1816. fi
  1817. # end of 'doc/refman.t'
  1818. fi
  1819. if test -f 'doc/variables' -a "${1}" != "-c" ; then 
  1820.   echo shar: Will not clobber existing file \"'doc/variables'\"
  1821. else
  1822. echo shar: Extracting \"'doc/variables'\" \(2183 characters\)
  1823. sed "s/^X//" >'doc/variables' <<'END_OF_FILE'
  1824. X.\"
  1825. X.\"    cook - file construction tool
  1826. X.\"    Copyright (C) 1990, 1991, 1992, 1993 Peter Miller.
  1827. X.\"    All rights reserved.
  1828. X.\"
  1829. X.\"    This program is free software; you can redistribute it and/or modify
  1830. X.\"    it under the terms of the GNU General Public License as published by
  1831. X.\"    the Free Software Foundation; either version 2 of the License, or
  1832. X.\"    (at your option) any later version.
  1833. X.\"
  1834. X.\"    This program is distributed in the hope that it will be useful,
  1835. X.\"    but WITHOUT ANY WARRANTY; without even the implied warranty of
  1836. X.\"    MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
  1837. X.\"    GNU General Public License for more details.
  1838. X.\"
  1839. X.\"    You should have received a copy of the GNU General Public License
  1840. X.\"    along with this program; if not, write to the Free Software
  1841. X.\"    Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.
  1842. X.\"
  1843. X.\" MANIFEST: Reference Manual, Predefined Variables
  1844. X.\"
  1845. X.H 1 "Predefined Variables"
  1846. XA number of variables are defined by
  1847. X.B cook
  1848. Xat run-time.
  1849. X.H 2 need
  1850. XThe ingredients of the recipe currently being cooked.
  1851. X.H 2 "search_list"
  1852. XThis variable may be set to a list of directories to be searched for
  1853. Xtargets and ingredients.
  1854. XThis list is initially the current directory (.)
  1855. Xand will always have the current directory prepended if it is not present.
  1856. XThis is useful when taking partial copies of a source
  1857. Xto perform controlled updates.
  1858. XUse the
  1859. X.I "resolve"
  1860. Xbuiltin function to determine what file name cook actually found.
  1861. XThe targets of recipes are always cooked into the current directory.
  1862. X.H 2 self
  1863. XThe name
  1864. X.B cook
  1865. Xwas invoked as,
  1866. Xusually "cook".
  1867. XBe careful what you call cook,
  1868. Xbecause anything with the string "cook" in it will be changed,
  1869. Xincluding (but not limited to) file suffixes and environment variable names.
  1870. X.H 2 target
  1871. XThe target of the recipe currently being cooked.
  1872. XSpecifically,
  1873. Xthe target which caused the recipe to be invoked.
  1874. X.H 2 targets
  1875. XThe targets of the recipe currently being cooked.
  1876. XThis includes all targets of the recipe,
  1877. Xshould there be more than one.
  1878. X.H 2 younger
  1879. XThe subset of the ingredients of the recipe currently being cooked
  1880. Xwhich are younger than the target.
  1881. X.H 2 version
  1882. XThe version of
  1883. X.B cook
  1884. Xcurrently executing.
  1885. END_OF_FILE
  1886. if test 2183 -ne `wc -c <'doc/variables'`; then
  1887.     echo shar: \"'doc/variables'\" unpacked with wrong size!
  1888. fi
  1889. # end of 'doc/variables'
  1890. fi
  1891. if test -f 'find_libs/os.c' -a "${1}" != "-c" ; then 
  1892.   echo shar: Will not clobber existing file \"'find_libs/os.c'\"
  1893. else
  1894. echo shar: Extracting \"'find_libs/os.c'\" \(1396 characters\)
  1895. sed "s/^X//" >'find_libs/os.c' <<'END_OF_FILE'
  1896. X/*
  1897. X *    cook - file construction tool
  1898. X *    Copyright (C) 1990, 1991, 1992, 1993 Peter Miller.
  1899. X *    All rights reserved.
  1900. X *
  1901. X *    This program is free software; you can redistribute it and/or modify
  1902. X *    it under the terms of the GNU General Public License as published by
  1903. X *    the Free Software Foundation; either version 2 of the License, or
  1904. X *    (at your option) any later version.
  1905. X *
  1906. X *    This program is distributed in the hope that it will be useful,
  1907. X *    but WITHOUT ANY WARRANTY; without even the implied warranty of
  1908. X *    MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
  1909. X *    GNU General Public License for more details.
  1910. X *
  1911. X *    You should have received a copy of the GNU General Public License
  1912. X *    along with this program; if not, write to the Free Software
  1913. X *    Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.
  1914. X *
  1915. X * MANIFEST: functions to isolate operating system interface
  1916. X */
  1917. X
  1918. X#include <sys/types.h>
  1919. X#include <sys/stat.h>
  1920. X#include <errno.h>
  1921. X
  1922. X#include <error.h>
  1923. X#include <os.h>
  1924. X
  1925. X/*
  1926. X *  NAME
  1927. X *    os_exists - tests for the existence of a file
  1928. X *
  1929. X *  SYNOPSIS
  1930. X *    int os_exists(char *filename);
  1931. X *
  1932. X *  DESCRIPTION
  1933. X *    Os_returns 1 if the file exists, 0 if it does not.
  1934. X */
  1935. X
  1936. Xint
  1937. Xos_exists(filename)
  1938. X    char    *filename;
  1939. X{
  1940. X    struct stat    st;
  1941. X
  1942. X    if (stat(filename, &st))
  1943. X    {
  1944. X        switch (errno)
  1945. X        {
  1946. X        case ENOENT:
  1947. X        case ENOTDIR:
  1948. X            break;
  1949. X
  1950. X        default:
  1951. X            nfatal("%s", filename);
  1952. X        }
  1953. X        return 0;
  1954. X    }
  1955. X    return 1;
  1956. X}
  1957. END_OF_FILE
  1958. if test 1396 -ne `wc -c <'find_libs/os.c'`; then
  1959.     echo shar: \"'find_libs/os.c'\" unpacked with wrong size!
  1960. fi
  1961. # end of 'find_libs/os.c'
  1962. fi
  1963. if test -f 'lib/bison' -a "${1}" != "-c" ; then 
  1964.   echo shar: Will not clobber existing file \"'lib/bison'\"
  1965. else
  1966. echo shar: Extracting \"'lib/bison'\" \(2006 characters\)
  1967. sed "s/^X//" >'lib/bison' <<'END_OF_FILE'
  1968. X/*
  1969. X * NAME
  1970. X *    bison - how to use bison
  1971. X *
  1972. X * DESCRIPTION
  1973. X *    This cookbook describes how to use bison.
  1974. X *
  1975. X *    You will have to add "-d" to the [bison_flags] variable
  1976. X *    if you want %.h files generated.
  1977. X *
  1978. X *    If a y.output file is constructed, it will be moved to %.list
  1979. X *
  1980. X * RECIPES
  1981. X *    %.c %.h: %.y    applied if -d in [bison_flags]
  1982. X *    %.c: %.y    applied if -d not in [bison_flags]
  1983. X *
  1984. X * VARIABLES
  1985. X *    bison_src    bison source files in the current directory.
  1986. X *    dot_src        Source files constructable in the current directory
  1987. X *            (unioned with existing setting, if necessary).
  1988. X *    dot_obj        Object files constructable in the current directory
  1989. X *            (unioned with existing setting, if necessary).
  1990. X *    dot_clean    Files which may be removed from the current directory
  1991. X *            in a clean target.            
  1992. X *    dot_lint_obj    Lint object files constructable in the current directory
  1993. X *            (unioned with existing setting, if necessary).
  1994. X *
  1995. X * MANIFEST: cookbook for using bison
  1996. X */
  1997. X
  1998. X#pragma once
  1999. X
  2000. X#include "c"
  2001. X
  2002. Xif [not [defined bison]] then
  2003. X    bison = bison;
  2004. Xif [not [defined bison_flags]] then
  2005. X    bison_flags = ;
  2006. Xbison_src = [glob *.y];
  2007. Xcc_src = [stringset [cc_src] - [fromto %.y %.c [bison_src]]];
  2008. Xdot_src =
  2009. X    [stringset
  2010. X        [dot_src] [bison_src]
  2011. X    -
  2012. X        [fromto %.y %.c [bison_src]] [fromto %.y %.s [bison_src]]
  2013. X    ];
  2014. Xdot_obj = [stringset [dot_obj] [fromto %.y %.o [bison_src]]];
  2015. Xdot_clean =
  2016. X    [stringset
  2017. X    [dot_clean]
  2018. X    [fromto %.y %.c [bison_src]]
  2019. X    [fromto %.y %.output [bison_src]]
  2020. X    [fromto %.y %.tab.c [bison_src]]
  2021. X    [fromto %.y %.tab.h [bison_src]]
  2022. X    [fromto %.y %.ln [bison_src]]
  2023. X    [fromto %.y %.s [bison_src]]
  2024. X    ];
  2025. Xdot_lint_obj = [stringset [dot_lint_obj] [fromto %.y %.ln [bison_src]]];
  2026. X
  2027. X%.c %.h: %.y if [in -d [bison_flags]]
  2028. X    {
  2029. X    if [exists %.output] then
  2030. X        rm -f %.output
  2031. X        set clearstat;
  2032. X    [bison] [bison_flags] %.y;
  2033. X    mv %.tab.c %.c;
  2034. X    mv %.tab.h %.h;
  2035. X    }
  2036. X
  2037. X%.c: %.y if [not [in -d [bison_flags]]]
  2038. X    {
  2039. X    if [exists %.output] then
  2040. X        rm -f %.output
  2041. X        set clearstat;
  2042. X    [bison] [bison_flags] %.y;
  2043. X    mv %.tab.c %.c;
  2044. X    }
  2045. END_OF_FILE
  2046. if test 2006 -ne `wc -c <'lib/bison'`; then
  2047.     echo shar: \"'lib/bison'\" unpacked with wrong size!
  2048. fi
  2049. # end of 'lib/bison'
  2050. fi
  2051. if test -f 'lib/lex' -a "${1}" != "-c" ; then 
  2052.   echo shar: Will not clobber existing file \"'lib/lex'\"
  2053. else
  2054. echo shar: Extracting \"'lib/lex'\" \(1524 characters\)
  2055. sed "s/^X//" >'lib/lex' <<'END_OF_FILE'
  2056. X/*
  2057. X * NAME
  2058. X *    lex - the lex cookbook
  2059. X *
  2060. X * DESCRIPTION
  2061. X *    This cookbook describes how to work with lex files.
  2062. X *
  2063. X * RECIPES
  2064. X *    %.l: %.c    make C source files from lex source files
  2065. X *    
  2066. X * VARIABLES
  2067. X *    lex        The lex command
  2068. X *            Not altered if already defined.
  2069. X *    lex_flags    Options to pass to the lex command
  2070. X *            Not altered if already defined.
  2071. X *            The default is empty.
  2072. X *    lex_src        lex source files in the current directory.
  2073. X *    dot_src        Source files constructable in the current directory
  2074. X *            (unioned with existing setting, if necessary).
  2075. X *    dot_obj        Object files constructable in the current directory
  2076. X *            (unioned with existing setting, if necessary).
  2077. X *    dot_clean    Files which may be removed from the current directory
  2078. X *            in a clean target.            
  2079. X *    dot_lint_obj    Lint object files constructable in the current directory
  2080. X *            (unioned with existing setting, if necessary).
  2081. X *
  2082. X * MANIFEST: cookbook for using lex
  2083. X */
  2084. X
  2085. X#pragma once
  2086. X
  2087. X#include "c"
  2088. X
  2089. Xif [not [defined lex]] then
  2090. X    lex = lex;
  2091. Xif [not [defined lex_flags]] then
  2092. X    lex_flags = ;
  2093. Xlex_src = [glob *.l];
  2094. Xdot_src =
  2095. X    [stringset
  2096. X        [dot_src] [lex_src]
  2097. X    -
  2098. X        [fromto %.l %.c [lex_src]]
  2099. X        [fromto %.l %.s [lex_src]]
  2100. X    ];
  2101. Xdot_obj = [stringset [dot_obj] [fromto %.l %.o [lex_src]]];
  2102. Xdot_clean =
  2103. X    [stringset
  2104. X    [dot_clean]
  2105. X    [fromto %.l %.c [lex_src]]
  2106. X    [fromto %.l %.ln [lex_src]]
  2107. X    [fromto %.l %.s [lex_src]]
  2108. X    lex.yy.c
  2109. X    ];
  2110. Xdot_lint_obj = [stringset [dot_lint_obj] [fromto %.l %.ln [lex_src]]];
  2111. X
  2112. X%.c: %.l
  2113. X    {
  2114. X    [lex] [lex_flags] %.l;
  2115. X    mv lex.yy.c %.c;
  2116. X    }
  2117. END_OF_FILE
  2118. if test 1524 -ne `wc -c <'lib/lex'`; then
  2119.     echo shar: \"'lib/lex'\" unpacked with wrong size!
  2120. fi
  2121. # end of 'lib/lex'
  2122. fi
  2123. if test -f 'man1/copyright.so' -a "${1}" != "-c" ; then 
  2124.   echo shar: Will not clobber existing file \"'man1/copyright.so'\"
  2125. else
  2126. echo shar: Extracting \"'man1/copyright.so'\" \(1601 characters\)
  2127. sed "s/^X//" >'man1/copyright.so' <<'END_OF_FILE'
  2128. X.\"
  2129. X.\"    cook - file construction tool
  2130. X.\"    Copyright (C) 1993 Peter Miller.
  2131. X.\"    All rights reserved.
  2132. X.\"
  2133. X.\"    This program is free software; you can redistribute it and/or modify
  2134. X.\"    it under the terms of the GNU General Public License as published by
  2135. X.\"    the Free Software Foundation; either version 2 of the License, or
  2136. X.\"    (at your option) any later version.
  2137. X.\"
  2138. X.\"    This program is distributed in the hope that it will be useful,
  2139. X.\"    but WITHOUT ANY WARRANTY; without even the implied warranty of
  2140. X.\"    MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
  2141. X.\"    GNU General Public License for more details.
  2142. X.\"
  2143. X.\"    You should have received a copy of the GNU General Public License
  2144. X.\"    along with this program; if not, write to the Free Software
  2145. X.\"    Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.
  2146. X.\"
  2147. X.\" MANIFEST: copyright notice for manual entries
  2148. X.\"
  2149. X.br
  2150. X.ne 1i
  2151. X.SH EXIT STATUS
  2152. XThe 
  2153. X.I \*(n)
  2154. Xcommand will exit with a status of 1 on any error.
  2155. XThe 
  2156. X.I \*(n)
  2157. Xcommand will only exit with a status of 0 if there are no errors.
  2158. X.br
  2159. X.ne 1i
  2160. X.SH COPYRIGHT
  2161. X.I \*(n)
  2162. Xversion
  2163. X.so ../doc/version.so
  2164. X.br
  2165. XCopyright
  2166. X.if n (C)
  2167. X.if t \(co
  2168. X1988, 1989, 1990, 1991, 1992, 1993 Peter Miller.
  2169. X.br
  2170. XAll rights reserved.
  2171. X.PP
  2172. XThe
  2173. X.I \*(n)
  2174. Xprogram is distributed in the hope that it will be useful,
  2175. Xbut WITHOUT ANY WARRANTY;
  2176. Xwithout even the implied warranty
  2177. Xof MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.
  2178. XSee the GNU General Public License for more details.
  2179. X.br
  2180. X.ne 1i
  2181. X.SH AUTHOR
  2182. X.TS
  2183. Xcenter,tab(;);
  2184. Xl l l.
  2185. XPeter Miller;UUCP;uunet!munnari!bmr.gov.au!pmiller
  2186. X/\e/\e*;Internet;pmiller@bmr.gov.au
  2187. X.TE
  2188. END_OF_FILE
  2189. if test 1601 -ne `wc -c <'man1/copyright.so'`; then
  2190.     echo shar: \"'man1/copyright.so'\" unpacked with wrong size!
  2191. fi
  2192. # end of 'man1/copyright.so'
  2193. fi
  2194. if test -f 'man1/find_libs.1' -a "${1}" != "-c" ; then 
  2195.   echo shar: Will not clobber existing file \"'man1/find_libs.1'\"
  2196. else
  2197. echo shar: Extracting \"'man1/find_libs.1'\" \(2074 characters\)
  2198. sed "s/^X//" >'man1/find_libs.1' <<'END_OF_FILE'
  2199. X'\" t
  2200. X.\"    cook - file construction tool
  2201. X.\"    Copyright (C) 1991, 1992, 1993 Peter Miller.
  2202. X.\"    All rights reserved.
  2203. X.\"
  2204. X.\"    This program is free software; you can redistribute it and/or modify
  2205. X.\"    it under the terms of the GNU General Public License as published by
  2206. X.\"    the Free Software Foundation; either version 2 of the License, or
  2207. X.\"    (at your option) any later version.
  2208. X.\"
  2209. X.\"    This program is distributed in the hope that it will be useful,
  2210. X.\"    but WITHOUT ANY WARRANTY; without even the implied warranty of
  2211. X.\"    MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
  2212. X.\"    GNU General Public License for more details.
  2213. X.\"
  2214. X.\"    You should have received a copy of the GNU General Public License
  2215. X.\"    along with this program; if not, write to the Free Software
  2216. X.\"    Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.
  2217. X.\"
  2218. X.\" MANIFEST: manual entry for the find_libs command
  2219. X.\" 
  2220. X.TH FIND_LIBS 1
  2221. X.ds n) find_libs
  2222. X.if n .hy 0
  2223. X.if n .ad l
  2224. X.if n .nr IN 8n
  2225. X.SH NAME
  2226. X\*(n) \- find pathnames of libraries
  2227. X.SH SYNOPSIS
  2228. X.B \*(n)
  2229. X[
  2230. X.BI -L path
  2231. X\&...
  2232. X][
  2233. X.BI -l name
  2234. X\&...
  2235. X]
  2236. X.br
  2237. X.B \*(n)
  2238. X.B -Help
  2239. X.br
  2240. X.B \*(n)
  2241. X.B -VERSion
  2242. X.SH DESCRIPTION
  2243. XThe
  2244. X.I \*(n)
  2245. Xprogram is used to find the actual pathname of a library
  2246. Xspecified on a
  2247. X.IR cc (1)
  2248. Xcommand line.
  2249. XThis allows 
  2250. X.IR cook (1)
  2251. Xto know these dependencies.
  2252. X.br
  2253. X.ne 1i
  2254. X.SH OPTIONS
  2255. XThe following options are understood.
  2256. X.TP 8n
  2257. X.BI -L path
  2258. X.br
  2259. XSpecify a path to search for libraries on.
  2260. XIf more than one is specified,
  2261. Xthey will be scanned in the order given before the standard
  2262. X.I /usr/lib
  2263. Xand
  2264. X.I /lib
  2265. Xplaces.
  2266. XThis is like the same argument to
  2267. X.IR cc (1),
  2268. Xand the usual \*(n) option abbreviation rules do not apply.
  2269. X.TP 8n
  2270. X.BI -l name
  2271. X.br
  2272. XName a library to be searched for.
  2273. XThis is like the same argument to
  2274. X.IR cc (1),
  2275. Xand the usual \*(n) option abbreviation rules do not apply.
  2276. X.TP 8n
  2277. X.B -Help
  2278. X.br
  2279. XGive some information on how to use the
  2280. X.I \*(n)
  2281. Xcommand.
  2282. X.TP 8n
  2283. X.B -VERSion
  2284. X.br
  2285. XTell the version of the
  2286. X.I \*(n)
  2287. Xcommand currently executing.
  2288. X.PP
  2289. XAll other options will result in a diagnostic error.
  2290. X.so o__rules.so
  2291. X.so copyright.so
  2292. END_OF_FILE
  2293. if test 2074 -ne `wc -c <'man1/find_libs.1'`; then
  2294.     echo shar: \"'man1/find_libs.1'\" unpacked with wrong size!
  2295. fi
  2296. # end of 'man1/find_libs.1'
  2297. fi
  2298. if test -f 'man1/o__rules.so' -a "${1}" != "-c" ; then 
  2299.   echo shar: Will not clobber existing file \"'man1/o__rules.so'\"
  2300. else
  2301. echo shar: Extracting \"'man1/o__rules.so'\" \(1736 characters\)
  2302. sed "s/^X//" >'man1/o__rules.so' <<'END_OF_FILE'
  2303. X.\"
  2304. X.\"    cook - file construction tool
  2305. X.\"    Copyright (C) 1993 Peter Miller.
  2306. X.\"    All rights reserved.
  2307. X.\"
  2308. X.\"    This program is free software; you can redistribute it and/or modify
  2309. X.\"    it under the terms of the GNU General Public License as published by
  2310. X.\"    the Free Software Foundation; either version 2 of the License, or
  2311. X.\"    (at your option) any later version.
  2312. X.\"
  2313. X.\"    This program is distributed in the hope that it will be useful,
  2314. X.\"    but WITHOUT ANY WARRANTY; without even the implied warranty of
  2315. X.\"    MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
  2316. X.\"    GNU General Public License for more details.
  2317. X.\"
  2318. X.\"    You should have received a copy of the GNU General Public License
  2319. X.\"    along with this program; if not, write to the Free Software
  2320. X.\"    Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.
  2321. X.\"
  2322. X.\" MANIFEST: description of option up/down case convention
  2323. X.\"
  2324. X.PP
  2325. XAll options may be abbreviated;
  2326. Xthe abbreviation is documented as the upper case letters,
  2327. Xall lower case letters and underscores (_) are optional.
  2328. XYou must use consecutive sequences of optional letters.
  2329. X.PP
  2330. XAll options are case insensitive,
  2331. Xyou may type them in upper case or lower case or a combination of both,
  2332. Xcase is not important.
  2333. X.PP
  2334. XFor example:
  2335. Xthe arguments "-help", "-HEL" and "-h" are
  2336. Xall interpreted to mean the \fB-Help\fP option.
  2337. XThe argument "-hlp" will not be understood,
  2338. Xbecause consecutive optional characters were not supplied.
  2339. X.PP
  2340. XOptions and other command line arguments may be
  2341. Xmixed arbitrarily on the command line.
  2342. X.br
  2343. X.ne 4
  2344. X.PP
  2345. XThe GNU long option names are understood.
  2346. XSince all option names for
  2347. X.I \*(n)
  2348. Xare long,
  2349. Xthis means ignoring the extra leading '-'.
  2350. XThe "\fB--\fIoption\fB=\fIvalue\fR" convention is also understood.
  2351. END_OF_FILE
  2352. if test 1736 -ne `wc -c <'man1/o__rules.so'`; then
  2353.     echo shar: \"'man1/o__rules.so'\" unpacked with wrong size!
  2354. fi
  2355. # end of 'man1/o__rules.so'
  2356. fi
  2357. if test -f 'test/00/t0002a.sh' -a "${1}" != "-c" ; then 
  2358.   echo shar: Will not clobber existing file \"'test/00/t0002a.sh'\"
  2359. else
  2360. echo shar: Extracting \"'test/00/t0002a.sh'\" \(1370 characters\)
  2361. sed "s/^X//" >'test/00/t0002a.sh' <<'END_OF_FILE'
  2362. X#! /bin/sh
  2363. X#
  2364. X#    cook - file construction tool
  2365. X#    Copyright (C) 1990, 1991, 1992, 1993 Peter Miller.
  2366. X#    All rights reserved.
  2367. X#
  2368. X#    This program is free software; you can redistribute it and/or modify
  2369. X#    it under the terms of the GNU General Public License as published by
  2370. X#    the Free Software Foundation; either version 2 of the License, or
  2371. X#    (at your option) any later version.
  2372. X#
  2373. X#    This program is distributed in the hope that it will be useful,
  2374. X#    but WITHOUT ANY WARRANTY; without even the implied warranty of
  2375. X#    MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
  2376. X#    GNU General Public License for more details.
  2377. X#
  2378. X#    You should have received a copy of the GNU General Public License
  2379. X#    along with this program; if not, write to the Free Software
  2380. X#    Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.
  2381. X#
  2382. X# MANIFEST: test "catenate" builtin function
  2383. X#
  2384. X
  2385. Xtmp=/tmp/$$
  2386. Xhere=`pwd`
  2387. X
  2388. Xfail()
  2389. X{
  2390. X    echo 'FAILED test of builtin function "catenate"' 1>&2
  2391. X    cd $here
  2392. X    rm -rf $tmp
  2393. X    exit 1
  2394. X}
  2395. Xpass()
  2396. X{
  2397. X    cd $here
  2398. X    rm -rf $tmp
  2399. X    exit 0
  2400. X}
  2401. Xtrap "fail" 1 2 3 15
  2402. X
  2403. Xmkdir $tmp
  2404. Xcd $tmp
  2405. X
  2406. Xcat > Howto.cook <<foobar
  2407. Xtest:
  2408. X{
  2409. X    if [catenate] then fail;
  2410. X    if [not [in [catenate x] x]] then fail;
  2411. X    if [not [in [catenate x y] xy]] then fail;
  2412. X    if [not [in [catenate x y z] xyz]] then fail;
  2413. X}
  2414. Xfoobar
  2415. Xif test $? -ne 0 ; then fail; fi
  2416. X
  2417. X$here/bin/cook -nl
  2418. Xif test $? -ne 0 ; then fail; fi
  2419. X
  2420. X# probably OK
  2421. Xpass
  2422. END_OF_FILE
  2423. if test 1370 -ne `wc -c <'test/00/t0002a.sh'`; then
  2424.     echo shar: \"'test/00/t0002a.sh'\" unpacked with wrong size!
  2425. fi
  2426. # end of 'test/00/t0002a.sh'
  2427. fi
  2428. if test -f 'test/00/t0005a.sh' -a "${1}" != "-c" ; then 
  2429.   echo shar: Will not clobber existing file \"'test/00/t0005a.sh'\"
  2430. else
  2431. echo shar: Extracting \"'test/00/t0005a.sh'\" \(1455 characters\)
  2432. sed "s/^X//" >'test/00/t0005a.sh' <<'END_OF_FILE'
  2433. X#! /bin/sh
  2434. X#
  2435. X#    cook - file construction tool
  2436. X#    Copyright (C) 1990, 1991, 1992, 1993 Peter Miller.
  2437. X#    All rights reserved.
  2438. X#
  2439. X#    This program is free software; you can redistribute it and/or modify
  2440. X#    it under the terms of the GNU General Public License as published by
  2441. X#    the Free Software Foundation; either version 2 of the License, or
  2442. X#    (at your option) any later version.
  2443. X#
  2444. X#    This program is distributed in the hope that it will be useful,
  2445. X#    but WITHOUT ANY WARRANTY; without even the implied warranty of
  2446. X#    MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
  2447. X#    GNU General Public License for more details.
  2448. X#
  2449. X#    You should have received a copy of the GNU General Public License
  2450. X#    along with this program; if not, write to the Free Software
  2451. X#    Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.
  2452. X#
  2453. X# MANIFEST: test the "count" builtin function
  2454. X#
  2455. Xtmp=/tmp/$$
  2456. Xhere=`pwd`
  2457. X
  2458. Xfail()
  2459. X{
  2460. X    echo 'FAILED test of builtin function "count"' 1>&2
  2461. X    cd $here
  2462. X    rm -rf $tmp
  2463. X    exit 1
  2464. X}
  2465. Xpass()
  2466. X{
  2467. X    cd $here
  2468. X    rm -rf $tmp
  2469. X    exit 0
  2470. X}
  2471. Xtrap "fail" 1 2 3 15
  2472. X
  2473. Xmkdir $tmp
  2474. Xcd $tmp
  2475. X
  2476. Xcat > Howto.cook <<foobar
  2477. Xtest:
  2478. X{
  2479. X    if [not [in [count] 0]] then fail;
  2480. X    if [not [in [count 1] 1]] then fail;
  2481. X    if [not [in [count 1 2] 2]] then fail;
  2482. X    if [not [in [count 1 2 3] 3]] then fail;
  2483. X    if [not [in [count 1 2 3 4] 4]] then fail;
  2484. X    if [not [in [count 1 2 3 4 5] 5]] then fail;
  2485. X}
  2486. Xfoobar
  2487. Xif test $? -ne 0 ; then fail; fi
  2488. X
  2489. X$here/bin/cook -nl
  2490. Xif test $? -ne 0 ; then fail; fi
  2491. X
  2492. X# probably OK
  2493. Xpass
  2494. END_OF_FILE
  2495. if test 1455 -ne `wc -c <'test/00/t0005a.sh'`; then
  2496.     echo shar: \"'test/00/t0005a.sh'\" unpacked with wrong size!
  2497. fi
  2498. # end of 'test/00/t0005a.sh'
  2499. fi
  2500. if test -f 'test/00/t0007a.sh' -a "${1}" != "-c" ; then 
  2501.   echo shar: Will not clobber existing file \"'test/00/t0007a.sh'\"
  2502. else
  2503. echo shar: Extracting \"'test/00/t0007a.sh'\" \(1651 characters\)
  2504. sed "s/^X//" >'test/00/t0007a.sh' <<'END_OF_FILE'
  2505. X#! /bin/sh
  2506. X#
  2507. X#    cook - file construction tool
  2508. X#    Copyright (C) 1990, 1991, 1992, 1993 Peter Miller.
  2509. X#    All rights reserved.
  2510. X#
  2511. X#    This program is free software; you can redistribute it and/or modify
  2512. X#    it under the terms of the GNU General Public License as published by
  2513. X#    the Free Software Foundation; either version 2 of the License, or
  2514. X#    (at your option) any later version.
  2515. X#
  2516. X#    This program is distributed in the hope that it will be useful,
  2517. X#    but WITHOUT ANY WARRANTY; without even the implied warranty of
  2518. X#    MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
  2519. X#    GNU General Public License for more details.
  2520. X#
  2521. X#    You should have received a copy of the GNU General Public License
  2522. X#    along with this program; if not, write to the Free Software
  2523. X#    Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.
  2524. X#
  2525. X# MANIFEST: test the "dirname" builtin function
  2526. X#
  2527. Xtmp=/tmp/$$
  2528. Xhere=`pwd`
  2529. X
  2530. Xfail()
  2531. X{
  2532. X    echo 'FAILED test of builtin function "dirname"' 1>&2
  2533. X    cd $here
  2534. X    rm -rf $tmp
  2535. X    exit 1
  2536. X}
  2537. Xpass()
  2538. X{
  2539. X    cd $here
  2540. X    rm -rf $tmp
  2541. X    exit 0
  2542. X}
  2543. Xtrap "fail" 1 2 3 15
  2544. X
  2545. Xmkdir $tmp
  2546. Xcd $tmp
  2547. X
  2548. Xcat > Howto.cook <<foobar
  2549. Xtest:
  2550. X{
  2551. X    if [not [in [dir x] [pathname $tmp]]] then fail;
  2552. X    if [not [in [dir x/y] x]] then fail;
  2553. X    if [not [in [dir /] /]] then fail;
  2554. X    if [not [in [dir /foo] /]] then fail;
  2555. X    if [not [in [dir /foo/bar] /foo]] then fail;
  2556. X    if [not [in [dirname x] [pathname $tmp]]] then fail;
  2557. X    if [not [in [dirname x/y] x]] then fail;
  2558. X    if [not [in [dirname /] /]] then fail;
  2559. X    if [not [in [dirname /foo] /]] then fail;
  2560. X    if [not [in [dirname /foo/bar] /foo]] then fail;
  2561. X}
  2562. Xfoobar
  2563. Xif test $? -ne 0 ; then fail; fi
  2564. X
  2565. X$here/bin/cook -nl
  2566. Xif test $? -ne 0 ; then fail; fi
  2567. X
  2568. X# probably OK
  2569. Xpass
  2570. END_OF_FILE
  2571. if test 1651 -ne `wc -c <'test/00/t0007a.sh'`; then
  2572.     echo shar: \"'test/00/t0007a.sh'\" unpacked with wrong size!
  2573. fi
  2574. # end of 'test/00/t0007a.sh'
  2575. fi
  2576. if test -f 'test/00/t0009a.sh' -a "${1}" != "-c" ; then 
  2577.   echo shar: Will not clobber existing file \"'test/00/t0009a.sh'\"
  2578. else
  2579. echo shar: Extracting \"'test/00/t0009a.sh'\" \(1430 characters\)
  2580. sed "s/^X//" >'test/00/t0009a.sh' <<'END_OF_FILE'
  2581. X#! /bin/sh
  2582. X#
  2583. X#    cook - file construction tool
  2584. X#    Copyright (C) 1990, 1991, 1992, 1993 Peter Miller.
  2585. X#    All rights reserved.
  2586. X#
  2587. X#    This program is free software; you can redistribute it and/or modify
  2588. X#    it under the terms of the GNU General Public License as published by
  2589. X#    the Free Software Foundation; either version 2 of the License, or
  2590. X#    (at your option) any later version.
  2591. X#
  2592. X#    This program is distributed in the hope that it will be useful,
  2593. X#    but WITHOUT ANY WARRANTY; without even the implied warranty of
  2594. X#    MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
  2595. X#    GNU General Public License for more details.
  2596. X#
  2597. X#    You should have received a copy of the GNU General Public License
  2598. X#    along with this program; if not, write to the Free Software
  2599. X#    Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.
  2600. X#
  2601. X# MANIFEST: test the "entryname" builtin function
  2602. X#
  2603. Xtmp=/tmp/$$
  2604. Xhere=`pwd`
  2605. X
  2606. Xfail()
  2607. X{
  2608. X    echo 'FAILED test of builtin function "entryname"' 1>&2
  2609. X    cd $here
  2610. X    rm -rf $tmp
  2611. X    exit 1
  2612. X}
  2613. Xpass()
  2614. X{
  2615. X    cd $here
  2616. X    rm -rf $tmp
  2617. X    exit 0
  2618. X}
  2619. Xtrap "fail" 1 2 3 15
  2620. X
  2621. Xmkdir $tmp
  2622. Xcd $tmp
  2623. X
  2624. Xcat > Howto.cook <<foobar
  2625. Xtest:
  2626. X{
  2627. X    if [not [in [entryname x] x]] then fail;
  2628. X    if [not [in [entryname x/y] y]] then fail;
  2629. X    if [entryname /] then fail;
  2630. X    if [not [in [entryname /foo] foo]] then fail;
  2631. X    if [not [in [entryname /foo/bar] bar]] then fail;
  2632. X}
  2633. Xfoobar
  2634. Xif test $? -ne 0 ; then fail; fi
  2635. X
  2636. X$here/bin/cook -nl
  2637. Xif test $? -ne 0 ; then fail; fi
  2638. X
  2639. X# probably OK
  2640. Xpass
  2641. END_OF_FILE
  2642. if test 1430 -ne `wc -c <'test/00/t0009a.sh'`; then
  2643.     echo shar: \"'test/00/t0009a.sh'\" unpacked with wrong size!
  2644. fi
  2645. # end of 'test/00/t0009a.sh'
  2646. fi
  2647. if test -f 'test/00/t0015a.sh' -a "${1}" != "-c" ; then 
  2648.   echo shar: Will not clobber existing file \"'test/00/t0015a.sh'\"
  2649. else
  2650. echo shar: Extracting \"'test/00/t0015a.sh'\" \(1486 characters\)
  2651. sed "s/^X//" >'test/00/t0015a.sh' <<'END_OF_FILE'
  2652. X#! /bin/sh
  2653. X#
  2654. X#    cook - file construction tool
  2655. X#    Copyright (C) 1990, 1991, 1992, 1993 Peter Miller.
  2656. X#    All rights reserved.
  2657. X#
  2658. X#    This program is free software; you can redistribute it and/or modify
  2659. X#    it under the terms of the GNU General Public License as published by
  2660. X#    the Free Software Foundation; either version 2 of the License, or
  2661. X#    (at your option) any later version.
  2662. X#
  2663. X#    This program is distributed in the hope that it will be useful,
  2664. X#    but WITHOUT ANY WARRANTY; without even the implied warranty of
  2665. X#    MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
  2666. X#    GNU General Public License for more details.
  2667. X#
  2668. X#    You should have received a copy of the GNU General Public License
  2669. X#    along with this program; if not, write to the Free Software
  2670. X#    Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.
  2671. X#
  2672. X# MANIFEST: test the "glob" builtin function
  2673. X#
  2674. Xtmp=/tmp/$$
  2675. Xhere=`pwd`
  2676. X
  2677. Xfail()
  2678. X{
  2679. X    echo 'FAILED test of builtin function "glob"' 1>&2
  2680. X    cd $here
  2681. X    rm -rf $tmp
  2682. X    exit 1
  2683. X}
  2684. Xpass()
  2685. X{
  2686. X    cd $here
  2687. X    rm -rf $tmp
  2688. X    exit 0
  2689. X}
  2690. Xtrap "fail" 1 2 3 15
  2691. X
  2692. Xmkdir $tmp
  2693. Xcd $tmp
  2694. X
  2695. Xfor f in a.c b.c c.c d.c e.c a.o f.o
  2696. Xdo
  2697. X    cp /dev/null $f
  2698. Xdone
  2699. X
  2700. Xcp /dev/null a.c
  2701. X
  2702. Xcat > Howto.cook <<foobar
  2703. Xtest:
  2704. X{
  2705. X    if [not [in [count [glob "*"]] 8]] then fail;
  2706. X    if [not [in [count [glob "*.c"]] 5]] then fail;
  2707. X    if [not [in [count [glob "*.o"]] 2]] then fail;
  2708. X    if [not [in [count [glob "a.[abc]"]] 1]] then fail;
  2709. X}
  2710. Xfoobar
  2711. Xif test $? -ne 0 ; then fail; fi
  2712. X
  2713. X$here/bin/cook -nl
  2714. Xif test $? -ne 0 ; then fail; fi
  2715. X
  2716. X# probably OK
  2717. Xpass
  2718. END_OF_FILE
  2719. if test 1486 -ne `wc -c <'test/00/t0015a.sh'`; then
  2720.     echo shar: \"'test/00/t0015a.sh'\" unpacked with wrong size!
  2721. fi
  2722. # end of 'test/00/t0015a.sh'
  2723. fi
  2724. if test -f 'test/00/t0018a.sh' -a "${1}" != "-c" ; then 
  2725.   echo shar: Will not clobber existing file \"'test/00/t0018a.sh'\"
  2726. else
  2727. echo shar: Extracting \"'test/00/t0018a.sh'\" \(1394 characters\)
  2728. sed "s/^X//" >'test/00/t0018a.sh' <<'END_OF_FILE'
  2729. X#! /bin/sh
  2730. X#
  2731. X#    cook - file construction tool
  2732. X#    Copyright (C) 1990, 1991, 1992, 1993 Peter Miller.
  2733. X#    All rights reserved.
  2734. X#
  2735. X#    This program is free software; you can redistribute it and/or modify
  2736. X#    it under the terms of the GNU General Public License as published by
  2737. X#    the Free Software Foundation; either version 2 of the License, or
  2738. X#    (at your option) any later version.
  2739. X#
  2740. X#    This program is distributed in the hope that it will be useful,
  2741. X#    but WITHOUT ANY WARRANTY; without even the implied warranty of
  2742. X#    MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
  2743. X#    GNU General Public License for more details.
  2744. X#
  2745. X#    You should have received a copy of the GNU General Public License
  2746. X#    along with this program; if not, write to the Free Software
  2747. X#    Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.
  2748. X#
  2749. X# MANIFEST: test the "if" builtin function
  2750. X#
  2751. Xtmp=/tmp/$$
  2752. Xhere=`pwd`
  2753. X
  2754. Xfail()
  2755. X{
  2756. X    echo 'FAILED test of builtin funrction "if"' 1>&2
  2757. X    cd $here
  2758. X    rm -rf $tmp
  2759. X    exit 1
  2760. X}
  2761. Xpass()
  2762. X{
  2763. X    cd $here
  2764. X    rm -rf $tmp
  2765. X    exit 0
  2766. X}
  2767. Xtrap "fail" 1 2 3 15
  2768. X
  2769. Xmkdir $tmp
  2770. Xcd $tmp
  2771. X
  2772. Xcat > Howto.cook <<foobar
  2773. Xtest:
  2774. X{
  2775. X    if [not [in ["if" 1 "then" aa "else" bb] aa]] then fail;
  2776. X    if [not ["if" 1 "then" aa]] then fail;
  2777. X    if [not [in ["if" 0 "then" aa "else" bb] bb]] then fail;
  2778. X    if ["if" 0 "then" aa] then fail;
  2779. X}
  2780. Xfoobar
  2781. Xif test $? -ne 0 ; then fail; fi
  2782. X
  2783. X$here/bin/cook -nl
  2784. Xif test $? -ne 0 ; then fail; fi
  2785. X
  2786. X# probably OK
  2787. Xpass
  2788. END_OF_FILE
  2789. if test 1394 -ne `wc -c <'test/00/t0018a.sh'`; then
  2790.     echo shar: \"'test/00/t0018a.sh'\" unpacked with wrong size!
  2791. fi
  2792. # end of 'test/00/t0018a.sh'
  2793. fi
  2794. if test -f 'test/00/t0024a.sh' -a "${1}" != "-c" ; then 
  2795.   echo shar: Will not clobber existing file \"'test/00/t0024a.sh'\"
  2796. else
  2797. echo shar: Extracting \"'test/00/t0024a.sh'\" \(1445 characters\)
  2798. sed "s/^X//" >'test/00/t0024a.sh' <<'END_OF_FILE'
  2799. X#! /bin/sh
  2800. X#
  2801. X#    cook - file construction tool
  2802. X#    Copyright (C) 1990, 1991, 1992, 1993 Peter Miller.
  2803. X#    All rights reserved.
  2804. X#
  2805. X#    This program is free software; you can redistribute it and/or modify
  2806. X#    it under the terms of the GNU General Public License as published by
  2807. X#    the Free Software Foundation; either version 2 of the License, or
  2808. X#    (at your option) any later version.
  2809. X#
  2810. X#    This program is distributed in the hope that it will be useful,
  2811. X#    but WITHOUT ANY WARRANTY; without even the implied warranty of
  2812. X#    MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
  2813. X#    GNU General Public License for more details.
  2814. X#
  2815. X#    You should have received a copy of the GNU General Public License
  2816. X#    along with this program; if not, write to the Free Software
  2817. X#    Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.
  2818. X#
  2819. X# MANIFEST: test the "pathname" builtin function
  2820. X#
  2821. Xtmp=/tmp/$$
  2822. Xhere=`pwd`
  2823. X
  2824. Xfail()
  2825. X{
  2826. X    echo 'FAILED test of builtin function "pathname"' 1>&2
  2827. X    cd $here
  2828. X    rm -rf $tmp
  2829. X    exit 1
  2830. X}
  2831. Xpass()
  2832. X{
  2833. X    cd $here
  2834. X    rm -rf $tmp
  2835. X    exit 0
  2836. X}
  2837. Xtrap "fail" 1 2 3 15
  2838. X
  2839. Xmkdir $tmp
  2840. Xcd $tmp
  2841. X
  2842. Xcat > Howto.cook <<foobar
  2843. Xtest:
  2844. X{
  2845. X    if [not [in [pathname .] [pathname $tmp]]] then fail;
  2846. X    if [not [in [pathname x] [pathname $tmp/x]]] then fail;
  2847. X    if [not [in [pathname /] /]] then fail;
  2848. X    if [not [in [pathname /////usr/bin//////././//.///] /usr/bin]]
  2849. X        then fail;
  2850. X}
  2851. Xfoobar
  2852. Xif test $? -ne 0 ; then fail; fi
  2853. X
  2854. X$here/bin/cook -nl
  2855. Xif test $? -ne 0 ; then fail; fi
  2856. X
  2857. X# probably OK
  2858. Xpass
  2859. END_OF_FILE
  2860. if test 1445 -ne `wc -c <'test/00/t0024a.sh'`; then
  2861.     echo shar: \"'test/00/t0024a.sh'\" unpacked with wrong size!
  2862. fi
  2863. # end of 'test/00/t0024a.sh'
  2864. fi
  2865. if test -f 'test/00/t0027a.sh' -a "${1}" != "-c" ; then 
  2866.   echo shar: Will not clobber existing file \"'test/00/t0027a.sh'\"
  2867. else
  2868. echo shar: Extracting \"'test/00/t0027a.sh'\" \(1385 characters\)
  2869. sed "s/^X//" >'test/00/t0027a.sh' <<'END_OF_FILE'
  2870. X#! /bin/sh
  2871. X#
  2872. X#    cook - file construction tool
  2873. X#    Copyright (C) 1990, 1991, 1992, 1993 Peter Miller.
  2874. X#    All rights reserved.
  2875. X#
  2876. X#    This program is free software; you can redistribute it and/or modify
  2877. X#    it under the terms of the GNU General Public License as published by
  2878. X#    the Free Software Foundation; either version 2 of the License, or
  2879. X#    (at your option) any later version.
  2880. X#
  2881. X#    This program is distributed in the hope that it will be useful,
  2882. X#    but WITHOUT ANY WARRANTY; without even the implied warranty of
  2883. X#    MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
  2884. X#    GNU General Public License for more details.
  2885. X#
  2886. X#    You should have received a copy of the GNU General Public License
  2887. X#    along with this program; if not, write to the Free Software
  2888. X#    Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.
  2889. X#
  2890. X# MANIFEST: test the "stringset" builtin function
  2891. X#
  2892. Xtmp=/tmp/$$
  2893. Xhere=`pwd`
  2894. X
  2895. Xfail()
  2896. X{
  2897. X    echo 'FAILED test of builtin function "stringset"' 1>&2
  2898. X    cd $here
  2899. X    rm -rf $tmp
  2900. X    exit 1
  2901. X}
  2902. Xpass()
  2903. X{
  2904. X    cd $here
  2905. X    rm -rf $tmp
  2906. X    exit 0
  2907. X}
  2908. Xtrap "fail" 1 2 3 15
  2909. X
  2910. Xmkdir $tmp
  2911. Xcd $tmp
  2912. X
  2913. Xcat > Howto.cook <<foobar
  2914. Xtest:
  2915. X{
  2916. X    if [not [in [count [stringset a a b]] 2]] then fail;
  2917. X    if [not [in [count [stringset a - a b]] 0]] then fail;
  2918. X    if [not [in [count [stringset a "*" a b]] 1]] then fail;
  2919. X}
  2920. Xfoobar
  2921. Xif test $? -ne 0 ; then fail; fi
  2922. X
  2923. X$here/bin/cook -nl
  2924. Xif test $? -ne 0 ; then fail; fi
  2925. X
  2926. X# probably OK
  2927. Xpass
  2928. END_OF_FILE
  2929. if test 1385 -ne `wc -c <'test/00/t0027a.sh'`; then
  2930.     echo shar: \"'test/00/t0027a.sh'\" unpacked with wrong size!
  2931. fi
  2932. # end of 'test/00/t0027a.sh'
  2933. fi
  2934. if test -f 'test/00/t0030a.sh' -a "${1}" != "-c" ; then 
  2935.   echo shar: Will not clobber existing file \"'test/00/t0030a.sh'\"
  2936. else
  2937. echo shar: Extracting \"'test/00/t0030a.sh'\" \(1925 characters\)
  2938. sed "s/^X//" >'test/00/t0030a.sh' <<'END_OF_FILE'
  2939. X#! /bin/sh
  2940. X#
  2941. X#    cook - file construction tool
  2942. X#    Copyright (C) 1990, 1991, 1992, 1993 Peter Miller.
  2943. X#    All rights reserved.
  2944. X#
  2945. X#    This program is free software; you can redistribute it and/or modify
  2946. X#    it under the terms of the GNU General Public License as published by
  2947. X#    the Free Software Foundation; either version 2 of the License, or
  2948. X#    (at your option) any later version.
  2949. X#
  2950. X#    This program is distributed in the hope that it will be useful,
  2951. X#    but WITHOUT ANY WARRANTY; without even the implied warranty of
  2952. X#    MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
  2953. X#    GNU General Public License for more details.
  2954. X#
  2955. X#    You should have received a copy of the GNU General Public License
  2956. X#    along with this program; if not, write to the Free Software
  2957. X#    Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.
  2958. X#
  2959. X# MANIFEST: test the "-version" command line option
  2960. X#
  2961. Xtmp=/tmp/$$
  2962. Xhere=`pwd`
  2963. X
  2964. Xfail()
  2965. X{
  2966. X    echo 'FAILED test of the -VERSion command line option' 1>&2
  2967. X    cd $here
  2968. X    rm -rf $tmp
  2969. X    exit 1
  2970. X}
  2971. Xpass()
  2972. X{
  2973. X    cd $here
  2974. X    rm -rf $tmp
  2975. X    exit 0
  2976. X}
  2977. Xtrap "fail" 1 2 3 15
  2978. X
  2979. Xmkdir $tmp
  2980. Xcd $tmp
  2981. X
  2982. X$here/bin/cook -help > /dev/null
  2983. Xif test $? -ne 0 ; then fail; fi
  2984. X
  2985. X$here/bin/cook -vers > /dev/null
  2986. Xif test $? -ne 0 ; then fail; fi
  2987. X
  2988. X$here/bin/cook -vers r | cat
  2989. Xif test $? -ne 0 ; then fail; fi
  2990. X
  2991. X$here/bin/cook -vers w | cat
  2992. Xif test $? -ne 0 ; then fail; fi
  2993. X
  2994. X$here/bin/c_incl -help > /dev/null
  2995. Xif test $? -ne 0 ; then fail; fi
  2996. X
  2997. X$here/bin/c_incl -vers > /dev/null
  2998. Xif test $? -ne 0 ; then fail; fi
  2999. X
  3000. X$here/bin/c_incl -vers r > /dev/null
  3001. Xif test $? -ne 0 ; then fail; fi
  3002. X
  3003. X$here/bin/c_incl -vers w > /dev/null
  3004. Xif test $? -ne 0 ; then fail; fi
  3005. X
  3006. X$here/bin/find_libs -help > /dev/null
  3007. Xif test $? -ne 0 ; then fail; fi
  3008. X
  3009. X$here/bin/find_libs -vers > /dev/null
  3010. Xif test $? -ne 0 ; then fail; fi
  3011. X
  3012. X$here/bin/find_libs -vers r > /dev/null
  3013. Xif test $? -ne 0 ; then fail; fi
  3014. X
  3015. X$here/bin/find_libs -vers w > /dev/null
  3016. Xif test $? -ne 0 ; then fail; fi
  3017. X
  3018. X# probably OK
  3019. Xpass
  3020. END_OF_FILE
  3021. if test 1925 -ne `wc -c <'test/00/t0030a.sh'`; then
  3022.     echo shar: \"'test/00/t0030a.sh'\" unpacked with wrong size!
  3023. fi
  3024. # end of 'test/00/t0030a.sh'
  3025. fi
  3026. if test -f 'test/00/t0031a.sh' -a "${1}" != "-c" ; then 
  3027.   echo shar: Will not clobber existing file \"'test/00/t0031a.sh'\"
  3028. else
  3029. echo shar: Extracting \"'test/00/t0031a.sh'\" \(1621 characters\)
  3030. sed "s/^X//" >'test/00/t0031a.sh' <<'END_OF_FILE'
  3031. X#! /bin/sh
  3032. X#
  3033. X#    cook - file construction tool
  3034. X#    Copyright (C) 1990, 1991, 1992, 1993 Peter Miller.
  3035. X#    All rights reserved.
  3036. X#
  3037. X#    This program is free software; you can redistribute it and/or modify
  3038. X#    it under the terms of the GNU General Public License as published by
  3039. X#    the Free Software Foundation; either version 2 of the License, or
  3040. X#    (at your option) any later version.
  3041. X#
  3042. X#    This program is distributed in the hope that it will be useful,
  3043. X#    but WITHOUT ANY WARRANTY; without even the implied warranty of
  3044. X#    MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
  3045. X#    GNU General Public License for more details.
  3046. X#
  3047. X#    You should have received a copy of the GNU General Public License
  3048. X#    along with this program; if not, write to the Free Software
  3049. X#    Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.
  3050. X#
  3051. X# MANIFEST: test the os_stat_cache() function
  3052. X#
  3053. Xtmp=/tmp/$$
  3054. Xhere=`pwd`
  3055. X
  3056. Xfail()
  3057. X{
  3058. X    echo 'FAILED test of the os_stat_chache() function of cook' 1>&2
  3059. X    cd $here
  3060. X    rm -rf $tmp
  3061. X    exit 1
  3062. X}
  3063. Xpass()
  3064. X{
  3065. X    cd $here
  3066. X    rm -rf $tmp
  3067. X    exit 0
  3068. X}
  3069. Xtrap "fail" 1 2 3 15
  3070. X
  3071. Xmkdir $tmp
  3072. Xcd $tmp
  3073. X
  3074. Xmkdir a a/b a/b/c
  3075. Xcp /dev/null a/fubar
  3076. X
  3077. Xcat > Howto.cook <<foobar
  3078. Xtest: test1 test2 test3 test4 test5 test6 test7;
  3079. Xtest1: { if [not [exists Howto.cook]] then fail; }
  3080. Xtest2: { if [exists snot] then fail; }
  3081. Xtest3: { if [not [exists a/fubar]] then fail; }
  3082. Xtest4: { if [exists a/fubar/b/c] then fail; }
  3083. Xtest5: { if [not [exists a]] then fail; }
  3084. Xtest6: { if [not [exists a/b]] then fail; }
  3085. Xtest7: { if [not [exists a/b/c]] then fail; }
  3086. Xfoobar
  3087. Xif test $? -ne 0 ; then fail; fi
  3088. X
  3089. X$here/bin/cook -nl -tr
  3090. Xif test $? -ne 0 ; then fail; fi
  3091. X
  3092. X# probably OK
  3093. Xpass
  3094. END_OF_FILE
  3095. if test 1621 -ne `wc -c <'test/00/t0031a.sh'`; then
  3096.     echo shar: \"'test/00/t0031a.sh'\" unpacked with wrong size!
  3097. fi
  3098. # end of 'test/00/t0031a.sh'
  3099. fi
  3100. if test -f 'test/00/t0032a.sh' -a "${1}" != "-c" ; then 
  3101.   echo shar: Will not clobber existing file \"'test/00/t0032a.sh'\"
  3102. else
  3103. echo shar: Extracting \"'test/00/t0032a.sh'\" \(1545 characters\)
  3104. sed "s/^X//" >'test/00/t0032a.sh' <<'END_OF_FILE'
  3105. X#! /bin/sh
  3106. X#
  3107. X#    cook - file construction tool
  3108. X#    Copyright (C) 1990, 1991, 1992, 1993 Peter Miller.
  3109. X#    All rights reserved.
  3110. X#
  3111. X#    This program is free software; you can redistribute it and/or modify
  3112. X#    it under the terms of the GNU General Public License as published by
  3113. X#    the Free Software Foundation; either version 2 of the License, or
  3114. X#    (at your option) any later version.
  3115. X#
  3116. X#    This program is distributed in the hope that it will be useful,
  3117. X#    but WITHOUT ANY WARRANTY; without even the implied warranty of
  3118. X#    MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
  3119. X#    GNU General Public License for more details.
  3120. X#
  3121. X#    You should have received a copy of the GNU General Public License
  3122. X#    along with this program; if not, write to the Free Software
  3123. X#    Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.
  3124. X#
  3125. X# MANIFEST: test the "sort" builtin function
  3126. X#
  3127. Xtmp=/tmp/$$
  3128. Xhere=`pwd`
  3129. X
  3130. Xfail()
  3131. X{
  3132. X    echo 'FAILED test of the builtin function "sort"' 1>&2
  3133. X    cd $here
  3134. X    rm -rf $tmp
  3135. X    exit 1
  3136. X}
  3137. Xpass()
  3138. X{
  3139. X    cd $here
  3140. X    rm -rf $tmp
  3141. X    exit 0
  3142. X}
  3143. Xtrap "fail" 1 2 3 15
  3144. X
  3145. Xmkdir $tmp
  3146. Xcd $tmp
  3147. X
  3148. Xcat > Howto.cook <<foobar
  3149. Xtest:
  3150. X{
  3151. X    if [sort] then fail;
  3152. X    if [not [in [catenate [sort a]] a]] then fail;
  3153. X    if [not [in [catenate [sort a b]] ab]] then fail;
  3154. X    if [not [in [catenate [sort b a]] ab]] then fail;
  3155. X    if [not [in [catenate [sort a b c]] abc]] then fail;
  3156. X    if [not [in [catenate [sort c a b]] abc]] then fail;
  3157. X    if [not [in [catenate [sort b c a]] abc]] then fail;
  3158. X}
  3159. Xfoobar
  3160. Xif test $? -ne 0 ; then fail; fi
  3161. X
  3162. X$here/bin/cook -nl
  3163. Xif test $? -ne 0 ; then fail; fi
  3164. X
  3165. X# probably OK
  3166. Xpass
  3167. END_OF_FILE
  3168. if test 1545 -ne `wc -c <'test/00/t0032a.sh'`; then
  3169.     echo shar: \"'test/00/t0032a.sh'\" unpacked with wrong size!
  3170. fi
  3171. # end of 'test/00/t0032a.sh'
  3172. fi
  3173. if test -f 'test/00/t0034a.sh' -a "${1}" != "-c" ; then 
  3174.   echo shar: Will not clobber existing file \"'test/00/t0034a.sh'\"
  3175. else
  3176. echo shar: Extracting \"'test/00/t0034a.sh'\" \(1606 characters\)
  3177. sed "s/^X//" >'test/00/t0034a.sh' <<'END_OF_FILE'
  3178. X#! /bin/sh
  3179. X#
  3180. X#    cook - file construction tool
  3181. X#    Copyright (C) 1990, 1991, 1992, 1993 Peter Miller.
  3182. X#    All rights reserved.
  3183. X#
  3184. X#    This program is free software; you can redistribute it and/or modify
  3185. X#    it under the terms of the GNU General Public License as published by
  3186. X#    the Free Software Foundation; either version 2 of the License, or
  3187. X#    (at your option) any later version.
  3188. X#
  3189. X#    This program is distributed in the hope that it will be useful,
  3190. X#    but WITHOUT ANY WARRANTY; without even the implied warranty of
  3191. X#    MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
  3192. X#    GNU General Public License for more details.
  3193. X#
  3194. X#    You should have received a copy of the GNU General Public License
  3195. X#    along with this program; if not, write to the Free Software
  3196. X#    Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.
  3197. X#
  3198. X# MANIFEST: test the "%0" pattern replacement - it may be empty
  3199. X#
  3200. Xtmp=/tmp/$$
  3201. Xhere=`pwd`
  3202. X
  3203. Xfail()
  3204. X{
  3205. X    echo 'FAILED test of the "%0" pattern replacement' 1>&2
  3206. X    cd $here
  3207. X    rm -rf $tmp
  3208. X    exit 1
  3209. X}
  3210. Xpass()
  3211. X{
  3212. X    cd $here
  3213. X    rm -rf $tmp
  3214. X    exit 0
  3215. X}
  3216. Xtrap "fail" 1 2 3 15
  3217. X
  3218. Xmkdir $tmp
  3219. Xcd $tmp
  3220. X
  3221. Xmkdir a a/b a/b/c
  3222. Xif test $? -ne 0 ; then fail; fi
  3223. X
  3224. Xcat > a.c << 'foo'
  3225. Xvoid
  3226. Xmain()
  3227. X{
  3228. X    exit(0);
  3229. X}
  3230. Xfoo
  3231. Xif test $? -ne 0 ; then fail; fi
  3232. X
  3233. Xln a.c a/b.c
  3234. Xif test $? -ne 0 ; then fail; fi
  3235. X
  3236. Xln a.c a/b/c.c
  3237. Xif test $? -ne 0 ; then fail; fi
  3238. X
  3239. Xln a.c a/b/c/d.c
  3240. Xif test $? -ne 0 ; then fail; fi
  3241. X
  3242. Xcat > Howto.cook << 'foobar'
  3243. Xtest: a.o a/b.o a/b/c.o a/b/c/d.o;
  3244. X
  3245. X%0%1.o: %0%1.c
  3246. X{
  3247. X    cc -c %0%1.c;
  3248. X    if %0 then
  3249. X        mv %1.o %0%1.o;
  3250. X}
  3251. Xfoobar
  3252. Xif test $? -ne 0 ; then fail; fi
  3253. X
  3254. X$here/bin/cook -nl
  3255. Xif test $? -ne 0 ; then fail; fi
  3256. X
  3257. X# probably OK
  3258. Xpass
  3259. END_OF_FILE
  3260. if test 1606 -ne `wc -c <'test/00/t0034a.sh'`; then
  3261.     echo shar: \"'test/00/t0034a.sh'\" unpacked with wrong size!
  3262. fi
  3263. # end of 'test/00/t0034a.sh'
  3264. fi
  3265. if test -f 'test/00/t0037a.sh' -a "${1}" != "-c" ; then 
  3266.   echo shar: Will not clobber existing file \"'test/00/t0037a.sh'\"
  3267. else
  3268. echo shar: Extracting \"'test/00/t0037a.sh'\" \(1697 characters\)
  3269. sed "s/^X//" >'test/00/t0037a.sh' <<'END_OF_FILE'
  3270. X#! /bin/sh
  3271. X#
  3272. X#    cook - file construction tool
  3273. X#    Copyright (C) 1990, 1991, 1992, 1993 Peter Miller.
  3274. X#    All rights reserved.
  3275. X#
  3276. X#    This program is free software; you can redistribute it and/or modify
  3277. X#    it under the terms of the GNU General Public License as published by
  3278. X#    the Free Software Foundation; either version 2 of the License, or
  3279. X#    (at your option) any later version.
  3280. X#
  3281. X#    This program is distributed in the hope that it will be useful,
  3282. X#    but WITHOUT ANY WARRANTY; without even the implied warranty of
  3283. X#    MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
  3284. X#    GNU General Public License for more details.
  3285. X#
  3286. X#    You should have received a copy of the GNU General Public License
  3287. X#    along with this program; if not, write to the Free Software
  3288. X#    Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.
  3289. X#
  3290. X# MANIFEST: test the c_incl -no_cache option
  3291. X#
  3292. Xtmp=/tmp/$$
  3293. Xhere=`pwd`
  3294. X
  3295. Xfail()
  3296. X{
  3297. X    echo 'FAILED test of the c_incl -No_Cache option' 1>&2
  3298. X    cd $here
  3299. X    rm -rf $tmp
  3300. X    exit 1
  3301. X}
  3302. Xpass()
  3303. X{
  3304. X    cd $here
  3305. X    rm -rf $tmp
  3306. X    exit 0
  3307. X}
  3308. Xtrap "fail" 1 2 3 15
  3309. X
  3310. Xmkdir $tmp
  3311. Xcd $tmp
  3312. X
  3313. Xcat > main.c << 'foobar'
  3314. X#include <stdio.h>
  3315. X
  3316. Xvoid
  3317. Xmain()
  3318. X{
  3319. X    printf("Hello World!\n");
  3320. X    exit(0);
  3321. X}
  3322. Xfoobar
  3323. Xif test $? -ne 0 ; then fail; fi
  3324. X
  3325. X$here/bin/c_incl main.c > test.tmp
  3326. Xif test $? -ne 0 ; then fail; fi
  3327. X
  3328. Xgrep stdio test.tmp > test.out
  3329. Xif test $? -ne 0 ; then fail; fi
  3330. X
  3331. Xcat > test.ok << 'foobar'
  3332. X/usr/include/stdio.h
  3333. Xfoobar
  3334. Xif test $? -ne 0 ; then fail; fi
  3335. X
  3336. Xcmp test.ok test.out
  3337. Xif test $? -ne 0 ; then fail; fi
  3338. X
  3339. X$here/bin/c_incl -nc -ns main.c > test.out
  3340. Xif test $? -ne 0 ; then fail; fi
  3341. X
  3342. Xcat > test.ok << 'foobar'
  3343. Xfoobar
  3344. Xif test $? -ne 0 ; then fail; fi
  3345. X
  3346. Xcmp test.ok test.out
  3347. Xif test $? -ne 0 ; then fail; fi
  3348. X
  3349. X
  3350. X# probably OK
  3351. Xpass
  3352. END_OF_FILE
  3353. if test 1697 -ne `wc -c <'test/00/t0037a.sh'`; then
  3354.     echo shar: \"'test/00/t0037a.sh'\" unpacked with wrong size!
  3355. fi
  3356. # end of 'test/00/t0037a.sh'
  3357. fi
  3358. if test -f 'test/00/t0039a.sh' -a "${1}" != "-c" ; then 
  3359.   echo shar: Will not clobber existing file \"'test/00/t0039a.sh'\"
  3360. else
  3361. echo shar: Extracting \"'test/00/t0039a.sh'\" \(1435 characters\)
  3362. sed "s/^X//" >'test/00/t0039a.sh' <<'END_OF_FILE'
  3363. X#! /bin/sh
  3364. X#
  3365. X#    cook - file construction tool
  3366. X#    Copyright (C) 1990, 1991, 1992, 1993 Peter Miller.
  3367. X#    All rights reserved.
  3368. X#
  3369. X#    This program is free software; you can redistribute it and/or modify
  3370. X#    it under the terms of the GNU General Public License as published by
  3371. X#    the Free Software Foundation; either version 2 of the License, or
  3372. X#    (at your option) any later version.
  3373. X#
  3374. X#    This program is distributed in the hope that it will be useful,
  3375. X#    but WITHOUT ANY WARRANTY; without even the implied warranty of
  3376. X#    MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
  3377. X#    GNU General Public License for more details.
  3378. X#
  3379. X#    You should have received a copy of the GNU General Public License
  3380. X#    along with this program; if not, write to the Free Software
  3381. X#    Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.
  3382. X#
  3383. X# MANIFEST: test the c_incl -Roff option
  3384. X#
  3385. Xtmp=/tmp/$$
  3386. Xhere=`pwd`
  3387. X
  3388. Xfail()
  3389. X{
  3390. X    echo 'FAILED test of c_incl -Roff option' 1>&2
  3391. X    cd $here
  3392. X    rm -rf $tmp
  3393. X    exit 1
  3394. X}
  3395. Xpass()
  3396. X{
  3397. X    cd $here
  3398. X    rm -rf $tmp
  3399. X    exit 0
  3400. X}
  3401. Xtrap "fail" 1 2 3 15
  3402. X
  3403. Xmkdir $tmp
  3404. Xcd $tmp
  3405. X
  3406. Xcat > test.in << 'foobar'
  3407. Xone
  3408. X.so test2.in
  3409. Xthree
  3410. Xfoobar
  3411. Xif test $? -ne 0 ; then fail; fi
  3412. X
  3413. Xcat > test2.in << 'foobar'
  3414. Xtwo
  3415. Xfoobar
  3416. Xif test $? -ne 0 ; then fail; fi
  3417. X
  3418. X$here/bin/c_incl -r test.in > test.out
  3419. Xif test $? -ne 0 ; then fail; fi
  3420. X
  3421. Xcat > test.ok << 'foobar'
  3422. Xtest2.in
  3423. Xfoobar
  3424. Xif test $? -ne 0 ; then fail; fi
  3425. X
  3426. Xcmp test.ok test.out
  3427. Xif test $? -ne 0 ; then fail; fi
  3428. X
  3429. X# probably OK
  3430. Xpass
  3431. END_OF_FILE
  3432. if test 1435 -ne `wc -c <'test/00/t0039a.sh'`; then
  3433.     echo shar: \"'test/00/t0039a.sh'\" unpacked with wrong size!
  3434. fi
  3435. # end of 'test/00/t0039a.sh'
  3436. fi
  3437. if test -f 'test/00/t0040a.sh' -a "${1}" != "-c" ; then 
  3438.   echo shar: Will not clobber existing file \"'test/00/t0040a.sh'\"
  3439. else
  3440. echo shar: Extracting \"'test/00/t0040a.sh'\" \(1503 characters\)
  3441. sed "s/^X//" >'test/00/t0040a.sh' <<'END_OF_FILE'
  3442. X#! /bin/sh
  3443. X#
  3444. X#    cook - file construction tool
  3445. X#    Copyright (C) 1990, 1991, 1992, 1993 Peter Miller.
  3446. X#    All rights reserved.
  3447. X#
  3448. X#    This program is free software; you can redistribute it and/or modify
  3449. X#    it under the terms of the GNU General Public License as published by
  3450. X#    the Free Software Foundation; either version 2 of the License, or
  3451. X#    (at your option) any later version.
  3452. X#
  3453. X#    This program is distributed in the hope that it will be useful,
  3454. X#    but WITHOUT ANY WARRANTY; without even the implied warranty of
  3455. X#    MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
  3456. X#    GNU General Public License for more details.
  3457. X#
  3458. X#    You should have received a copy of the GNU General Public License
  3459. X#    along with this program; if not, write to the Free Software
  3460. X#    Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.
  3461. X#
  3462. X# MANIFEST: test the cooktime program
  3463. X#
  3464. Xtmp=/tmp/$$
  3465. Xhere=`pwd`
  3466. X
  3467. Xfail()
  3468. X{
  3469. X    echo 'FAILED test of the cooktime program' 1>&2
  3470. X    cd $here
  3471. X    rm -rf $tmp
  3472. X    exit 1
  3473. X}
  3474. Xpass()
  3475. X{
  3476. X    cd $here
  3477. X    rm -rf $tmp
  3478. X    exit 0
  3479. X}
  3480. Xtrap "fail" 1 2 3 15
  3481. X
  3482. Xmkdir $tmp
  3483. Xcd $tmp
  3484. X
  3485. XPAGER=cat
  3486. Xexport PAGER
  3487. X
  3488. Xcp /dev/null victim
  3489. Xif test $? -ne 0 ; then fail; fi
  3490. X
  3491. X$here/bin/cooktime -help > /dev/null
  3492. Xif test $? -ne 0 ; then fail; fi
  3493. X
  3494. X$here/bin/cooktime -version > /dev/null
  3495. Xif test $? -ne 0 ; then fail; fi
  3496. X
  3497. X$here/bin/cooktime victim -r
  3498. Xif test $? -ne 0 ; then fail; fi
  3499. X
  3500. X$here/bin/cooktime victim -m 2-jan-70 -r
  3501. Xif test $? -ne 0 ; then fail; fi
  3502. X
  3503. X$here/bin/cooktime victim -a 8-jan-75 -r
  3504. Xif test $? -ne 0 ; then fail; fi
  3505. X
  3506. X# probably OK
  3507. Xpass
  3508. END_OF_FILE
  3509. if test 1503 -ne `wc -c <'test/00/t0040a.sh'`; then
  3510.     echo shar: \"'test/00/t0040a.sh'\" unpacked with wrong size!
  3511. fi
  3512. # end of 'test/00/t0040a.sh'
  3513. fi
  3514. echo shar: End of archive 2 \(of 11\).
  3515. cp /dev/null ark2isdone
  3516. MISSING=""
  3517. for I in 1 2 3 4 5 6 7 8 9 10 11 ; do
  3518.     if test ! -f ark${I}isdone ; then
  3519.     MISSING="${MISSING} ${I}"
  3520.     fi
  3521. done
  3522. if test "${MISSING}" = "" ; then
  3523.     echo You have unpacked all 11 archives.
  3524.     rm -f ark[1-9]isdone ark[1-9][0-9]isdone
  3525. else
  3526.     echo You still need to unpack the following archives:
  3527.     echo "        " ${MISSING}
  3528. fi
  3529. ##  End of shell archive.
  3530. exit 0
  3531.