home *** CD-ROM | disk | FTP | other *** search
/ Usenet 1994 January / usenetsourcesnewsgroupsinfomagicjanuary1994.iso / sources / unix / volume27 / aegis-2.1 / part03 < prev    next >
Encoding:
Text File  |  1993-09-24  |  160.0 KB  |  5,891 lines

  1. Newsgroups: comp.sources.unix
  2. From: pmiller@bmr.gov.au (Peter Miller)
  3. Subject: v27i038: aegis - project change supervisor (V2.1), Part03/19
  4. References: <1.748951883.12788@gw.home.vix.com>
  5. Sender: unix-sources-moderator@gw.home.vix.com
  6. Approved: vixie@gw.home.vix.com
  7.  
  8. Submitted-By: pmiller@bmr.gov.au (Peter Miller)
  9. Posting-Number: Volume 27, Issue 38
  10. Archive-Name: aegis-2.1/part03
  11.  
  12. #! /bin/sh
  13. # This is a shell archive.  Remove anything before this line, then unpack
  14. # it by saving it into a file and typing "sh file".  To overwrite existing
  15. # files, type "sh file -c".  You can also feed this as standard input via
  16. # unshar, or by typing "sh <file", e.g..  If this archive is complete, you
  17. # will see the following message at the end:
  18. #        "End of archive 3 (of 19)."
  19. # Contents:  aegis/arglex2.h aegis/common.def aegis/dir.c aegis/file.c
  20. #   aegis/glue.h aegis/io.c aegis/os.h aegis/user.h aux/patches.sh
  21. #   common/mem.c doc/c1.0.so doc/c1.2.so doc/c1.4.so doc/c2.0.so
  22. #   doc/c3.0.so doc/c3.3.so doc/c7.5.so doc/c8.1.so doc/c8.2.so
  23. #   fmtgen/type.h fmtgen/type_integ.c fmtgen/type_ref.c
  24. #   fmtgen/type_strin.c lib/aegis.icon lib/aegis.mask lib/cshrc
  25. #   lib/profile man1/aeb.1 man1/aecp.1 man1/aecpu.1 man1/aed.1
  26. #   man1/aedb.1 man1/aede.1 man1/aeib.1 man1/aeif.1 man1/aeip.1
  27. #   man1/ael.1 man1/aemv.1 man1/aenc.1 man1/aenf.1 man1/aenfu.1
  28. #   man1/aenpr.1 man1/aent.1 man1/aerf.1 man1/aet.1 man5/aecattr.so
  29. #   man5/aegis.5 man5/aeuconf.5 test/00/t0001a.sh test/00/t0013a.sh
  30. #   test/00/t0014a.sh
  31. # Wrapped by vixie@gw.home.vix.com on Sat Sep 25 03:00:27 1993
  32. PATH=/bin:/usr/bin:/usr/ucb ; export PATH
  33. if test -f 'aegis/arglex2.h' -a "${1}" != "-c" ; then 
  34.   echo shar: Will not clobber existing file \"'aegis/arglex2.h'\"
  35. else
  36. echo shar: Extracting \"'aegis/arglex2.h'\" \(2782 characters\)
  37. sed "s/^X//" >'aegis/arglex2.h' <<'END_OF_FILE'
  38. X/*
  39. X *    aegis - project change supervisor
  40. X *    Copyright (C) 1991, 1992, 1993 Peter Miller.
  41. X *    All rights reserved.
  42. X *
  43. X *    This program is free software; you can redistribute it and/or modify
  44. X *    it under the terms of the GNU General Public License as published by
  45. X *    the Free Software Foundation; either version 2 of the License, or
  46. X *    (at your option) any later version.
  47. X *
  48. X *    This program is distributed in the hope that it will be useful,
  49. X *    but WITHOUT ANY WARRANTY; without even the implied warranty of
  50. X *    MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
  51. X *    GNU General Public License for more details.
  52. X *
  53. X *    You should have received a copy of the GNU General Public License
  54. X *    along with this program; if not, write to the Free Software
  55. X *    Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.
  56. X *
  57. X * MANIFEST: definitions of command line tokens
  58. X */
  59. X
  60. X#ifndef ARGLEX2_H
  61. X#define ARGLEX2_H
  62. X
  63. X#include <arglex.h>
  64. X
  65. Xenum
  66. X{
  67. X    arglex_token_anticipate,
  68. X    arglex_token_automatic,
  69. X    arglex_token_baseline,
  70. X    arglex_token_build,
  71. X    arglex_token_change,
  72. X    arglex_token_change_attributes,
  73. X    arglex_token_change_directory,
  74. X    arglex_token_copy_file,
  75. X    arglex_token_copy_file_undo,
  76. X    arglex_token_defaults,
  77. X    arglex_token_delta,
  78. X    arglex_token_develop_begin,
  79. X    arglex_token_develop_begin_undo,
  80. X    arglex_token_develop_end,
  81. X    arglex_token_develop_end_undo,
  82. X    arglex_token_development_directory,
  83. X    arglex_token_difference,
  84. X    arglex_token_directory,
  85. X    arglex_token_edit,
  86. X    arglex_token_force,
  87. X    arglex_token_independent,
  88. X    arglex_token_integrate_begin,
  89. X    arglex_token_integrate_begin_undo,
  90. X    arglex_token_integrate_fail,
  91. X    arglex_token_integrate_pass,
  92. X    arglex_token_keep,
  93. X    arglex_token_list,
  94. X    arglex_token_log,
  95. X    arglex_token_major,
  96. X    arglex_token_manual,
  97. X    arglex_token_minimum,
  98. X    arglex_token_minor,
  99. X    arglex_token_move_file,
  100. X    arglex_token_new_administrator,
  101. X    arglex_token_new_change,
  102. X    arglex_token_new_change_undo,
  103. X    arglex_token_new_developer,
  104. X    arglex_token_new_file,
  105. X    arglex_token_new_file_undo,
  106. X    arglex_token_new_integrator,
  107. X    arglex_token_new_project,
  108. X    arglex_token_new_release,
  109. X    arglex_token_new_reviewer,
  110. X    arglex_token_new_test,
  111. X    arglex_token_new_test_undo,
  112. X    arglex_token_nolog,
  113. X    arglex_token_overwriting,
  114. X    arglex_token_output,
  115. X    arglex_token_page_length,
  116. X    arglex_token_page_width,
  117. X    arglex_token_project,
  118. X    arglex_token_project_attributes,
  119. X    arglex_token_regression,
  120. X    arglex_token_remove_administrator,
  121. X    arglex_token_remove_developer,
  122. X    arglex_token_remove_file,
  123. X    arglex_token_remove_file_undo,
  124. X    arglex_token_remove_integrator,
  125. X    arglex_token_remove_project,
  126. X    arglex_token_remove_reviewer,
  127. X    arglex_token_review_fail,
  128. X    arglex_token_review_pass,
  129. X    arglex_token_review_pass_undo,
  130. X    arglex_token_terse,
  131. X    arglex_token_test,
  132. X    arglex_token_unformatted,
  133. X    arglex_token_verbose,
  134. X    arglex_token_library
  135. X};
  136. X
  137. X#endif /* ARGLEX2_H */
  138. END_OF_FILE
  139. if test 2782 -ne `wc -c <'aegis/arglex2.h'`; then
  140.     echo shar: \"'aegis/arglex2.h'\" unpacked with wrong size!
  141. fi
  142. # end of 'aegis/arglex2.h'
  143. fi
  144. if test -f 'aegis/common.def' -a "${1}" != "-c" ; then 
  145.   echo shar: Will not clobber existing file \"'aegis/common.def'\"
  146. else
  147. echo shar: Extracting \"'aegis/common.def'\" \(2299 characters\)
  148. sed "s/^X//" >'aegis/common.def' <<'END_OF_FILE'
  149. X/*    
  150. X *    aegis - project change supervisor
  151. X *    Copyright (C) 1991, 1992, 1993 Peter Miller.
  152. X *    All rights reserved.
  153. X *    
  154. X *    This program is free software; you can redistribute it and/or modify
  155. X *    it under the terms of the GNU General Public License as published by
  156. X *    the Free Software Foundation; either version 2 of the License, or
  157. X *    (at your option) any later version.
  158. X *    
  159. X *    This program is distributed in the hope that it will be useful,
  160. X *    but WITHOUT ANY WARRANTY; without even the implied warranty of
  161. X *    MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
  162. X *    GNU General Public License for more details.
  163. X *    
  164. X *    You should have received a copy of the GNU General Public License
  165. X *    along with this program; if not, write to the Free Software
  166. X *    Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.
  167. X *
  168. X * MANIFEST: enumerations common to many aegis file contents
  169. X *
  170. X * If you change this file, don't forget to change
  171. X *    man5/aecattr.so
  172. X *    man5/aepstate.5
  173. X */
  174. X
  175. Xtype boolean = (false, true);
  176. Xtype change_cause =
  177. X(
  178. X    /*
  179. X     * The change was created in response to
  180. X         * a bug report
  181. X     * from outside the development team.
  182. X     * This repairs existing functionality.
  183. X     */
  184. X    external_bug,
  185. X
  186. X    /*
  187. X     * The change was created in response to
  188. X     * an enhancement request
  189. X     * from outside the development team.
  190. X     * This adds new functionality.
  191. X     */
  192. X    external_enhancement,
  193. X
  194. X    /*
  195. X     * The change was created in response to
  196. X     * an improvement request
  197. X     * from outside the development team.
  198. X     * This improves existing functionality.
  199. X     */
  200. X    external_improvement,
  201. X
  202. X    /*
  203. X     * The change was created in response to
  204. X     * a bug report
  205. X     * from inside the development team.
  206. X     * This repairs existing functionality.
  207. X     */
  208. X    internal_bug,
  209. X
  210. X    /*
  211. X     * The change was created in response to
  212. X     * an enhancement request
  213. X     * from inside the development team.
  214. X     * This adds new functionality.
  215. X     */
  216. X    internal_enhancement,
  217. X
  218. X    /*
  219. X     * The change was created in response to
  220. X     * an improvement request
  221. X     * from inside the development team.
  222. X     * This improves existing functionality.
  223. X     */
  224. X    internal_improvement,
  225. X
  226. X    /*
  227. X     * This cause is where you have a fix to fix a fix;
  228. X     * tracking these is an interesting quality metric.
  229. X     */
  230. X    chain
  231. X);
  232. Xtype file_action = (create, modify, remove);
  233. Xtype file_usage = (source, build, test, manual_test);
  234. END_OF_FILE
  235. if test 2299 -ne `wc -c <'aegis/common.def'`; then
  236.     echo shar: \"'aegis/common.def'\" unpacked with wrong size!
  237. fi
  238. # end of 'aegis/common.def'
  239. fi
  240. if test -f 'aegis/dir.c' -a "${1}" != "-c" ; then 
  241.   echo shar: Will not clobber existing file \"'aegis/dir.c'\"
  242. else
  243. echo shar: Extracting \"'aegis/dir.c'\" \(2341 characters\)
  244. sed "s/^X//" >'aegis/dir.c' <<'END_OF_FILE'
  245. X/*
  246. X *    aegis - project change supervisor
  247. X *    Copyright (C) 1991, 1992, 1993 Peter Miller.
  248. X *    All rights reserved.
  249. X *
  250. X *    This program is free software; you can redistribute it and/or modify
  251. X *    it under the terms of the GNU General Public License as published by
  252. X *    the Free Software Foundation; either version 2 of the License, or
  253. X *    (at your option) any later version.
  254. X *
  255. X *    This program is distributed in the hope that it will be useful,
  256. X *    but WITHOUT ANY WARRANTY; without even the implied warranty of
  257. X *    MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
  258. X *    GNU General Public License for more details.
  259. X *
  260. X *    You should have received a copy of the GNU General Public License
  261. X *    along with this program; if not, write to the Free Software
  262. X *    Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.
  263. X *
  264. X * MANIFEST: functions to walk directory trees
  265. X */
  266. X
  267. X#include <sys/types.h>
  268. X#include <sys/stat.h>
  269. X
  270. X#include <dir.h>
  271. X#include <error.h>
  272. X#include <glue.h>
  273. X#include <trace.h>
  274. X#include <word.h>
  275. X
  276. X
  277. Xvoid
  278. Xdir_walk(path, callback, arg)
  279. X    string_ty    *path;
  280. X    dir_walk_callback_ty callback;
  281. X    void        *arg;
  282. X{
  283. X    wlist        wl;
  284. X    struct stat    st;
  285. X    int        j;
  286. X    string_ty    *s;
  287. X    char        *cp;
  288. X    char        *data;
  289. X    long        data_len;
  290. X
  291. X    trace(("dir_walk(path = %08lX, callback = %08lX, \
  292. Xarg = %08lX)\n{\n"/*}*/, path, callback, arg));
  293. X    trace_string(path->str_text);
  294. X#ifdef S_IFLNK
  295. X    if (glue_lstat(path->str_text, &st))
  296. X        nfatal("lstat(\"%s\")", path->str_text);
  297. X#else
  298. X    if (glue_stat(path->str_text, &st))
  299. X        nfatal("stat(\"%s\")", path->str_text);
  300. X#endif
  301. X    switch (st.st_mode & S_IFMT)
  302. X    {
  303. X    case S_IFDIR:
  304. X        callback(arg, dir_walk_dir_before, path, &st);
  305. X        wl_zero(&wl);
  306. X        if (glue_read_whole_dir(path->str_text, &data, &data_len))
  307. X            nfatal("read \"%s\" directory", path->str_text);
  308. X        cp = data;
  309. X        while (cp < data + data_len)
  310. X        {
  311. X            s = str_from_c(cp);
  312. X            cp += s->str_length + 1;
  313. X            wl_append(&wl, s);
  314. X            str_free(s);
  315. X        }
  316. X        for (j = 0; j < wl.wl_nwords; ++j)
  317. X        {
  318. X            s = str_format("%S/%S", path, wl.wl_word[j]);
  319. X            dir_walk(s, callback, arg);
  320. X        }
  321. X        wl_free(&wl);
  322. X        callback(arg, dir_walk_dir_after, path, &st);
  323. X        break;
  324. X
  325. X    case S_IFREG:
  326. X        callback(arg, dir_walk_file, path, &st);
  327. X        break;
  328. X
  329. X#ifdef S_IFLNK
  330. X    case S_IFLNK:
  331. X        callback(arg, dir_walk_symlink, path, &st);
  332. X        break;
  333. X#endif
  334. X
  335. X    default:
  336. X        callback(arg, dir_walk_special, path, &st);
  337. X        break;
  338. X    }
  339. X    trace((/*{*/"}\n"));
  340. X}
  341. END_OF_FILE
  342. if test 2341 -ne `wc -c <'aegis/dir.c'`; then
  343.     echo shar: \"'aegis/dir.c'\" unpacked with wrong size!
  344. fi
  345. # end of 'aegis/dir.c'
  346. fi
  347. if test -f 'aegis/file.c' -a "${1}" != "-c" ; then 
  348.   echo shar: Will not clobber existing file \"'aegis/file.c'\"
  349. else
  350. echo shar: Extracting \"'aegis/file.c'\" \(3362 characters\)
  351. sed "s/^X//" >'aegis/file.c' <<'END_OF_FILE'
  352. X/*
  353. X *    aegis - project change supervisor
  354. X *    Copyright (C) 1991, 1992, 1993 Peter Miller.
  355. X *    All rights reserved.
  356. X *
  357. X *    This program is free software; you can redistribute it and/or modify
  358. X *    it under the terms of the GNU General Public License as published by
  359. X *    the Free Software Foundation; either version 2 of the License, or
  360. X *    (at your option) any later version.
  361. X *
  362. X *    This program is distributed in the hope that it will be useful,
  363. X *    but WITHOUT ANY WARRANTY; without even the implied warranty of
  364. X *    MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
  365. X *    GNU General Public License for more details.
  366. X *
  367. X *    You should have received a copy of the GNU General Public License
  368. X *    along with this program; if not, write to the Free Software
  369. X *    Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.
  370. X *
  371. X * MANIFEST: functions for pushing files around
  372. X */
  373. X
  374. X#include <stdio.h>
  375. X#include <ctype.h>
  376. X#include <errno.h>
  377. X
  378. X#include <file.h>
  379. X#include <error.h>
  380. X#include <glue.h>
  381. X#include <mem.h>
  382. X#include <os.h>
  383. X#include <trace.h>
  384. X
  385. X
  386. X/*
  387. X * NAME
  388. X *    copy_whole_file
  389. X *
  390. X * SYNOPSIS
  391. X *    void copy_whole_file(string_ty *from, string_ty *to, int cmt);
  392. X *
  393. X * DESCRIPTION
  394. X *    The copy_whole_file function is used to
  395. X *    copy a file from one place to another.
  396. X *
  397. X *    The time-last-modified is preserved, but not the permissions.
  398. X *    Permissions will be 0666 and modified by the active umask.
  399. X *
  400. X * ARGUMENTS
  401. X *    from    - source path
  402. X *    to    - destination path
  403. X *    cmt    - copy modify time of file?
  404. X *
  405. X * CAVEAT
  406. X *    Assumes that the user has already been set,
  407. X *    uid, gid and umask.
  408. X */
  409. X
  410. Xvoid
  411. Xcopy_whole_file(from, to, cmt)
  412. X    string_ty    *from;
  413. X    string_ty    *to;
  414. X    int        cmt;
  415. X{
  416. X    trace(("copy_whole_file(from = %08lX, to = %08lX)\n{\n"/*}*/, from, to));
  417. X    os_become_must_be_active();
  418. X    trace_string(from->str_text);
  419. X    trace_string(to->str_text);
  420. X    if (to->str_length)
  421. X    {
  422. X        if (glue_copyfile(from->str_text, to->str_text))
  423. X        {
  424. X            nfatal
  425. X            (
  426. X                "cp \"%s\" \"%s\"",
  427. X                from->str_text,
  428. X                to->str_text
  429. X            );
  430. X        }
  431. X    }
  432. X    else
  433. X    {
  434. X        if (glue_catfile(from->str_text))
  435. X            nfatal("cat \"%s\"", from->str_text);
  436. X    }
  437. X
  438. X    /*
  439. X     * copy last-time-modified of the file
  440. X     */
  441. X    if (cmt && to->str_length)
  442. X    {
  443. X        time_t        mtime;
  444. X
  445. X        mtime = os_mtime(from);
  446. X        os_mtime_set(to, mtime);
  447. X    }
  448. X    trace((/*{*/"}\n"));
  449. X}
  450. X
  451. X
  452. X/*
  453. X * NAME
  454. X *    read_whole_file
  455. X *
  456. X * SYNOPSIS
  457. X *    string_ty *read_whole_file(char *path);
  458. X *
  459. X * DESCRIPTION
  460. X *    The read_whole_file function is used to
  461. X *    read a file into a string.  The file is assumed to be a text file.
  462. X *
  463. X * ARGUMENTS
  464. X *    path    - pathname of file to be read
  465. X *
  466. X * RETURNS
  467. X *    Pointer to string in dynamic memory containing text of file.
  468. X *    Any trailing white space will have been removed.
  469. X *
  470. X * CAVEAT
  471. X *    Assumes the user has already been set.
  472. X */
  473. X
  474. Xstring_ty *
  475. Xread_whole_file(fn)
  476. X    char        *fn;
  477. X{
  478. X    size_t        length_max;
  479. X    size_t        length;
  480. X    char        *text;
  481. X    string_ty    *s;
  482. X    int        c;
  483. X    FILE        *fp;
  484. X
  485. X    os_become_must_be_active();
  486. X    length_max = 1000;
  487. X    length = 0;
  488. X    text = mem_alloc(length_max);
  489. X    fp = glue_fopen(fn, "r");
  490. X    if (!fp)
  491. X        nfatal("open(\"%s\")", fn);
  492. X    while ((c = glue_fgetc(fp)) != EOF)
  493. X    {
  494. X        if (length >= length_max)
  495. X        {
  496. X            length_max *= 2;
  497. X            mem_change_size(&text, length_max);
  498. X        }
  499. X        text[length++] = c;
  500. X    }
  501. X    if (glue_ferror(fp))
  502. X        nfatal("read(\"%s\")", fn);
  503. X    while (length > 0 && isspace(text[length - 1]))
  504. X        --length;
  505. X    glue_fclose(fp);
  506. X    s = str_n_from_c(text, length);
  507. X    mem_free(text);
  508. X    return s;
  509. X}
  510. END_OF_FILE
  511. if test 3362 -ne `wc -c <'aegis/file.c'`; then
  512.     echo shar: \"'aegis/file.c'\" unpacked with wrong size!
  513. fi
  514. # end of 'aegis/file.c'
  515. fi
  516. if test -f 'aegis/glue.h' -a "${1}" != "-c" ; then 
  517.   echo shar: Will not clobber existing file \"'aegis/glue.h'\"
  518. else
  519. echo shar: Extracting \"'aegis/glue.h'\" \(3218 characters\)
  520. sed "s/^X//" >'aegis/glue.h' <<'END_OF_FILE'
  521. X/*
  522. X *    aegis - project change supervisor
  523. X *    Copyright (C) 1993 Peter Miller.
  524. X *    All rights reserved.
  525. X *
  526. X *    This program is free software; you can redistribute it and/or modify
  527. X *    it under the terms of the GNU General Public License as published by
  528. X *    the Free Software Foundation; either version 2 of the License, or
  529. X *    (at your option) any later version.
  530. X *
  531. X *    This program is distributed in the hope that it will be useful,
  532. X *    but WITHOUT ANY WARRANTY; without even the implied warranty of
  533. X *    MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
  534. X *    GNU General Public License for more details.
  535. X *
  536. X *    You should have received a copy of the GNU General Public License
  537. X *    along with this program; if not, write to the Free Software
  538. X *    Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.
  539. X *
  540. X * MANIFEST: interface definition for aegis/glue.c
  541. X */
  542. X
  543. X#ifndef AEGIS_GLUE_H
  544. X#define AEGIS_GLUE_H
  545. X
  546. X#include <stdio.h>
  547. X
  548. X#include <main.h>
  549. X#include <conf.h>
  550. X
  551. Xstruct stat;
  552. Xstruct utimbuf;
  553. Xstruct flock;
  554. X
  555. Xint copyfile _((char *src, char *dst));
  556. Xint catfile _((char *path));
  557. Xint read_whole_dir _((char *path, char **data, long *datalen));
  558. X
  559. X#ifndef CONF_NO_seteuid
  560. X
  561. X/*
  562. X * seteuid works
  563. X */
  564. X#define    glue_access    access
  565. X#define    glue_catfile    catfile
  566. X#define    glue_chmod    chmod
  567. X#define    glue_chown    chown
  568. X#define    glue_close    close
  569. X#define    glue_creat    creat
  570. X#define    glue_copyfile    copyfile
  571. X#define    glue_fclose    fclose
  572. X#define    glue_fcntl    fcntl
  573. X#define    glue_ferror    ferror
  574. X#define    glue_fflush    fflush
  575. X#define    glue_fgetc    getc
  576. X#define    glue_fopen    fopen
  577. X#define    glue_fputc    putc
  578. X#define    glue_getcwd    getcwd
  579. X#define    glue_link    link
  580. X#define    glue_lstat    lstat
  581. X#define    glue_mkdir    mkdir
  582. X#define    glue_open    open
  583. X#define    glue_readlink    readlink
  584. X#define    glue_read_whole_dir    read_whole_dir
  585. X#define    glue_rename    rename
  586. X#define    glue_rmdir    rmdir
  587. X#define    glue_stat    stat
  588. X#define    glue_ungetc    ungetc
  589. X#define    glue_unlink    unlink
  590. X#define    glue_utime    utime
  591. X#define    glue_write    write
  592. X
  593. X#else
  594. X
  595. X/*
  596. X * no seteuid call, or doesn't work correctly
  597. X */
  598. Xint glue_access _((char *path, int mode));
  599. Xint glue_catfile _((char *path));
  600. Xint glue_chmod _((char *path, int mode));
  601. Xint glue_chown _((char *path, int uid, int gid));
  602. Xint glue_close _((int fd));
  603. Xint glue_creat _((char *path, int mode));
  604. Xint glue_copyfile _((char *src, char *dst));
  605. Xint glue_fclose _((FILE *));
  606. Xint glue_fcntl _((int fd, int cmd, struct flock *));
  607. Xint glue_ferror _((FILE *));
  608. Xint glue_fflush _((FILE *));
  609. Xint glue_fgetc _((FILE *));
  610. XFILE *glue_fopen _((char *path, char *mode));
  611. Xint glue_fputc _((int, FILE *));
  612. Xchar *glue_getcwd _((char *buf, int max));
  613. Xint glue_link _((char *p1, char *p2));
  614. Xint glue_lstat _((char *path, struct stat *st));
  615. Xint glue_mkdir _((char *path, int mode));
  616. Xint glue_open _((char *path, int mode, int perm));
  617. Xint glue_readlink _((char *path, char *buf, int max));
  618. Xint glue_read_whole_dir _((char *path, char **data, long *datalen));
  619. Xint glue_rename _((char *p1, char *p2));
  620. Xint glue_rmdir _((char *path));
  621. Xint glue_stat _((char *path, struct stat *st));
  622. Xint glue_ungetc _((int, FILE *));
  623. Xint glue_unlink _((char *path));
  624. Xint glue_utime _((char *path, struct utimbuf *));
  625. Xint glue_write _((int fd, char *data, long len));
  626. X
  627. X#endif /* seteuid alternatives */
  628. X
  629. X#endif /* AEGIS_GLUE_H */
  630. END_OF_FILE
  631. if test 3218 -ne `wc -c <'aegis/glue.h'`; then
  632.     echo shar: \"'aegis/glue.h'\" unpacked with wrong size!
  633. fi
  634. # end of 'aegis/glue.h'
  635. fi
  636. if test -f 'aegis/io.c' -a "${1}" != "-c" ; then 
  637.   echo shar: Will not clobber existing file \"'aegis/io.c'\"
  638. else
  639. echo shar: Extracting \"'aegis/io.c'\" \(3293 characters\)
  640. sed "s/^X//" >'aegis/io.c' <<'END_OF_FILE'
  641. X/*
  642. X *    aegis - project change supervisor
  643. X *    Copyright (C) 1991, 1992, 1993 Peter Miller.
  644. X *    All rights reserved.
  645. X *
  646. X *    This program is free software; you can redistribute it and/or modify
  647. X *    it under the terms of the GNU General Public License as published by
  648. X *    the Free Software Foundation; either version 2 of the License, or
  649. X *    (at your option) any later version.
  650. X *
  651. X *    This program is distributed in the hope that it will be useful,
  652. X *    but WITHOUT ANY WARRANTY; without even the implied warranty of
  653. X *    MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
  654. X *    GNU General Public License for more details.
  655. X *
  656. X *    You should have received a copy of the GNU General Public License
  657. X *    along with this program; if not, write to the Free Software
  658. X *    Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.
  659. X *
  660. X * MANIFEST: functions to parse and write fundamental data types
  661. X */
  662. X
  663. X#include <string.h>
  664. X#include <time.h>
  665. X
  666. X#include <indent.h>
  667. X#include <str.h>
  668. X#include <io.h>
  669. X
  670. X
  671. Xtype_ty    integer_type =
  672. X{
  673. X    type_class_integer,
  674. X    "integer",
  675. X    0, /* alloc */
  676. X    0, /* free */
  677. X    0, /* enumerator */
  678. X};
  679. X
  680. X
  681. Xtype_ty string_type =
  682. X{
  683. X    type_class_string,
  684. X    "string",
  685. X    0, /* alloc */
  686. X    0, /* free */
  687. X    0, /* enum_parse */
  688. X    0, /* list_parse */
  689. X    0, /* struct_parse */
  690. X};
  691. X
  692. X
  693. Xstatic int suffix _((char *s1, char *s2));
  694. X
  695. Xstatic int
  696. Xsuffix(s1, s2)
  697. X    char    *s1;
  698. X    char    *s2;
  699. X{
  700. X    size_t    len1;
  701. X    size_t    len2;
  702. X
  703. X    len1 = strlen(s1);
  704. X    len2 = strlen(s2);
  705. X    return (len2 < len1 && !strcmp(s1 + len1 - len2, s2));
  706. X}
  707. X
  708. X
  709. Xvoid
  710. Xinteger_write(name, this)
  711. X    char        *name;
  712. X    long        this;
  713. X{
  714. X    if (!this && name)
  715. X        return;
  716. X    if (name)
  717. X        indent_printf("%s = ", name);
  718. X    if (name && !strcmp(name, "umask"))
  719. X        indent_printf("0%lo", this & 07777);
  720. X    else
  721. X        indent_printf("%ld", this);
  722. X    if (name)
  723. X    {
  724. X        indent_printf(";");
  725. X        if (suffix(name, "_time") || !strcmp(name, "when"))
  726. X            indent_printf(" /* %.24s */", ctime(&this));
  727. X        indent_printf("\n");
  728. X    }
  729. X}
  730. X
  731. X
  732. Xvoid
  733. Xstring_write(name, this)
  734. X    char        *name;
  735. X    string_ty    *this;
  736. X{
  737. X    char        *s;
  738. X    int        count;
  739. X
  740. X    if (!this && name)
  741. X        return;
  742. X    if (name)
  743. X        indent_printf("%s = ", name);
  744. X    indent_putchar('"');
  745. X    if (this)
  746. X    {
  747. X        count = 0;
  748. X        for (s = this->str_text; *s; ++s)
  749. X        {
  750. X            switch (*s)
  751. X            {
  752. X            case '('/*)*/:
  753. X            case '['/*]*/:
  754. X            case '{'/*}*/:
  755. X                ++count;
  756. X                break;
  757. X    
  758. X            case /*(*/')':
  759. X            case /*[*/']':
  760. X            case /*{*/'}':
  761. X                --count;
  762. X                break;
  763. X            }
  764. X        }
  765. X        if (count > 0)
  766. X            count = -count;
  767. X        else
  768. X            count = 0;
  769. X        for (s = this->str_text; *s; ++s)
  770. X        {
  771. X            int    c;
  772. X    
  773. X            c = *s;
  774. X            if (c < ' ' || c > '~')
  775. X            {
  776. X                char    *cp;
  777. X    
  778. X                cp = strchr("\bb\ff\nn\rr\tt", c);
  779. X                if (cp)
  780. X                {
  781. X                    indent_putchar('\\');
  782. X                    indent_putchar(cp[1]);
  783. X                    if (c == '\n')
  784. X                        indent_printf("\\\n");
  785. X                }
  786. X                else
  787. X                {
  788. X                    escape:
  789. X                    if (s[1] >= '0' && s[1] <= '9')
  790. X                        indent_printf("\\%03o", (unsigned char)c);
  791. X                    else
  792. X                        indent_printf("\\%o", (unsigned char)c);
  793. X                }
  794. X            }
  795. X            else
  796. X            {
  797. X                switch (c)
  798. X                {
  799. X                case '('/*)*/:
  800. X                case '['/*]*/:
  801. X                case '{'/*}*/:
  802. X                    ++count;
  803. X                    if (count <= 0)
  804. X                        goto escape;
  805. X                    break;
  806. X        
  807. X                case /*(*/')':
  808. X                case /*[*/']':
  809. X                case /*{*/'}':
  810. X                    --count;
  811. X                    if (count < 0)
  812. X                        goto escape;
  813. X                    break;
  814. X    
  815. X                case '\\':
  816. X                case '"':
  817. X                    indent_putchar('\\');
  818. X                    break;
  819. X                }
  820. X                indent_putchar(c);
  821. X            }
  822. X        }
  823. X    }
  824. X    indent_putchar('"');
  825. X    if (name)
  826. X        indent_printf(";\n");
  827. X}
  828. END_OF_FILE
  829. if test 3293 -ne `wc -c <'aegis/io.c'`; then
  830.     echo shar: \"'aegis/io.c'\" unpacked with wrong size!
  831. fi
  832. # end of 'aegis/io.c'
  833. fi
  834. if test -f 'aegis/os.h' -a "${1}" != "-c" ; then 
  835.   echo shar: Will not clobber existing file \"'aegis/os.h'\"
  836. else
  837. echo shar: Extracting \"'aegis/os.h'\" \(3146 characters\)
  838. sed "s/^X//" >'aegis/os.h' <<'END_OF_FILE'
  839. X/*
  840. X *    aegis - project change supervisor
  841. X *    Copyright (C) 1991, 1992, 1993 Peter Miller.
  842. X *    All rights reserved.
  843. X *
  844. X *    This program is free software; you can redistribute it and/or modify
  845. X *    it under the terms of the GNU General Public License as published by
  846. X *    the Free Software Foundation; either version 2 of the License, or
  847. X *    (at your option) any later version.
  848. X *
  849. X *    This program is distributed in the hope that it will be useful,
  850. X *    but WITHOUT ANY WARRANTY; without even the implied warranty of
  851. X *    MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
  852. X *    GNU General Public License for more details.
  853. X *
  854. X *    You should have received a copy of the GNU General Public License
  855. X *    along with this program; if not, write to the Free Software
  856. X *    Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.
  857. X *
  858. X * MANIFEST: interface definition for aegis/os.c
  859. X */
  860. X
  861. X#ifndef OS_H
  862. X#define OS_H
  863. X
  864. X#include <time.h>
  865. X
  866. X#include <main.h>
  867. X#include <str.h>
  868. X
  869. X#define OS_EXEC_FLAG_NO_INPUT 0
  870. X#define OS_EXEC_FLAG_INPUT 1
  871. X#define OS_EXEC_FLAG_ERROK 2
  872. X
  873. Xint os_exists _((string_ty *));
  874. Xvoid os_mkdir _((string_ty *path, int mode));
  875. Xvoid os_rmdir _((string_ty *));
  876. Xvoid os_rmdir_errok _((string_ty *));
  877. Xvoid os_mkdir_between _((string_ty *root, string_ty *rel, int mode));
  878. Xvoid os_rename _((string_ty *, string_ty *));
  879. Xvoid os_unlink _((string_ty *));
  880. Xvoid os_unlink_errok _((string_ty *));
  881. Xstring_ty *os_curdir _((void));
  882. Xstring_ty *os_pathname _((string_ty *, int));
  883. Xstring_ty *os_dirname _((string_ty *));
  884. Xstring_ty *os_entryname _((string_ty *));
  885. Xstring_ty *os_below_dir _((string_ty *, string_ty *));
  886. Xvoid os_chdir _((string_ty *));
  887. Xvoid os_setuid _((int));
  888. Xvoid os_setgid _((int));
  889. Xvoid os_execute _((string_ty *cmd, int flags, string_ty *dir));
  890. Xint os_execute_retcode _((string_ty *cmd, int flags, string_ty *dir));
  891. Xstring_ty *os_execute_slurp _((string_ty *cmd, int flags, string_ty *dir));
  892. Xtime_t os_mtime _((string_ty *));
  893. Xvoid os_mtime_set _((string_ty *, time_t));
  894. Xvoid os_chown_check _((string_ty *path, int mode, int uid, int gid));
  895. Xvoid os_chmod _((string_ty *, int));
  896. Xvoid os_chmod_errok _((string_ty *, int));
  897. Xint os_chmod_query _((string_ty *));
  898. Xvoid os_link _((string_ty *from, string_ty *to));
  899. Xint os_testing_mode _((void));
  900. Xvoid os_become_init _((void));
  901. Xvoid os_become _((int uid, int gid, int umask));
  902. Xvoid os_become_undo _((void));
  903. Xvoid os_become_orig _((void));
  904. Xvoid os_become_query _((int *uid, int *gid, int *umask));
  905. Xvoid os_become_orig_query _((int *uid, int *gid, int *umask));
  906. X
  907. Xint os_become_active _((void));
  908. X#define os_become_must_be_active() \
  909. X    os_become_must_be_active_gizzards(__FILE__, __LINE__)
  910. Xvoid os_become_must_be_active_gizzards _((char *, int));
  911. X#define os_become_must_not_be_active() \
  912. X    os_become_must_not_be_active_gizzards(__FILE__, __LINE__)
  913. Xvoid os_become_must_not_be_active_gizzards _((char *, int));
  914. X
  915. Xint os_background _((void));
  916. Xint os_readable _((string_ty *));
  917. Xint os_waitpid _((int child, int *status));
  918. Xint os_waitpid_status _((int child, char *cmd));
  919. X
  920. Xchar *os_shell _((void));
  921. X
  922. Xvoid os_edit _((string_ty *));
  923. Xstring_ty *os_edit_new _((void));
  924. Xstring_ty *os_edit_filename _((void));
  925. X
  926. X#endif /* OS_H */
  927. END_OF_FILE
  928. if test 3146 -ne `wc -c <'aegis/os.h'`; then
  929.     echo shar: \"'aegis/os.h'\" unpacked with wrong size!
  930. fi
  931. # end of 'aegis/os.h'
  932. fi
  933. if test -f 'aegis/user.h' -a "${1}" != "-c" ; then 
  934.   echo shar: Will not clobber existing file \"'aegis/user.h'\"
  935. else
  936. echo shar: Extracting \"'aegis/user.h'\" \(2588 characters\)
  937. sed "s/^X//" >'aegis/user.h' <<'END_OF_FILE'
  938. X/*
  939. X *    aegis - project change supervisor
  940. X *    Copyright (C) 1992, 1993 Peter Miller.
  941. X *    All rights reserved.
  942. X *
  943. X *    This program is free software; you can redistribute it and/or modify
  944. X *    it under the terms of the GNU General Public License as published by
  945. X *    the Free Software Foundation; either version 2 of the License, or
  946. X *    (at your option) any later version.
  947. X *
  948. X *    This program is distributed in the hope that it will be useful,
  949. X *    but WITHOUT ANY WARRANTY; without even the implied warranty of
  950. X *    MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
  951. X *    GNU General Public License for more details.
  952. X *
  953. X *    You should have received a copy of the GNU General Public License
  954. X *    along with this program; if not, write to the Free Software
  955. X *    Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.
  956. X *
  957. X * MANIFEST: interface definition for aegis/user.c
  958. X */
  959. X
  960. X#ifndef USER_H
  961. X#define USER_H
  962. X
  963. X#include <ustate.h>
  964. X#include <uconf.h>
  965. X
  966. Xtypedef struct user_ty user_ty;
  967. Xstruct user_ty
  968. X{
  969. X    long        reference_count;
  970. X    struct project_ty *pp;
  971. X    string_ty    *name;
  972. X    string_ty    *full_name;
  973. X    string_ty    *home;
  974. X    string_ty    *group;
  975. X    int        uid;
  976. X    int        gid;
  977. X    int        umask;
  978. X    string_ty    *ustate_path;
  979. X    ustate        ustate_data;
  980. X    int        ustate_is_new;
  981. X    int        ustate_modified;
  982. X    string_ty    *uconf_path;
  983. X    uconf        uconf_data;
  984. X    long        lock_magic;
  985. X    /*
  986. X     * if you add anything to this structure,
  987. X     * make sure you fix user_free in user.c
  988. X     */
  989. X};
  990. X
  991. X
  992. Xuser_ty *user_numeric _((struct project_ty *pp, int uid));
  993. Xuser_ty *user_symbolic _((struct project_ty *pp, string_ty *user_name));
  994. Xuser_ty *user_executing _((struct project_ty *));
  995. Xvoid user_free _((user_ty *));
  996. Xuser_ty *user_copy _((user_ty *));
  997. X
  998. Xstring_ty *user_name _((user_ty *));
  999. Xint user_id _((user_ty *));
  1000. Xint user_gid _((user_ty *));
  1001. Xint user_umask _((user_ty *));
  1002. X
  1003. Xvoid user_ustate_lock_prepare _((user_ty *));
  1004. X
  1005. Xstring_ty *user_group _((user_ty *));
  1006. X
  1007. Xstring_ty *user_home _((user_ty *));
  1008. X
  1009. Xchar *user_full_name _((string_ty *));
  1010. X
  1011. Xvoid user_ustate_write _((user_ty *));
  1012. X
  1013. Xvoid user_own_add _((user_ty *up, struct string_ty *project_name,
  1014. X    long change_number));
  1015. Xint user_own_nth _((user_ty *up, long n, long *change_number));
  1016. Xvoid user_own_remove _((user_ty *, struct string_ty *project_name,
  1017. X    long change_number));
  1018. X
  1019. Xlong user_default_change _((user_ty *));
  1020. Xstring_ty *user_default_project _((void));
  1021. Xstring_ty *user_default_development_directory _((user_ty *));
  1022. Xstring_ty *user_default_project_directory _((user_ty *));
  1023. X
  1024. Xint user_uid_check _((string_ty *));
  1025. Xint user_gid_check _((string_ty *));
  1026. Xvoid user_become _((user_ty *));
  1027. Xvoid user_become_undo _((void));
  1028. X
  1029. X#endif /* USER_H */
  1030. END_OF_FILE
  1031. if test 2588 -ne `wc -c <'aegis/user.h'`; then
  1032.     echo shar: \"'aegis/user.h'\" unpacked with wrong size!
  1033. fi
  1034. # end of 'aegis/user.h'
  1035. fi
  1036. if test -f 'aux/patches.sh' -a "${1}" != "-c" ; then 
  1037.   echo shar: Will not clobber existing file \"'aux/patches.sh'\"
  1038. else
  1039. echo shar: Extracting \"'aux/patches.sh'\" \(2663 characters\)
  1040. sed "s/^X//" >'aux/patches.sh' <<'END_OF_FILE'
  1041. X#! /bin/sh
  1042. X#
  1043. X#    aegis - project change supervisor
  1044. X#    Copyright (C) 1992, 1993 Peter Miller.
  1045. X#    All rights reserved.
  1046. X#
  1047. X#    This program is free software; you can redistribute it and/or modify
  1048. X#    it under the terms of the GNU General Public License as published by
  1049. X#    the Free Software Foundation; either version 2 of the License, or
  1050. X#    (at your option) any later version.
  1051. X#
  1052. X#    This program is distributed in the hope that it will be useful,
  1053. X#    but WITHOUT ANY WARRANTY; without even the implied warranty of
  1054. X#    MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
  1055. X#    GNU General Public License for more details.
  1056. X#
  1057. X#    You should have received a copy of the GNU General Public License
  1058. X#    along with this program; if not, write to the Free Software
  1059. X#    Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.
  1060. X#
  1061. X# MANIFEST: shell script to generate the patch file
  1062. X#
  1063. Xcase $# in
  1064. X2)
  1065. X    project=$1
  1066. X    change=$2
  1067. X    ;;
  1068. X*)
  1069. X    echo "usage: $0 <project> <change>" 1>&2
  1070. X    exit 1
  1071. X    ;;
  1072. Xesac
  1073. X
  1074. Xset -e
  1075. Xtmp=/tmp/$$
  1076. Xtmp2=/tmp/$$.2
  1077. Xbl=`aegis -cd -bl -p $project`
  1078. X
  1079. X#
  1080. X# These files are generated
  1081. X# so we don't have an older version in history
  1082. X#
  1083. Xweird="README BUILDING CHANGES MANIFEST Makefile doc/version.so aux/new.so"
  1084. Xecho "#! /bin/sh"
  1085. Xecho "#"
  1086. Xecho "# This is a self-applying patch in a shell script."
  1087. Xecho "#"
  1088. Xecho "# Change directory to the appropriate place"
  1089. Xecho "# before applying running this shell script."
  1090. Xecho "#"
  1091. Xecho "# Don't forget the -p0 option if you apply this patch manually."
  1092. Xecho "#"
  1093. Xecho "# ------------------------------------------------------------"
  1094. Xecho
  1095. Xecho "#"
  1096. Xecho "# Before you apply this patch manually,"
  1097. Xecho "# please delete the following files:"
  1098. Xecho "#"
  1099. Xecho "rm -f $weird"
  1100. Xecho
  1101. Xecho "#"
  1102. Xecho "# Now patch the files..."
  1103. Xecho "#    (Don't forget the -p0 option.)"
  1104. Xecho "#"
  1105. Xecho "patch -p0 << 'fubar'"
  1106. X
  1107. X#
  1108. X# the patchlevel patch can be generated accurately
  1109. X#
  1110. Xecho "Index: common/patchlevel.h"
  1111. Xprev=`aegis -list version -p $project -c $change | awk -F'"' '/previous/{print $2}'`
  1112. Xecho "Prereq: \"$prev\""
  1113. Xecho "#define PATCHLEVEL \"$prev\"" > $tmp
  1114. Xset +e
  1115. Xdiff -c $tmp common/patchlevel.h | sed '1,2d'
  1116. Xset -e
  1117. X
  1118. X#
  1119. X# get a list of files from aegis
  1120. X#
  1121. Xfiles=`(aegis -l pf -p $project -c $change -ter; aegis -l cf -p $project -c $change -ter) | sort -u`
  1122. X
  1123. X#
  1124. X# get the diff listing for each file
  1125. X#
  1126. Xfor f in $files
  1127. Xdo
  1128. X    if [ "$f" != "common/patchlevel.h" ]
  1129. X    then
  1130. X        aegis -cp $f -delta 1 -output $tmp -p $project -c $change
  1131. X        set +e
  1132. X        if [ -f $f ]
  1133. X        then
  1134. X            fn=$f
  1135. X        else
  1136. X            fn=$bl/$f
  1137. X        fi
  1138. X        if diff -c $tmp $fn > $tmp2 2> /dev/null
  1139. X        then
  1140. X            set -e
  1141. X        else
  1142. X            set -e
  1143. X            echo "Index: $f"
  1144. X            sed '1,2d' < $tmp2
  1145. X        fi
  1146. X    fi
  1147. Xdone
  1148. Xecho "fubar"
  1149. X
  1150. X#
  1151. X# clean up and go home
  1152. X#
  1153. Xrm -f $tmp $tmp2
  1154. Xexit 0
  1155. END_OF_FILE
  1156. if test 2663 -ne `wc -c <'aux/patches.sh'`; then
  1157.     echo shar: \"'aux/patches.sh'\" unpacked with wrong size!
  1158. fi
  1159. # end of 'aux/patches.sh'
  1160. fi
  1161. if test -f 'common/mem.c' -a "${1}" != "-c" ; then 
  1162.   echo shar: Will not clobber existing file \"'common/mem.c'\"
  1163. else
  1164. echo shar: Extracting \"'common/mem.c'\" \(3460 characters\)
  1165. sed "s/^X//" >'common/mem.c' <<'END_OF_FILE'
  1166. X/*
  1167. X *    aegis - project change supervisor
  1168. X *    Copyright (C) 1991, 1992, 1993 Peter Miller.
  1169. X *    All rights reserved.
  1170. X *
  1171. X *    This program is free software; you can redistribute it and/or modify
  1172. X *    it under the terms of the GNU General Public License as published by
  1173. X *    the Free Software Foundation; either version 2 of the License, or
  1174. X *    (at your option) any later version.
  1175. X *
  1176. X *    This program is distributed in the hope that it will be useful,
  1177. X *    but WITHOUT ANY WARRANTY; without even the implied warranty of
  1178. X *    MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
  1179. X *    GNU General Public License for more details.
  1180. X *
  1181. X *    You should have received a copy of the GNU General Public License
  1182. X *    along with this program; if not, write to the Free Software
  1183. X *    Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.
  1184. X *
  1185. X * MANIFEST: functions to manipulate dynamic memory
  1186. X */
  1187. X
  1188. X#include <stddef.h>
  1189. X#include <string.h>
  1190. X#include <stdlib.h>
  1191. X#include <errno.h>
  1192. X
  1193. X#include <main.h>
  1194. X#include <mem.h>
  1195. X#include <error.h>
  1196. X
  1197. X
  1198. X/*
  1199. X *  NAME
  1200. X *    mem_alloc - allocate memory
  1201. X *
  1202. X *  SYNOPSIS
  1203. X *    char *mem_alloc(size_t n);
  1204. X *
  1205. X *  DESCRIPTION
  1206. X *    mem_alloc uses malloc to allocate the required sized chunk of memory.
  1207. X *    If any error is returned from malloc() an fatal diagnostic is issued.
  1208. X *
  1209. X *  CAVEAT
  1210. X *    It is the responsibility of the caller to ensure that the space is
  1211. X *    freed when finished with, by a call to free().
  1212. X */
  1213. X
  1214. Xchar *
  1215. Xmem_alloc(n)
  1216. X    size_t        n;
  1217. X{
  1218. X    char        *cp;
  1219. X
  1220. X    if (n < 1)
  1221. X        n = 1;
  1222. X    errno = 0;
  1223. X    cp = malloc(n);
  1224. X    if (!cp)
  1225. X    {
  1226. X        if (!errno)
  1227. X            errno = ENOMEM;
  1228. X        nfatal("malloc");
  1229. X    }
  1230. X    return cp;
  1231. X}
  1232. X
  1233. X
  1234. X/*
  1235. X *  NAME
  1236. X *    mem_alloc_clear - allocate and clear memory
  1237. X *
  1238. X *  SYNOPSIS
  1239. X *    char *mem_alloc_clear(size_t n);
  1240. X *
  1241. X *  DESCRIPTION
  1242. X *    mem_alloc_clear uses malloc to allocate the required sized chunk of memory.
  1243. X *    If any error is returned from malloc() an fatal diagnostic is issued.
  1244. X *    The memory is zeroed befor it is returned.
  1245. X *
  1246. X *  CAVEAT
  1247. X *    It is the responsibility of the caller to ensure that the space is
  1248. X *    freed when finished with, by a call to free().
  1249. X */
  1250. X
  1251. Xchar *
  1252. Xmem_alloc_clear(n)
  1253. X    size_t        n;
  1254. X{
  1255. X    char        *cp;
  1256. X
  1257. X    cp = mem_alloc(n);
  1258. X    memset(cp, 0, n);
  1259. X    return cp;
  1260. X}
  1261. X
  1262. X
  1263. X/*
  1264. X *  NAME
  1265. X *    enlarge - enlarges dynamic arrays
  1266. X *
  1267. X *  SYNOPSIS
  1268. X *    char *enlarge(size_t *length, char **base, size_t size);
  1269. X *
  1270. X *  DESCRIPTION
  1271. X *    Enlarge is used to append more space onto the end of dynamically
  1272. X *    allocated arrays.
  1273. X *    If any error is returned from the memory allocator,
  1274. X *    a fatal diagnostic is issued.
  1275. X *
  1276. X *  RETURNS
  1277. X *    A pointer to the element added.
  1278. X *
  1279. X *  CAVEAT
  1280. X *    Because it uses realloc, pointers into the array may be invalid after
  1281. X *    a call to enlarge(); only use indexing.
  1282. X *
  1283. X *    The new space is not zeroed.
  1284. X *
  1285. X *    It is the responsibility of the caller to ensure that the array is
  1286. X *    freed when finished with, by a call to free().
  1287. X */
  1288. X
  1289. Xchar *
  1290. Xenlarge(length, base, size)
  1291. X    size_t        *length;
  1292. X    char        **base;
  1293. X    size_t        size;
  1294. X{
  1295. X    char        *result;
  1296. X
  1297. X    if (*length)
  1298. X        mem_change_size(base, (*length + 1) * size);
  1299. X    else
  1300. X        *base = mem_alloc(size);
  1301. X    result = *base + (*length)++ * size;
  1302. X    return result;
  1303. X}
  1304. X
  1305. X
  1306. Xvoid
  1307. Xmem_change_size(cpp, n)
  1308. X    char        **cpp;
  1309. X    size_t        n;
  1310. X{
  1311. X    char        *cp;
  1312. X
  1313. X    cp = *cpp;
  1314. X    if (n < 1)
  1315. X        n = 1;
  1316. X    errno = 0;
  1317. X    cp = realloc(cp, n);
  1318. X    if (!cp)
  1319. X    {
  1320. X        if (!errno)
  1321. X            errno = ENOMEM;
  1322. X        nfatal("realloc");
  1323. X    }
  1324. X    *cpp = cp;
  1325. X}
  1326. X
  1327. X
  1328. Xvoid
  1329. Xmem_free(cp)
  1330. X    char        *cp;
  1331. X{
  1332. X    free(cp);
  1333. X}
  1334. X
  1335. X
  1336. Xchar *
  1337. Xmem_copy_string(s)
  1338. X    char        *s;
  1339. X{
  1340. X    char        *cp;
  1341. X
  1342. X    cp = mem_alloc(strlen(s) + 1);
  1343. X    strcpy(cp, s);
  1344. X    return cp;
  1345. X}
  1346. END_OF_FILE
  1347. if test 3460 -ne `wc -c <'common/mem.c'`; then
  1348.     echo shar: \"'common/mem.c'\" unpacked with wrong size!
  1349. fi
  1350. # end of 'common/mem.c'
  1351. fi
  1352. if test -f 'doc/c1.0.so' -a "${1}" != "-c" ; then 
  1353.   echo shar: Will not clobber existing file \"'doc/c1.0.so'\"
  1354. else
  1355. echo shar: Extracting \"'doc/c1.0.so'\" \(3426 characters\)
  1356. sed "s/^X//" >'doc/c1.0.so' <<'END_OF_FILE'
  1357. X.\"
  1358. X.\"    aegis - project change supervisor
  1359. X.\"    Copyright (C) 1991, 1992, 1993 Peter Miller.
  1360. X.\"    All rights reserved.
  1361. X.\"
  1362. X.\"    This program is free software; you can redistribute it and/or modify
  1363. X.\"    it under the terms of the GNU General Public License as published by
  1364. X.\"    the Free Software Foundation; either version 2 of the License, or
  1365. X.\"    (at your option) any later version.
  1366. X.\"
  1367. X.\"    This program is distributed in the hope that it will be useful,
  1368. X.\"    but WITHOUT ANY WARRANTY; without even the implied warranty of
  1369. X.\"    MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
  1370. X.\"    GNU General Public License for more details.
  1371. X.\"
  1372. X.\"    You should have received a copy of the GNU General Public License
  1373. X.\"    along with this program; if not, write to the Free Software
  1374. X.\"    Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.
  1375. X.\"
  1376. X.\" MANIFEST: User Guide, Introduction
  1377. X.\"
  1378. X\&.
  1379. X.sp 2i
  1380. X.ps 24
  1381. X.vs 26
  1382. X.ce 2
  1383. XAegis
  1384. XA Project Change Supervisor
  1385. X.sp 0.5i
  1386. X.ce 1
  1387. XUser Guide
  1388. X.sp 1i
  1389. X.ps 18
  1390. X.vs 20
  1391. X.ce 1
  1392. XPeter Miller
  1393. X.OH 'Aegis''User Guide'
  1394. X.EH 'User Guide''Aegis'
  1395. X.bp
  1396. X.OF 'Peter Miller'\\\\s-3(\\\\n(.F)\\\\s+3'Page %'
  1397. X.EF 'Page %'\\\\s-3(\\\\n(.F)\\\\s+3'Peter Miller'
  1398. X.ps 12
  1399. X.vs 14
  1400. X\&.
  1401. X.sp 1i
  1402. X.ce 1
  1403. XDEDICATIONS
  1404. X.sp
  1405. X.ce 4
  1406. XThis user guide is dedicated to my wife
  1407. XMary Therese Miller
  1408. Xfor all her love and support
  1409. Xdespite the computers.
  1410. X.sp
  1411. X.ce 4
  1412. XAnd to my grandmother
  1413. XJean Florence Pelham
  1414. X1905 \(em 1992
  1415. XAlways in our hearts.
  1416. X.sp 1i
  1417. X.so version.so
  1418. XThis document describes aegis version \*(v)
  1419. X.br
  1420. Xand was prepared \*(DY.
  1421. X.br
  1422. X.sp 1i
  1423. X.if n .ds C) (C)
  1424. X.if t .ds C) \(co
  1425. XThis document describing the aegis program,
  1426. Xand the aegis program itself,
  1427. Xare
  1428. X.br
  1429. XCopyright \*(C) 1990, 1991, 1992, 1993 Peter Miller.
  1430. XAll rights reserved.
  1431. X.sp
  1432. XThis program is free software; you can redistribute it and/or modify
  1433. Xit under the terms of the GNU General Public License as published by
  1434. Xthe Free Software Foundation; either version 1, or (at your option)
  1435. Xany later version.
  1436. X.sp
  1437. XThis program is distributed in the hope that it will be useful,
  1438. Xbut WITHOUT ANY WARRANTY; without even the implied warranty of
  1439. XMERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
  1440. XGNU General Public License for more details.
  1441. X.sp
  1442. XYou should have received a copy of the GNU General Public License
  1443. Xalong with this program; if not, write to the Free Software
  1444. XFoundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.
  1445. X.ps 10
  1446. X.vs 12
  1447. X.bp
  1448. X.2C
  1449. X.nh 1 "Introduction"
  1450. X.LP
  1451. XThe aegis program is a CASE tool with a difference.
  1452. XIn the spirit of the
  1453. X.UX
  1454. XOperating System,
  1455. Xthe aegis program is a small component designed to work with other programs.
  1456. X.LP
  1457. XMany CASE systems attempt to provide everything,
  1458. Xfrom bubble charts to source control to compilers.
  1459. XUsers are trapped with the components supplied by the CASE system,
  1460. Xand if you don't like one of the components (it may be too limited,
  1461. Xfor instance), then that is just tough.
  1462. X.LP
  1463. XIn contrast, 
  1464. X.UX
  1465. Xprovides many components of a CASE system - compilers,
  1466. Xeditors, dependency tools (such as make), source control (such as SCCS).
  1467. XYou may substitute the tool of your choice - gcc, jove, cake,
  1468. Xrcs (to name a few) if you don't like the ones supplied with the system.
  1469. X.LP
  1470. XThe aegis program adds to this list with software configuration
  1471. Xmanagement (SCM),
  1472. Xand true to 
  1473. X.UX
  1474. Xphilosophy,
  1475. Xthe aegis program does not dictate the choice of any of the other tools
  1476. X(although it may stretch them to their limits).
  1477. X.so c1.1.so
  1478. X.so c1.2.so
  1479. X.so c1.4.so
  1480. X.1C
  1481. END_OF_FILE
  1482. if test 3426 -ne `wc -c <'doc/c1.0.so'`; then
  1483.     echo shar: \"'doc/c1.0.so'\" unpacked with wrong size!
  1484. fi
  1485. # end of 'doc/c1.0.so'
  1486. fi
  1487. if test -f 'doc/c1.2.so' -a "${1}" != "-c" ; then 
  1488.   echo shar: Will not clobber existing file \"'doc/c1.2.so'\"
  1489. else
  1490. echo shar: Extracting \"'doc/c1.2.so'\" \(2807 characters\)
  1491. sed "s/^X//" >'doc/c1.2.so' <<'END_OF_FILE'
  1492. X.\"
  1493. X.\"    aegis - project change supervisor
  1494. X.\"    Copyright (C) 1991, 1992, 1993 Peter Miller.
  1495. X.\"    All rights reserved.
  1496. X.\"
  1497. X.\"    This program is free software; you can redistribute it and/or modify
  1498. X.\"    it under the terms of the GNU General Public License as published by
  1499. X.\"    the Free Software Foundation; either version 2 of the License, or
  1500. X.\"    (at your option) any later version.
  1501. X.\"
  1502. X.\"    This program is distributed in the hope that it will be useful,
  1503. X.\"    but WITHOUT ANY WARRANTY; without even the implied warranty of
  1504. X.\"    MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
  1505. X.\"    GNU General Public License for more details.
  1506. X.\"
  1507. X.\"    You should have received a copy of the GNU General Public License
  1508. X.\"    along with this program; if not, write to the Free Software
  1509. X.\"    Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.
  1510. X.\"
  1511. X.\" MANIFEST: User Guide, Introduction, Why use aegis?
  1512. X.\"
  1513. X.nh 2 "Why use aegis?"
  1514. X.LP
  1515. XSo why should you use the aegis program?
  1516. XThe aegis program uses a particular model of the development of software
  1517. Xprojects.
  1518. XThis model has a master source (or baseline) of a project,
  1519. Xconsisting of several (possibly several hundred) files,
  1520. Xand a team of developers creating changes to be made to this baseline.
  1521. XWhen a change is complete,
  1522. Xit is integrated with the baseline,
  1523. Xto become  the new baseline.
  1524. XEach change must be atomic and self-contained,
  1525. Xno change is allowed to cause the baseline to cease to work.
  1526. X"Working" is defined as passing its own tests.
  1527. XThe tests are considered part of the baseline.
  1528. XAegis provides support for the developer so that an entire copy of
  1529. Xthe baseline need not be taken to change a few files,
  1530. Xonly those files which are to be changed need to be copied.
  1531. X.LP
  1532. XThe win in using the aegis program is that there are
  1533. X.I O(n)
  1534. Xinteractions between developers and the baseline.
  1535. XContrast this with a master source which is
  1536. Xbeing edited directly by the developers - there is
  1537. X.I O(n!)
  1538. Xinteractions between developers - this
  1539. Xmakes adding "just one" more developer a potential disaster.
  1540. X.LP
  1541. XAnother win is that the project baseline always works.
  1542. XAlways having a working baseline means that a version is always available for
  1543. Xdemonstrations,
  1544. Xor those "pre-release snapshots" we are always forced to provide.
  1545. X.LP
  1546. XThe above advantages are all very well - for management types.
  1547. XWhy should Joe Average Programmer use the aegis program?
  1548. XRecall that SCCS provides file locking,
  1549. Xbut only for one file at a time.
  1550. XThe aegis program provides the file locking, atomically, for the set of files
  1551. Xin the change.
  1552. XRecall also that SCCS locks the file the instant you start editing it.
  1553. XThis makes popular files a project bottleneck.
  1554. XThe aegis program allows concurrent editing,
  1555. Xand a resolution mechanism just before the change must be integrated,
  1556. Xmeaning fewer delays for J.A.Programmer.
  1557. END_OF_FILE
  1558. if test 2807 -ne `wc -c <'doc/c1.2.so'`; then
  1559.     echo shar: \"'doc/c1.2.so'\" unpacked with wrong size!
  1560. fi
  1561. # end of 'doc/c1.2.so'
  1562. fi
  1563. if test -f 'doc/c1.4.so' -a "${1}" != "-c" ; then 
  1564.   echo shar: Will not clobber existing file \"'doc/c1.4.so'\"
  1565. else
  1566. echo shar: Extracting \"'doc/c1.4.so'\" \(2694 characters\)
  1567. sed "s/^X//" >'doc/c1.4.so' <<'END_OF_FILE'
  1568. X.\"
  1569. X.\"    aegis - project change supervisor
  1570. X.\"    Copyright (C) 1991, 1992, 1993 Peter Miller.
  1571. X.\"    All rights reserved.
  1572. X.\"
  1573. X.\"    This program is free software; you can redistribute it and/or modify
  1574. X.\"    it under the terms of the GNU General Public License as published by
  1575. X.\"    the Free Software Foundation; either version 2 of the License, or
  1576. X.\"    (at your option) any later version.
  1577. X.\"
  1578. X.\"    This program is distributed in the hope that it will be useful,
  1579. X.\"    but WITHOUT ANY WARRANTY; without even the implied warranty of
  1580. X.\"    MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
  1581. X.\"    GNU General Public License for more details.
  1582. X.\"
  1583. X.\"    You should have received a copy of the GNU General Public License
  1584. X.\"    along with this program; if not, write to the Free Software
  1585. X.\"    Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.
  1586. X.\"
  1587. X.\" MANIFEST: User Guide, Introduction, How to use this manual
  1588. X.\"
  1589. X.bp
  1590. X.nh 2 "How to use this manual"
  1591. X.LP
  1592. XThis manual assumes the reader is already familiar with the
  1593. X.UX
  1594. Xoperating system,
  1595. Xand with developing software using the
  1596. X.UX
  1597. Xoperating system
  1598. Xand the tools available;
  1599. Xterms such as
  1600. X.I RCS
  1601. Xand
  1602. X.I SCCS
  1603. Xand
  1604. X.I make (1)
  1605. Xare not explained.
  1606. X.LP
  1607. XThere is also the assumption that the reader is familiar with the issues surrounding team development of software;
  1608. Xcoordination and multiple copy issues, for example, are not explained.
  1609. X.LP
  1610. XThis manual is broken into a number of sections.
  1611. X.IP "Chapter 2"
  1612. Xdescribes
  1613. Xhow aegis works and
  1614. Xsome of the reasoning behind the design and
  1615. Ximplementation of the aegis program.
  1616. XLook here for answers to "Why does it..." questions.
  1617. X.IP "Chapter 3"
  1618. Xis a worked example of how particular users
  1619. Xinteract with the aegis program.
  1620. XLook here for answers to "How do I..." questions.
  1621. X.IP "Chapter 4"
  1622. Xis a discussion of how aegis interacts
  1623. Xwith the History Tool,
  1624. Xand provides templates and suggestions
  1625. Xfor history tools known to work with aegis.
  1626. X.IP "Chapter 5"
  1627. Xis a discussion of how aegis interacts
  1628. Xwith the Dependency Maintenance Tool (DMT),
  1629. Xand provides templates and suggestions for DMTs known to work with aegis.
  1630. X.IP "Chapter 6"
  1631. Xis a discussion of how aegis interacts
  1632. Xwith the Difference Tools,
  1633. Xand provides templates and suggestions for difference tools
  1634. Xknown to work with aegis.
  1635. X.IP "Chapter 7"
  1636. Xdescribes the project attributes
  1637. Xand how the various parameters may be used for particular projects.
  1638. X.IP "Chapter 8"
  1639. Xis a collection of helpful hints on how to use aegis effectively,
  1640. Xbased on real-world experience.
  1641. XThis is of most use when initially placing projects under the supervision
  1642. Xof the aegis program.
  1643. X.IP "Appendix A"
  1644. Xis a quick reference for placing an existing project under aegis.
  1645. X.IP "Appendix B"
  1646. Xis a glossary of terms.
  1647. END_OF_FILE
  1648. if test 2694 -ne `wc -c <'doc/c1.4.so'`; then
  1649.     echo shar: \"'doc/c1.4.so'\" unpacked with wrong size!
  1650. fi
  1651. # end of 'doc/c1.4.so'
  1652. fi
  1653. if test -f 'doc/c2.0.so' -a "${1}" != "-c" ; then 
  1654.   echo shar: Will not clobber existing file \"'doc/c2.0.so'\"
  1655. else
  1656. echo shar: Extracting \"'doc/c2.0.so'\" \(2342 characters\)
  1657. sed "s/^X//" >'doc/c2.0.so' <<'END_OF_FILE'
  1658. X.\"
  1659. X.\"    aegis - project change supervisor
  1660. X.\"    Copyright (C) 1991, 1992, 1993 Peter Miller.
  1661. X.\"    All rights reserved.
  1662. X.\"
  1663. X.\"    This program is free software; you can redistribute it and/or modify
  1664. X.\"    it under the terms of the GNU General Public License as published by
  1665. X.\"    the Free Software Foundation; either version 2 of the License, or
  1666. X.\"    (at your option) any later version.
  1667. X.\"
  1668. X.\"    This program is distributed in the hope that it will be useful,
  1669. X.\"    but WITHOUT ANY WARRANTY; without even the implied warranty of
  1670. X.\"    MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
  1671. X.\"    GNU General Public License for more details.
  1672. X.\"
  1673. X.\"    You should have received a copy of the GNU General Public License
  1674. X.\"    along with this program; if not, write to the Free Software
  1675. X.\"    Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.
  1676. X.\"
  1677. X.\" MANIFEST: User Guide, The Change Development Cycle
  1678. X.\"
  1679. X.bp
  1680. X.nh 1 "The Change Development Cycle"
  1681. X.LP
  1682. XAs a change to a project is developed using aegis,
  1683. Xit passes through several states.
  1684. XEach state is characterised by different quality requirements,
  1685. Xdifferent sets of applicable aegis commands, and
  1686. Xdifferent responsibilities for the people involved.
  1687. X.LP
  1688. XThese people may be divided into four categories:
  1689. Xdevelopers, reviewers, integrators and administrators.
  1690. XEach has different responsibilities, duties and permissions;
  1691. Xalthough one person may belong to more than one category,
  1692. Xdepending on how a project is administered.
  1693. X.LP
  1694. XThis chapter looks at each of these categories,
  1695. Xby way of an example project undergoing its first four changes.
  1696. XThis example will be examined from the perspective of each category
  1697. Xof people
  1698. Xin the following sections.
  1699. X.LP
  1700. XThere are six hypothetical users in the example:
  1701. Xthe developers are Pat, Jan and Sam;
  1702. Xthe reviewers are Robyn and Jan;
  1703. Xthe integrator is Isa; and
  1704. Xthe administrator is Alex\**.
  1705. X.FS
  1706. XThe names are deliberately gender-neutral.
  1707. XFinding such a name starting with "I" is not easy!
  1708. X.FE
  1709. XThere need not have been this many people involved,
  1710. Xbut it keeps things slightly cleaner for this example.
  1711. X.LP
  1712. XThe project is called "example".
  1713. XIt implements a very simple calculator.
  1714. XMany features important to a quality product are missing,
  1715. Xchecking for divide-by-zero for example.
  1716. XThese have been omitted for brevity.
  1717. X.so c2.1.so
  1718. X.so c2.2.so
  1719. X.so c2.3.so
  1720. X.so c2.4.so
  1721. X.so c2.5.so
  1722. END_OF_FILE
  1723. if test 2342 -ne `wc -c <'doc/c2.0.so'`; then
  1724.     echo shar: \"'doc/c2.0.so'\" unpacked with wrong size!
  1725. fi
  1726. # end of 'doc/c2.0.so'
  1727. fi
  1728. if test -f 'doc/c3.0.so' -a "${1}" != "-c" ; then 
  1729.   echo shar: Will not clobber existing file \"'doc/c3.0.so'\"
  1730. else
  1731. echo shar: Extracting \"'doc/c3.0.so'\" \(2916 characters\)
  1732. sed "s/^X//" >'doc/c3.0.so' <<'END_OF_FILE'
  1733. X.\"
  1734. X.\"    aegis - project change supervisor
  1735. X.\"    Copyright (C) 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: User Guide, The History Tool"
  1753. X.\"
  1754. X.bp
  1755. X.nh 1 "The History Tool"
  1756. X.LP
  1757. XThe aegis program is decoupled from the history mechanism.
  1758. XThis allows you to use the history mechanism of your choice,
  1759. XSCCS or RCS, for example.
  1760. XYou may even wish to write your own.
  1761. X.LP
  1762. XThe intention of this is that you may use a history mechanism which
  1763. Xsuits your special needs,
  1764. Xor the one that comes free with your flavour of 
  1765. X.UX
  1766. Xoperating system.
  1767. X.LP
  1768. XThe aegis program uses the history mechanism for file
  1769. X.I history
  1770. Xand so does not require many of the features of SCCS or RCS.
  1771. XThis simplistic approach can sometimes make the interface to these
  1772. Xutilities look a little strange.
  1773. X.nh 2 "Interfacing"
  1774. X.LP
  1775. XThe history mechanism interface is found in the
  1776. Xproject configuration file called
  1777. X.I "config" ,
  1778. Xrelative to the root of the baseline.
  1779. XIt is a source file and subject to the same controls
  1780. Xas any other source file.
  1781. XThe history fields of the file are described as follows
  1782. X.nh 3 "history_create_command"
  1783. X.LP
  1784. XThis field is used to create a new history.
  1785. XThe command is always executed as the project owner.
  1786. XSubstitutions available for the command string are:
  1787. X.DS
  1788. X.TS
  1789. Xtab(;);
  1790. Xl l.
  1791. X${Input};source file
  1792. X${History};history file
  1793. X.TE
  1794. X.DE
  1795. X.nh 3 "history_get_command"
  1796. X.LP
  1797. XThis field is used to get a file from history.
  1798. XThe command may be executed by developers.
  1799. XSubstitutions available for the command string are:
  1800. X.DS
  1801. X.TS
  1802. Xtab(;);
  1803. Xl l.
  1804. X${History};history file
  1805. X${Edit};edit number
  1806. X${Output};destination file
  1807. X.TE
  1808. X.DE
  1809. X.nh 3 "history_put_command"
  1810. X.LP
  1811. XThis field is used to add a new change to the history.
  1812. XThe command is always executed as the project owner.
  1813. XSubstitutions available for the command string are:
  1814. X.DS
  1815. X.TS
  1816. Xtab(;);
  1817. Xl l.
  1818. X${Input};source file
  1819. X${History};history file
  1820. X.TE
  1821. X.DE
  1822. X.nh 3 "history_query_command"
  1823. X.LP
  1824. XThis field is used to query the topmost edit of a history file.
  1825. XResult to be printed on the standard output.
  1826. XThis command may be executed by developers.
  1827. XSubstitutions available for the command string are:
  1828. X.DS
  1829. X.TS
  1830. Xtab(;);
  1831. Xl l.
  1832. X${History};history file
  1833. X.TE
  1834. X.DE
  1835. X.so c3.1.so
  1836. X.so c3.2.so
  1837. X.so c3.3.so
  1838. END_OF_FILE
  1839. if test 2916 -ne `wc -c <'doc/c3.0.so'`; then
  1840.     echo shar: \"'doc/c3.0.so'\" unpacked with wrong size!
  1841. fi
  1842. # end of 'doc/c3.0.so'
  1843. fi
  1844. if test -f 'doc/c3.3.so' -a "${1}" != "-c" ; then 
  1845.   echo shar: Will not clobber existing file \"'doc/c3.3.so'\"
  1846. else
  1847. echo shar: Extracting \"'doc/c3.3.so'\" \(3290 characters\)
  1848. sed "s/^X//" >'doc/c3.3.so' <<'END_OF_FILE'
  1849. X.\"
  1850. X.\"    aegis - project change supervisor
  1851. X.\"    Copyright (C) 1991, 1992, 1993 Peter Miller.
  1852. X.\"    All rights reserved.
  1853. X.\"
  1854. X.\"    This program is free software; you can redistribute it and/or modify
  1855. X.\"    it under the terms of the GNU General Public License as published by
  1856. X.\"    the Free Software Foundation; either version 2 of the License, or
  1857. X.\"    (at your option) any later version.
  1858. X.\"
  1859. X.\"    This program is distributed in the hope that it will be useful,
  1860. X.\"    but WITHOUT ANY WARRANTY; without even the implied warranty of
  1861. X.\"    MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
  1862. X.\"    GNU General Public License for more details.
  1863. X.\"
  1864. X.\"    You should have received a copy of the GNU General Public License
  1865. X.\"    along with this program; if not, write to the Free Software
  1866. X.\"    Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.
  1867. X.\"
  1868. X.\" MANIFEST: User Guide, The History Tool, Using fhist
  1869. X.\"
  1870. X.bp
  1871. X.nh 2 "Using fhist"
  1872. X.LP
  1873. XThe
  1874. X.I fhist
  1875. Xprogram was written by David I. Bell
  1876. Xand is admirably suited to providing a history mechanism
  1877. Xwith out the "cruft" that SCCS and RCS impose.
  1878. X.nh 3 "history_create_command"
  1879. X.LP
  1880. XThis command is used to create a new project history.
  1881. XThe command is always executed as the project owner.
  1882. X.LP
  1883. XThe following substitutions are available:
  1884. X.DS
  1885. X.TS
  1886. Xtab(;);
  1887. Xl l.
  1888. X${Input};absolute path of the source file
  1889. X${History};absolute path of the history file
  1890. X.TE
  1891. X.DE
  1892. X.LP
  1893. XThe entry in the
  1894. X.I "config"
  1895. Xfile looks like this:
  1896. X.E(
  1897. Xhistory_create_command =
  1898. X    "fhist ${b $i} -create -i $i -p ${d $h} -r";
  1899. X.E)
  1900. X.nh 3 "history_get_command"
  1901. X.LP
  1902. XThis command is used to get a specific edit back from history.
  1903. XThe command may be executed by developers.
  1904. X.LP
  1905. XThe following substitutions are available:
  1906. X.DS
  1907. X.TS
  1908. Xtab(;);
  1909. Xl l.
  1910. X${History};absolute path of the history file
  1911. X${Edit};edit number, as given by history_query_command
  1912. X${Output};absolute path of the destination file
  1913. X.TE
  1914. X.DE
  1915. X.LP
  1916. XThe entry in the
  1917. X.I "config"
  1918. Xfile looks like this:
  1919. X.E(
  1920. Xhistory_get_command =
  1921. X    "fhist ${b $h} -e '$e' -o $o -p ${d $h}";
  1922. X.E)
  1923. X.LP
  1924. XNote that the destination filename will
  1925. X.I never
  1926. Xlook anything like the history source filename,
  1927. Xso the -p is essential.
  1928. X.nh 3 "history_put_command"
  1929. X.LP
  1930. XThis command is used to add a new "top-most" entry to the
  1931. Xhistory file.
  1932. XThis command is always executed as the project owner.
  1933. X.LP
  1934. XThe following substitutions are available:
  1935. X.DS
  1936. X.TS
  1937. Xtab(;);
  1938. Xl l.
  1939. X${Input};absolute path of source file
  1940. X${History};absolute path of history file
  1941. X.TE
  1942. X.DE
  1943. X.LP
  1944. XThe entry in the
  1945. X.I "config"
  1946. Xfile looks like this:
  1947. X.E(
  1948. Xhistory_put_command =
  1949. X    "fhist ${b $i} -u -i $i -p ${d $h} -r";
  1950. X.E)
  1951. X.LP
  1952. XNote that the source file is left in the baseline.
  1953. X.LP
  1954. X.nh 3 "history_query_command"
  1955. X.LP
  1956. XThis command is used to query what the history mechanism calls the top-most
  1957. Xedit of a history file.
  1958. XThe result may be any arbitrary string,
  1959. Xit need not be anything like a number,
  1960. Xjust so long as it uniquely identifies the edit
  1961. Xfor use by the
  1962. X.I history_get_command
  1963. Xat a later date.
  1964. XThe edit number is to be printed on the standard output.
  1965. XThis command may be executed by developers.
  1966. X.LP
  1967. XThe following substitutions are available:
  1968. X.DS
  1969. X.TS
  1970. Xtab(;);
  1971. Xl l.
  1972. X${History};absolute path of the history file
  1973. X.TE
  1974. X.DE
  1975. X.LP
  1976. XThe entry in the
  1977. X.I "config"
  1978. Xfile looks like this:
  1979. X.E(
  1980. Xhistory_query_command =
  1981. X    "fhist ${b $h} -l 0 -p ${d $h} -q";
  1982. X.E)
  1983. END_OF_FILE
  1984. if test 3290 -ne `wc -c <'doc/c3.3.so'`; then
  1985.     echo shar: \"'doc/c3.3.so'\" unpacked with wrong size!
  1986. fi
  1987. # end of 'doc/c3.3.so'
  1988. fi
  1989. if test -f 'doc/c7.5.so' -a "${1}" != "-c" ; then 
  1990.   echo shar: Will not clobber existing file \"'doc/c7.5.so'\"
  1991. else
  1992. echo shar: Extracting \"'doc/c7.5.so'\" \(3106 characters\)
  1993. sed "s/^X//" >'doc/c7.5.so' <<'END_OF_FILE'
  1994. X.\"
  1995. X.\"    aegis - project change supervisor
  1996. X.\"    Copyright (C) 1992, 1993 Peter Miller.
  1997. X.\"    All rights reserved.
  1998. X.\"
  1999. X.\"    This program is free software; you can redistribute it and/or modify
  2000. X.\"    it under the terms of the GNU General Public License as published by
  2001. X.\"    the Free Software Foundation; either version 2 of the License, or
  2002. X.\"    (at your option) any later version.
  2003. X.\"
  2004. X.\"    This program is distributed in the hope that it will be useful,
  2005. X.\"    but WITHOUT ANY WARRANTY; without even the implied warranty of
  2006. X.\"    MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
  2007. X.\"    GNU General Public License for more details.
  2008. X.\"
  2009. X.\"    You should have received a copy of the GNU General Public License
  2010. X.\"    along with this program; if not, write to the Free Software
  2011. X.\"    Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.
  2012. X.\"
  2013. X.\" MANIFEST: User Guide, How Aegis Works, Security
  2014. X.\"
  2015. X.bp
  2016. X.nh 2 "Security"
  2017. X.LP
  2018. XAccess to project data is controlled by the
  2019. X.UX
  2020. Xgroup mechanism.
  2021. XThe group may be selected as suitable for your project,
  2022. Xas may the umask.
  2023. X.LP
  2024. XAll work done by developers (build, difference, etc)
  2025. Xis all with a default group of the project's group,
  2026. Xirrespective of the user's default group.
  2027. XDirectories (when BSD semantics are available) are all created
  2028. Xso that their contents default to the correct group.
  2029. XThis ensures that reviewers and integrators are able to examine the change.
  2030. X.LP
  2031. XOther
  2032. X.UX
  2033. Xusers not in the project's group
  2034. Xmay be excluded, or not, by the appropriate setting of the project umask.
  2035. XThis umask is used by all aegis actions,
  2036. Xassuring appropriate default behaviour.
  2037. X.LP
  2038. XA second aspect of security is to ensure that developers are unable to deliberately deceive aegis.
  2039. XAt develop end,
  2040. Xall files in the development directory are marked read only,
  2041. Xaegis notes the time stamps on the files.
  2042. XShould the files be tampered with at any later date,
  2043. Xaegis will notice.
  2044. XIf a change is returned to the
  2045. X.I "being developed"
  2046. Xstate,
  2047. Xthe files are marked writable again.
  2048. X.nh 2 "Scalability"
  2049. X.LP
  2050. XHow big can a project get before aegis chokes?
  2051. XThere are a huge number of variables in this question.
  2052. X.LP
  2053. XThe most obvious bottleneck is the integrator.
  2054. XAn artificial "average" example:
  2055. XAssume that the average integration takes an hour to build and test.
  2056. XA full-time integrator could be expected to get 7 or 8 of these done per day
  2057. X(this was the observed average on one project the author was involved in).
  2058. XAssume that the average time for a developer to develop a change is two weeks;
  2059. Xa figure recommended by many text books
  2060. Xas "the most you can afford to throw away".
  2061. XThese two assumptions mean that for this "average" project
  2062. Xaegis can cope with 70 to 80 developers,
  2063. Xbefore integrations become a bottleneck.
  2064. X.LP
  2065. XThe more serious bottle neck is the dependency maintenance tool.
  2066. XSeventy developers can churn out a staggering volume of code.
  2067. XIt takes a very long time to wade through the file times and the rules,
  2068. Xjust to find the one or two files which changed.
  2069. XThis can easily push the integrate build time
  2070. Xpast the one hour mark.
  2071. XDevelopers also become very vocal when build times are this long.
  2072. END_OF_FILE
  2073. if test 3106 -ne `wc -c <'doc/c7.5.so'`; then
  2074.     echo shar: \"'doc/c7.5.so'\" unpacked with wrong size!
  2075. fi
  2076. # end of 'doc/c7.5.so'
  2077. fi
  2078. if test -f 'doc/c8.1.so' -a "${1}" != "-c" ; then 
  2079.   echo shar: Will not clobber existing file \"'doc/c8.1.so'\"
  2080. else
  2081. echo shar: Extracting \"'doc/c8.1.so'\" \(3026 characters\)
  2082. sed "s/^X//" >'doc/c8.1.so' <<'END_OF_FILE'
  2083. X.\"
  2084. X.\"    aegis - project change supervisor
  2085. X.\"    Copyright (C) 1993 Peter Miller.
  2086. X.\"    All rights reserved.
  2087. X.\"
  2088. X.\"    This program is free software; you can redistribute it and/or modify
  2089. X.\"    it under the terms of the GNU General Public License as published by
  2090. X.\"    the Free Software Foundation; either version 2 of the License, or
  2091. X.\"    (at your option) any later version.
  2092. X.\"
  2093. X.\"    This program is distributed in the hope that it will be useful,
  2094. X.\"    but WITHOUT ANY WARRANTY; without even the implied warranty of
  2095. X.\"    MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
  2096. X.\"    GNU General Public License for more details.
  2097. X.\"
  2098. X.\"    You should have received a copy of the GNU General Public License
  2099. X.\"    along with this program; if not, write to the Free Software
  2100. X.\"    Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.
  2101. X.\"
  2102. X.\" MANIFEST: User Guide, The Difference Tools, Interfacing
  2103. X.\"
  2104. X.nh 2 "Interfacing"
  2105. X.LP
  2106. XThe build commands are accessed from two fields of the
  2107. Xproject configuration file (\fIconfig\fP).
  2108. X.nh 3 "diff_command"
  2109. X.LP
  2110. XThis command is used by
  2111. X.I aed (1)
  2112. Xto produce a difference listing when file in the development directory
  2113. Xwas originally copied from the current version in the baseline\**.
  2114. X.FS
  2115. XOr this is logically the case.
  2116. X.FE
  2117. X.LP
  2118. XAll of the command substitutions described in
  2119. X.I aesub (5)
  2120. Xare available.
  2121. XIn addition, the following substitutions are also available:
  2122. X.IP ${ORiginal}
  2123. XThe absolute path name of a file containing the version originally copied.
  2124. XUsually in the baseline.
  2125. X.IP ${Input}
  2126. XThe absolute path name of the edited version of the file.
  2127. XUsually in the development directory.
  2128. X.IP ${Output}
  2129. XThe absolute path name of the file in which to write the difference listing.
  2130. XUsually in the development directory.
  2131. X.LP
  2132. XAn exit status of 0 means successful,
  2133. Xeven of the files differ (and they usually do).
  2134. XAn exit status which is non-zero means something is wrong.
  2135. X.LP
  2136. XThe non-zero exit status may be used to overload this command
  2137. Xwith extra tests,
  2138. Xsuch as line length limits.
  2139. XThe difference files must be produced in addition to these extra tests.
  2140. X.nh 3 "diff3_command"
  2141. X.LP
  2142. XThis command is used by
  2143. X.I aed (1)
  2144. Xto produce a difference listing when file in the development directory
  2145. Xis out of date compared to the current version in the baseline.
  2146. X.LP
  2147. XAll of the command substitutions described in
  2148. X.I aesub (5)
  2149. Xare available.
  2150. XIn addition, the following substitutions are also available:
  2151. X.IP ${ORiginal}
  2152. XThe absolute path name of a file containing the version originally copied.
  2153. XUsually in a temporary file.
  2154. X.IP ${Most_Recent}
  2155. XThe absolute path name of a file containing the most recent version.
  2156. XUsually in the baseline.
  2157. X.IP ${Input}
  2158. XThe absolute path name of the edited version of the file.
  2159. XUsually in the development directory.
  2160. X.IP ${Output}
  2161. XThe absolute path name of the file in which to write the difference listing.
  2162. XUsually in the development directory.
  2163. X.LP
  2164. XAn exit status of 0 means successful,
  2165. Xeven of the files differ (and they usually do).
  2166. XAn exit status which is non-zero means something is wrong.
  2167. END_OF_FILE
  2168. if test 3026 -ne `wc -c <'doc/c8.1.so'`; then
  2169.     echo shar: \"'doc/c8.1.so'\" unpacked with wrong size!
  2170. fi
  2171. # end of 'doc/c8.1.so'
  2172. fi
  2173. if test -f 'doc/c8.2.so' -a "${1}" != "-c" ; then 
  2174.   echo shar: Will not clobber existing file \"'doc/c8.2.so'\"
  2175. else
  2176. echo shar: Extracting \"'doc/c8.2.so'\" \(2724 characters\)
  2177. sed "s/^X//" >'doc/c8.2.so' <<'END_OF_FILE'
  2178. X.\"
  2179. X.\"    aegis - project change supervisor
  2180. X.\"    Copyright (C) 1993 Peter Miller.
  2181. X.\"    All rights reserved.
  2182. X.\"
  2183. X.\"    This program is free software; you can redistribute it and/or modify
  2184. X.\"    it under the terms of the GNU General Public License as published by
  2185. X.\"    the Free Software Foundation; either version 2 of the License, or
  2186. X.\"    (at your option) any later version.
  2187. X.\"
  2188. X.\"    This program is distributed in the hope that it will be useful,
  2189. X.\"    but WITHOUT ANY WARRANTY; without even the implied warranty of
  2190. X.\"    MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
  2191. X.\"    GNU General Public License for more details.
  2192. X.\"
  2193. X.\"    You should have received a copy of the GNU General Public License
  2194. X.\"    along with this program; if not, write to the Free Software
  2195. X.\"    Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.
  2196. X.\"
  2197. X.\" MANIFEST: User Guide, The Difference Tools, Using diff and diff3
  2198. X.\"
  2199. X.bp
  2200. X.nh 2 "Using diff and diff3"
  2201. X.LP
  2202. XThese two tools are available with most flavours of UNIX,
  2203. Xbut often in a very limited form.
  2204. XOne severe limitation is the
  2205. X.I diff3 (1)
  2206. Xcommand,
  2207. Xwhich often can only cope with 200 lines of differences.
  2208. XThe best alternative is to use GNU diff,
  2209. Xwith context differences available,
  2210. Xand a far more robust diff3.
  2211. X.nh 3 "diff_command"
  2212. X.LP
  2213. XSee the earlier
  2214. X.I Interfacing
  2215. Xsection for substitution details.
  2216. X.LP
  2217. XThe entry in the
  2218. X.I config
  2219. Xfile looks like this:
  2220. X.E(
  2221. Xdiff_command =
  2222. X        "set +e; diff -c $original $input > $output; test $? -le 1";
  2223. X.E)
  2224. X.LP
  2225. XThis needs a little explanation:
  2226. X.br
  2227. X\(bu
  2228. XThis command is always executed with the shell's
  2229. X.B -e
  2230. Xoption enabled,
  2231. Xcausing the shell to exit on the first error.
  2232. XThe "set +e" turns this off.
  2233. X.br
  2234. X\(bu
  2235. XThe
  2236. X.I diff (1)
  2237. Xcommand exits with a status of 0 if the files are identical,
  2238. Xand a status of 1 if they differ.
  2239. XAny other status means something horrible happened.
  2240. XThe "test" command is used to change this to the exit status aegis expects.
  2241. X.nh 3 "diff3_command"
  2242. X.LP
  2243. XSee the earlier
  2244. X.I Interfacing
  2245. Xsection for substitution details.
  2246. X.LP
  2247. XThe entry in the
  2248. X.I config
  2249. Xfile looks like this:
  2250. X.E(
  2251. Xdiff3_command =
  2252. X        "(diff3 -e $MostRecent $original $input | \e
  2253. X        sed -e '/^w$$/d' -e '/^q$$/d'; echo '1,$$p' ) | \e
  2254. X        ed - $MostRecent > $output";
  2255. X.E)
  2256. X.LP
  2257. XThis needs a lot of explanation.
  2258. X.br
  2259. X\(bu
  2260. XThe
  2261. X.I diff3 (1)
  2262. Xcommand is used to produce an edit script that will
  2263. Xincorporate into $MostRecent,
  2264. Xall the changes between $original and $input.
  2265. X.br
  2266. X\(bu
  2267. XThe
  2268. X.I sed (1)
  2269. Xcommand is used to remove the "write" and "quit" commands
  2270. Xfrom the generated edit script.
  2271. X.br
  2272. X\(bu
  2273. XThe
  2274. X.I ed (1)
  2275. Xcommand is used to apply the generated edit script to
  2276. Xthe $MostRecent file,
  2277. Xand print the results on the standard output,
  2278. Xwhich are redirected into the $output file.
  2279. END_OF_FILE
  2280. if test 2724 -ne `wc -c <'doc/c8.2.so'`; then
  2281.     echo shar: \"'doc/c8.2.so'\" unpacked with wrong size!
  2282. fi
  2283. # end of 'doc/c8.2.so'
  2284. fi
  2285. if test -f 'fmtgen/type.h' -a "${1}" != "-c" ; then 
  2286.   echo shar: Will not clobber existing file \"'fmtgen/type.h'\"
  2287. else
  2288. echo shar: Extracting \"'fmtgen/type.h'\" \(2345 characters\)
  2289. sed "s/^X//" >'fmtgen/type.h' <<'END_OF_FILE'
  2290. X/*
  2291. X *    aegis - project change supervisor
  2292. X *    Copyright (C) 1991, 1992, 1993 Peter Miller.
  2293. X *    All rights reserved.
  2294. X *
  2295. X *    This program is free software; you can redistribute it and/or modify
  2296. X *    it under the terms of the GNU General Public License as published by
  2297. X *    the Free Software Foundation; either version 2 of the License, or
  2298. X *    (at your option) any later version.
  2299. X *
  2300. X *    This program is distributed in the hope that it will be useful,
  2301. X *    but WITHOUT ANY WARRANTY; without even the implied warranty of
  2302. X *    MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
  2303. X *    GNU General Public License for more details.
  2304. X *
  2305. X *    You should have received a copy of the GNU General Public License
  2306. X *    along with this program; if not, write to the Free Software
  2307. X *    Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.
  2308. X *
  2309. X * MANIFEST: interface definition for fmtgen/type.c
  2310. X */
  2311. X
  2312. X#ifndef TYPE_H
  2313. X#define TYPE_H
  2314. X
  2315. X#include <main.h>
  2316. X#include <lex.h>
  2317. X#include <str.h>
  2318. X
  2319. Xenum type_class_ty
  2320. X{
  2321. X    type_class_enum,
  2322. X    type_class_integer,
  2323. X    type_class_list,
  2324. X    type_class_string,
  2325. X    type_class_struct,
  2326. X    type_class_ref
  2327. X};
  2328. Xtypedef enum type_class_ty type_class_ty;
  2329. X
  2330. X#define TYPE_T \
  2331. X    type_class_ty    class; \
  2332. X    struct type_method_ty *method; \
  2333. X    string_ty    *name; \
  2334. X    int        included_flag;
  2335. X
  2336. Xtypedef struct type_ty type_ty;
  2337. Xstruct type_ty
  2338. X{
  2339. X    TYPE_T
  2340. X};
  2341. X
  2342. Xtypedef struct type_method_ty type_method_ty;
  2343. Xstruct type_method_ty
  2344. X{
  2345. X    void (*gen_include)_((type_ty *, string_ty *));
  2346. X    void (*gen_include_declarator)_((type_ty *, string_ty *, int));
  2347. X    void (*gen_code)_((type_ty *, string_ty *));
  2348. X    void (*gen_code_declarator)_((type_ty *, string_ty *, int));
  2349. X    void (*gen_free_declarator)_((type_ty *, string_ty *, int));
  2350. X};
  2351. X
  2352. Xvoid type_gen_include _((type_ty *, string_ty *));
  2353. Xvoid type_gen_include_declarator _((type_ty *, string_ty *, int));
  2354. Xvoid type_gen_code _((type_ty *, string_ty *));
  2355. Xvoid type_gen_code_declarator _((type_ty *, string_ty *, int));
  2356. Xvoid type_gen_free_declarator _((type_ty *, string_ty *, int));
  2357. Xtype_ty *type_create_string _((void));
  2358. Xtype_ty *type_create_integer _((void));
  2359. Xtype_ty *type_create_ref _((string_ty *name, string_ty *ref));
  2360. Xtype_ty *type_create_list _((string_ty *name, type_ty *subtype));
  2361. Xtype_ty *type_create_struct _((string_ty *name, parse_list_ty *contents, int n));
  2362. Xtype_ty *type_create_enum _((string_ty *name, parse_list_ty *plp));
  2363. X
  2364. X#endif /* TYPE_H */
  2365. END_OF_FILE
  2366. if test 2345 -ne `wc -c <'fmtgen/type.h'`; then
  2367.     echo shar: \"'fmtgen/type.h'\" unpacked with wrong size!
  2368. fi
  2369. # end of 'fmtgen/type.h'
  2370. fi
  2371. if test -f 'fmtgen/type_integ.c' -a "${1}" != "-c" ; then 
  2372.   echo shar: Will not clobber existing file \"'fmtgen/type_integ.c'\"
  2373. else
  2374. echo shar: Extracting \"'fmtgen/type_integ.c'\" \(2173 characters\)
  2375. sed "s/^X//" >'fmtgen/type_integ.c' <<'END_OF_FILE'
  2376. X/*
  2377. X *    aegis - project change supervisor
  2378. X *    Copyright (C) 1991, 1992, 1993 Peter Miller.
  2379. X *    All rights reserved.
  2380. X *
  2381. X *    This program is free software; you can redistribute it and/or modify
  2382. X *    it under the terms of the GNU General Public License as published by
  2383. X *    the Free Software Foundation; either version 2 of the License, or
  2384. X *    (at your option) any later version.
  2385. X *
  2386. X *    This program is distributed in the hope that it will be useful,
  2387. X *    but WITHOUT ANY WARRANTY; without even the implied warranty of
  2388. X *    MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
  2389. X *    GNU General Public License for more details.
  2390. X *
  2391. X *    You should have received a copy of the GNU General Public License
  2392. X *    along with this program; if not, write to the Free Software
  2393. X *    Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.
  2394. X *
  2395. X * MANIFEST: functions to manipulate integer type
  2396. X */
  2397. X
  2398. X#include <type.h>
  2399. X#include <indent.h>
  2400. X#include <mem.h>
  2401. X
  2402. X
  2403. Xstatic void gen_include_declarator _((type_ty *, string_ty *, int));
  2404. X
  2405. Xstatic void
  2406. Xgen_include_declarator(type, name, is_a_list)
  2407. X    type_ty        *type;
  2408. X    string_ty    *name;
  2409. X    int        is_a_list;
  2410. X{
  2411. X    char        *deref;
  2412. X
  2413. X    deref = (is_a_list ? "*" : "");
  2414. X    indent_printf("%s\1%s%s;\n", "long", deref, name->str_text);
  2415. X}
  2416. X
  2417. X
  2418. Xstatic void gen_code_declarator _((type_ty *, string_ty *, int));
  2419. X
  2420. Xstatic void
  2421. Xgen_code_declarator(type, name, is_a_list)
  2422. X    type_ty        *type;
  2423. X    string_ty    *name;
  2424. X    int        is_a_list;
  2425. X{
  2426. X    indent_printf("integer_write("/*)*/);
  2427. X    if (is_a_list)
  2428. X        indent_printf("(char *)0");
  2429. X    else
  2430. X        indent_printf("\"%s\"", name->str_text);
  2431. X    indent_printf(/*(*/", this->%s);\n", name->str_text);
  2432. X}
  2433. X
  2434. X
  2435. Xstatic void gen_free_declarator _((type_ty *, string_ty *, int));
  2436. X
  2437. Xstatic void
  2438. Xgen_free_declarator(type, name, is_a_list)
  2439. X    type_ty        *type;
  2440. X    string_ty    *name;
  2441. X    int        is_a_list;
  2442. X{
  2443. X    if (is_a_list)
  2444. X        indent_printf(";\n");
  2445. X}
  2446. X
  2447. X
  2448. Xstatic type_method_ty method =
  2449. X{
  2450. X    0, /* gen_include */
  2451. X    gen_include_declarator,
  2452. X    0, /* gen_code */
  2453. X    gen_code_declarator,
  2454. X    gen_free_declarator,
  2455. X};
  2456. X
  2457. X
  2458. Xtype_ty *
  2459. Xtype_create_integer()
  2460. X{
  2461. X    type_ty        *type;
  2462. X
  2463. X    type = (type_ty *)mem_alloc(sizeof(type_ty));
  2464. X    type->class = type_class_integer;
  2465. X    type->method = &method;
  2466. X    type->name = str_from_c("integer");
  2467. X    return type;
  2468. X}
  2469. END_OF_FILE
  2470. if test 2173 -ne `wc -c <'fmtgen/type_integ.c'`; then
  2471.     echo shar: \"'fmtgen/type_integ.c'\" unpacked with wrong size!
  2472. fi
  2473. # end of 'fmtgen/type_integ.c'
  2474. fi
  2475. if test -f 'fmtgen/type_ref.c' -a "${1}" != "-c" ; then 
  2476.   echo shar: Will not clobber existing file \"'fmtgen/type_ref.c'\"
  2477. else
  2478. echo shar: Extracting \"'fmtgen/type_ref.c'\" \(2877 characters\)
  2479. sed "s/^X//" >'fmtgen/type_ref.c' <<'END_OF_FILE'
  2480. X/*
  2481. X *    aegis - project change supervisor
  2482. X *    Copyright (C) 1991, 1992, 1993 Peter Miller.
  2483. X *    All rights reserved.
  2484. X *
  2485. X *    This program is free software; you can redistribute it and/or modify
  2486. X *    it under the terms of the GNU General Public License as published by
  2487. X *    the Free Software Foundation; either version 2 of the License, or
  2488. X *    (at your option) any later version.
  2489. X *
  2490. X *    This program is distributed in the hope that it will be useful,
  2491. X *    but WITHOUT ANY WARRANTY; without even the implied warranty of
  2492. X *    MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
  2493. X *    GNU General Public License for more details.
  2494. X *
  2495. X *    You should have received a copy of the GNU General Public License
  2496. X *    along with this program; if not, write to the Free Software
  2497. X *    Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.
  2498. X *
  2499. X * MANIFEST: functions to manipulate reference types
  2500. X */
  2501. X
  2502. X#include <type.h>
  2503. X#include <indent.h>
  2504. X#include <mem.h>
  2505. X#include <id.h>
  2506. X#include <error.h>
  2507. X
  2508. X
  2509. Xtypedef struct type_ref_ty type_ref_ty;
  2510. Xstruct type_ref_ty
  2511. X{
  2512. X    /* inherited */
  2513. X    TYPE_T
  2514. X
  2515. X    /* instance variables */
  2516. X    string_ty    *ref;
  2517. X};
  2518. X
  2519. X
  2520. Xstatic void gen_include_declarator _((type_ty *, string_ty *, int));
  2521. X
  2522. Xstatic void
  2523. Xgen_include_declarator(type, name, is_a_list)
  2524. X    type_ty        *type;
  2525. X    string_ty    *name;
  2526. X    int        is_a_list;
  2527. X{
  2528. X    type_ref_ty    *type2;
  2529. X    type_ty        *tp;
  2530. X
  2531. X    type2 = (type_ref_ty *)type;
  2532. X    if (!id_search(type2->ref, ID_CLASS_TYPE, (long *)&tp))
  2533. X        fatal("type \"%s\" vanished", type2->ref->str_text);
  2534. X    type_gen_include_declarator(tp, name, is_a_list);
  2535. X}
  2536. X
  2537. X
  2538. Xstatic void gen_code_declarator _((type_ty *, string_ty *, int));
  2539. X
  2540. Xstatic void
  2541. Xgen_code_declarator(type, name, is_a_list)
  2542. X    type_ty        *type;
  2543. X    string_ty    *name;
  2544. X    int        is_a_list;
  2545. X{
  2546. X    type_ref_ty    *type2;
  2547. X    type_ty        *tp;
  2548. X
  2549. X    type2 = (type_ref_ty *)type;
  2550. X    if (!id_search(type2->ref, ID_CLASS_TYPE, (long *)&tp))
  2551. X        fatal("type \"%s\" vanished", type2->ref->str_text);
  2552. X    type_gen_code_declarator(tp, name, is_a_list);
  2553. X}
  2554. X
  2555. X
  2556. Xstatic void gen_free_declarator _((type_ty *, string_ty *, int));
  2557. X
  2558. Xstatic void
  2559. Xgen_free_declarator(type, name, is_a_list)
  2560. X    type_ty        *type;
  2561. X    string_ty    *name;
  2562. X    int        is_a_list;
  2563. X{
  2564. X    type_ref_ty    *type2;
  2565. X    type_ty        *tp;
  2566. X
  2567. X    type2 = (type_ref_ty *)type;
  2568. X    if (!id_search(type2->ref, ID_CLASS_TYPE, (long *)&tp))
  2569. X        fatal("type \"%s\" vanished", type2->ref->str_text);
  2570. X    type_gen_free_declarator(tp, name, is_a_list);
  2571. X}
  2572. X
  2573. X
  2574. Xstatic type_method_ty method =
  2575. X{
  2576. X    0, /* gen_include */
  2577. X    gen_include_declarator,
  2578. X    0, /* gen_code */
  2579. X    gen_code_declarator,
  2580. X    gen_free_declarator,
  2581. X};
  2582. X
  2583. X
  2584. Xtype_ty *
  2585. Xtype_create_ref(name, ref)
  2586. X    string_ty    *name;
  2587. X    string_ty    *ref;
  2588. X{
  2589. X    type_ref_ty    *type;
  2590. X    type_ty        *tp;
  2591. X
  2592. X    if (id_search(ref, ID_CLASS_TYPE, (long *)&tp))
  2593. X        id_assign(name, ID_CLASS_TYPE, (long)tp);
  2594. X    type = (type_ref_ty *)mem_alloc(sizeof(type_ref_ty));
  2595. X    type->class = type_class_ref;
  2596. X    type->method = &method;
  2597. X    type->name = str_copy(name);
  2598. X    type->ref = str_copy(ref);
  2599. X    return (type_ty *)type;
  2600. X}
  2601. END_OF_FILE
  2602. if test 2877 -ne `wc -c <'fmtgen/type_ref.c'`; then
  2603.     echo shar: \"'fmtgen/type_ref.c'\" unpacked with wrong size!
  2604. fi
  2605. # end of 'fmtgen/type_ref.c'
  2606. fi
  2607. if test -f 'fmtgen/type_strin.c' -a "${1}" != "-c" ; then 
  2608.   echo shar: Will not clobber existing file \"'fmtgen/type_strin.c'\"
  2609. else
  2610. echo shar: Extracting \"'fmtgen/type_strin.c'\" \(2191 characters\)
  2611. sed "s/^X//" >'fmtgen/type_strin.c' <<'END_OF_FILE'
  2612. X/*
  2613. X *    aegis - project change supervisor
  2614. X *    Copyright (C) 1991, 1992, 1993 Peter Miller.
  2615. X *    All rights reserved.
  2616. X *
  2617. X *    This program is free software; you can redistribute it and/or modify
  2618. X *    it under the terms of the GNU General Public License as published by
  2619. X *    the Free Software Foundation; either version 2 of the License, or
  2620. X *    (at your option) any later version.
  2621. X *
  2622. X *    This program is distributed in the hope that it will be useful,
  2623. X *    but WITHOUT ANY WARRANTY; without even the implied warranty of
  2624. X *    MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
  2625. X *    GNU General Public License for more details.
  2626. X *
  2627. X *    You should have received a copy of the GNU General Public License
  2628. X *    along with this program; if not, write to the Free Software
  2629. X *    Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.
  2630. X *
  2631. X * MANIFEST: functions to manipluate string type
  2632. X */
  2633. X
  2634. X#include <type.h>
  2635. X#include <indent.h>
  2636. X#include <mem.h>
  2637. X
  2638. X
  2639. Xstatic void gen_include_declarator _((type_ty *, string_ty *, int));
  2640. X
  2641. Xstatic void
  2642. Xgen_include_declarator(type, name, is_a_list)
  2643. X    type_ty        *type;
  2644. X    string_ty    *name;
  2645. X    int        is_a_list;
  2646. X{
  2647. X    char        *deref;
  2648. X
  2649. X    deref = (is_a_list ? "*" : "");
  2650. X    indent_printf("%s\1%s*%s;\n", "string_ty", deref, name->str_text);
  2651. X}
  2652. X
  2653. X
  2654. Xstatic void gen_code_declarator _((type_ty *, string_ty *, int));
  2655. X
  2656. Xstatic void
  2657. Xgen_code_declarator(type, name, is_a_list)
  2658. X    string_ty    *name;
  2659. X    type_ty        *type;
  2660. X    int        is_a_list;
  2661. X{
  2662. X    indent_printf("string_write("/*)*/);
  2663. X    if (is_a_list)
  2664. X        indent_printf("(char *)0");
  2665. X    else
  2666. X        indent_printf("\"%s\"", name->str_text);
  2667. X    indent_printf(/*(*/", this->%s);\n", name->str_text);
  2668. X}
  2669. X
  2670. X
  2671. Xstatic void gen_free_declarator _((type_ty *, string_ty *, int));
  2672. X
  2673. Xstatic void
  2674. Xgen_free_declarator(type, name, is_a_list)
  2675. X    string_ty    *name;
  2676. X    type_ty        *type;
  2677. X    int        is_a_list;
  2678. X{
  2679. X    indent_printf("str_free(this->%s);\n", name->str_text);
  2680. X}
  2681. X
  2682. X
  2683. Xstatic type_method_ty method =
  2684. X{
  2685. X    0, /* gen_include */
  2686. X    gen_include_declarator,
  2687. X    0, /* gen_code */
  2688. X    gen_code_declarator,
  2689. X    gen_free_declarator,
  2690. X};
  2691. X
  2692. X
  2693. Xtype_ty *
  2694. Xtype_create_string()
  2695. X{
  2696. X    type_ty        *type;
  2697. X
  2698. X    type = (type_ty *)mem_alloc(sizeof(type_ty));
  2699. X    type->class = type_class_string;
  2700. X    type->method = &method;
  2701. X    type->name = str_from_c("string");
  2702. X    return type;
  2703. X}
  2704. END_OF_FILE
  2705. if test 2191 -ne `wc -c <'fmtgen/type_strin.c'`; then
  2706.     echo shar: \"'fmtgen/type_strin.c'\" unpacked with wrong size!
  2707. fi
  2708. # end of 'fmtgen/type_strin.c'
  2709. fi
  2710. if test -f 'lib/aegis.icon' -a "${1}" != "-c" ; then 
  2711.   echo shar: Will not clobber existing file \"'lib/aegis.icon'\"
  2712. else
  2713. echo shar: Extracting \"'lib/aegis.icon'\" \(2695 characters\)
  2714. sed "s/^X//" >'lib/aegis.icon' <<'END_OF_FILE'
  2715. X#define width 64
  2716. X#define height 64
  2717. X
  2718. Xstatic unsigned char bits[] = {
  2719. X0x00,0x00,0x00,0xFC,0x1F,0x00,0x00,0x00,
  2720. X0x00,0x00,0xC0,0x07,0xE0,0x03,0x00,0x00,
  2721. X0x00,0x00,0x30,0x50,0x15,0x0E,0x00,0x00,
  2722. X0x00,0x00,0x4E,0x05,0x40,0x71,0x00,0x00,
  2723. X0x00,0x00,0x13,0xA8,0x0A,0xCA,0x00,0x00,
  2724. X0x00,0xC0,0x80,0x02,0xA0,0x10,0x03,0x00,
  2725. X0x00,0x60,0x2A,0x54,0x8B,0xA2,0x06,0x00,
  2726. X0x00,0x98,0x00,0x21,0x52,0x14,0x18,0x00,
  2727. X0x00,0x0C,0xAA,0x44,0x05,0xA1,0x32,0x00,
  2728. X0x00,0x46,0x01,0x28,0xAC,0x14,0x49,0x00,
  2729. X0x00,0x11,0x54,0xA1,0x17,0x22,0xD2,0x00,
  2730. X0x00,0x85,0x02,0xAA,0x46,0x89,0x94,0x00,
  2731. X0x80,0x50,0x54,0xC0,0x0B,0x24,0xA1,0x01,
  2732. X0xC0,0x0A,0x81,0x2A,0xA0,0x92,0x14,0x03,
  2733. X0x20,0x20,0x2A,0x84,0x4A,0x48,0x22,0x06,
  2734. X0x30,0x95,0x41,0x51,0x90,0x92,0x4C,0x05,
  2735. X0x90,0x40,0x15,0x82,0x22,0x44,0x98,0x0C,
  2736. X0x28,0x94,0x42,0x29,0x89,0x22,0x35,0x0A,
  2737. X0x88,0x48,0x0B,0x92,0x24,0x54,0x9C,0x18,
  2738. X0x28,0xAA,0xA3,0x24,0x91,0x82,0x36,0x35,
  2739. X0x44,0xF0,0x09,0x81,0x24,0x54,0x4F,0x12,
  2740. X0x14,0x05,0x52,0x54,0x48,0x89,0x24,0x29,
  2741. X0x22,0xA8,0x88,0x82,0x22,0x52,0x92,0x74,
  2742. X0x4A,0x05,0x44,0x50,0x14,0x09,0x49,0x42,
  2743. X0x02,0xA8,0x92,0x8A,0xA0,0xA4,0x24,0x69,
  2744. X0x56,0x45,0x20,0x21,0x15,0x11,0x91,0x54,
  2745. X0x01,0x10,0x15,0x4A,0x48,0x4A,0x4A,0xA2,
  2746. X0xAA,0x4A,0x42,0x91,0x92,0x90,0x90,0xD4,
  2747. X0x01,0x21,0x09,0x22,0x22,0x45,0x4A,0xA2,
  2748. X0xAB,0x48,0xA4,0x94,0x8A,0x28,0x91,0x94,
  2749. X0x01,0x85,0x48,0x22,0x26,0x41,0x4A,0xD2,
  2750. X0x55,0x28,0x12,0x91,0x4C,0x2A,0x91,0xA4,
  2751. X0x41,0x41,0x49,0x24,0x17,0x49,0x22,0xC9,
  2752. X0x15,0x2A,0x90,0x52,0x4D,0x92,0x94,0xA4,
  2753. X0xA1,0x94,0x42,0xE4,0x27,0x49,0xA2,0xAA,
  2754. X0x17,0x28,0x29,0x09,0x41,0x12,0x49,0xC5,
  2755. X0xA1,0x52,0x84,0x24,0x2A,0xA1,0x84,0xA9,
  2756. X0x12,0x39,0x29,0x49,0x11,0x4A,0x54,0x57,
  2757. X0xCA,0x56,0x42,0x24,0x4A,0x91,0xEA,0xD1,
  2758. X0x12,0x9E,0x28,0x09,0x41,0x24,0xB1,0x6B,
  2759. X0x46,0x25,0x85,0x50,0x2A,0x49,0xCA,0x48,
  2760. X0x24,0x48,0x20,0x25,0x49,0x92,0x24,0x65,
  2761. X0x94,0x22,0x95,0x48,0x22,0x49,0x92,0x34,
  2762. X0x4C,0x14,0x49,0x12,0x49,0x92,0x24,0x29,
  2763. X0x88,0xA0,0x24,0x49,0x92,0x24,0x49,0x1A,
  2764. X0x28,0x15,0x42,0x92,0x24,0x92,0x24,0x15,
  2765. X0x98,0x48,0x09,0x49,0x92,0x24,0xA9,0x0C,
  2766. X0x50,0x22,0x52,0x22,0x49,0x49,0x4A,0x0A,
  2767. X0x20,0x49,0x24,0x89,0x24,0x92,0x90,0x06,
  2768. X0x60,0x92,0x92,0x24,0x91,0x2A,0x55,0x05,
  2769. X0xC0,0x44,0x44,0x49,0x4A,0x54,0x92,0x02,
  2770. X0x80,0x29,0x29,0x27,0x91,0x18,0x49,0x03,
  2771. X0x00,0x41,0x42,0x49,0x4A,0xBA,0xAA,0x01,
  2772. X0x00,0x2B,0xB9,0x27,0xA1,0x5A,0xD2,0x00,
  2773. X0x00,0x96,0xE4,0x91,0x8A,0x9F,0x74,0x00,
  2774. X0x00,0x2C,0xA9,0x4A,0x50,0x4C,0x15,0x00,
  2775. X0x00,0x50,0x22,0xA4,0x4A,0x91,0x1A,0x00,
  2776. X0x00,0xB0,0x94,0x12,0x25,0x55,0x06,0x00,
  2777. X0x00,0xC0,0xA2,0xA4,0x48,0xAA,0x03,0x00,
  2778. X0x00,0x00,0x2B,0x49,0xAA,0xD2,0x00,0x00,
  2779. X0x00,0x00,0x4E,0x92,0x24,0x35,0x00,0x00,
  2780. X0x00,0x00,0xF0,0xAA,0x92,0x1E,0x00,0x00,
  2781. X0x00,0x00,0x80,0x57,0xED,0x01,0x00,0x00,
  2782. X0x00,0x00,0x00,0xF8,0x3F,0x00,0x00,0x00,
  2783. X};
  2784. END_OF_FILE
  2785. if test 2695 -ne `wc -c <'lib/aegis.icon'`; then
  2786.     echo shar: \"'lib/aegis.icon'\" unpacked with wrong size!
  2787. fi
  2788. # end of 'lib/aegis.icon'
  2789. fi
  2790. if test -f 'lib/aegis.mask' -a "${1}" != "-c" ; then 
  2791.   echo shar: Will not clobber existing file \"'lib/aegis.mask'\"
  2792. else
  2793. echo shar: Extracting \"'lib/aegis.mask'\" \(3278 characters\)
  2794. sed "s/^X//" >'lib/aegis.mask' <<'END_OF_FILE'
  2795. X#define aegis_width 64
  2796. X#define aegis_height 64
  2797. Xstatic char aegis_bits[] = {
  2798. X   0x00, 0x00, 0x00, 0xfc, 0x1f, 0x00, 0x00, 0x00, 0x00, 0x00, 0xc0, 0xff,
  2799. X   0xff, 0x03, 0x00, 0x00, 0x00, 0x00, 0xf0, 0xff, 0xff, 0x0f, 0x00, 0x00,
  2800. X   0x00, 0x00, 0xfe, 0xff, 0xff, 0x7f, 0x00, 0x00, 0x00, 0x00, 0xff, 0xff,
  2801. X   0xff, 0xff, 0x00, 0x00, 0x00, 0xc0, 0xff, 0xff, 0xff, 0xff, 0x03, 0x00,
  2802. X   0x00, 0xe0, 0xff, 0xff, 0xff, 0xff, 0x07, 0x00, 0x00, 0xf8, 0xff, 0xff,
  2803. X   0xff, 0xff, 0x1f, 0x00, 0x00, 0xfc, 0xff, 0xff, 0xff, 0xff, 0x3f, 0x00,
  2804. X   0x00, 0xfe, 0xff, 0xff, 0xff, 0xff, 0x7f, 0x00, 0x00, 0xff, 0xff, 0xff,
  2805. X   0xff, 0xff, 0xff, 0x00, 0x00, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0x00,
  2806. X   0x80, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0x01, 0xc0, 0xff, 0xff, 0xff,
  2807. X   0xff, 0xff, 0xff, 0x03, 0xe0, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0x07,
  2808. X   0xf0, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0x07, 0xf0, 0xff, 0xff, 0xff,
  2809. X   0xff, 0xff, 0xff, 0x0f, 0xf8, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0x0f,
  2810. X   0xf8, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0x1f, 0xf8, 0xff, 0xff, 0xff,
  2811. X   0xff, 0xff, 0xff, 0x3f, 0xfc, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0x3f,
  2812. X   0xfc, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0x3f, 0xfe, 0xff, 0xff, 0xff,
  2813. X   0xff, 0xff, 0xff, 0x7f, 0xfe, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0x7f,
  2814. X   0xfe, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0x7f, 0xfe, 0xff, 0xff, 0xff,
  2815. X   0xff, 0xff, 0xff, 0x7f, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff,
  2816. X   0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff,
  2817. X   0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff,
  2818. X   0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff,
  2819. X   0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff,
  2820. X   0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff,
  2821. X   0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff,
  2822. X   0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xfe, 0xff, 0xff, 0xff,
  2823. X   0xff, 0xff, 0xff, 0xff, 0xfe, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff,
  2824. X   0xfe, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0x7f, 0xfe, 0xff, 0xff, 0xff,
  2825. X   0xff, 0xff, 0xff, 0x7f, 0xfc, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0x7f,
  2826. X   0xfc, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0x3f, 0xfc, 0xff, 0xff, 0xff,
  2827. X   0xff, 0xff, 0xff, 0x3f, 0xf8, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0x1f,
  2828. X   0xf8, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0x1f, 0xf8, 0xff, 0xff, 0xff,
  2829. X   0xff, 0xff, 0xff, 0x0f, 0xf0, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0x0f,
  2830. X   0xe0, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0x07, 0xe0, 0xff, 0xff, 0xff,
  2831. X   0xff, 0xff, 0xff, 0x07, 0xc0, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0x03,
  2832. X   0x80, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0x03, 0x00, 0xff, 0xff, 0xff,
  2833. X   0xff, 0xff, 0xff, 0x01, 0x00, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0x00,
  2834. X   0x00, 0xfe, 0xff, 0xff, 0xff, 0xff, 0x7f, 0x00, 0x00, 0xfc, 0xff, 0xff,
  2835. X   0xff, 0xff, 0x1f, 0x00, 0x00, 0xf0, 0xff, 0xff, 0xff, 0xff, 0x1f, 0x00,
  2836. X   0x00, 0xf0, 0xff, 0xff, 0xff, 0xff, 0x07, 0x00, 0x00, 0xc0, 0xff, 0xff,
  2837. X   0xff, 0xff, 0x03, 0x00, 0x00, 0x00, 0xff, 0xff, 0xff, 0xff, 0x00, 0x00,
  2838. X   0x00, 0x00, 0xfe, 0xff, 0xff, 0x3f, 0x00, 0x00, 0x00, 0x00, 0xf0, 0xff,
  2839. X   0xff, 0x1f, 0x00, 0x00, 0x00, 0x00, 0x80, 0xff, 0xff, 0x01, 0x00, 0x00,
  2840. X   0x00, 0x00, 0x00, 0xf8, 0x3f, 0x00, 0x00, 0x00};
  2841. END_OF_FILE
  2842. if test 3278 -ne `wc -c <'lib/aegis.mask'`; then
  2843.     echo shar: \"'lib/aegis.mask'\" unpacked with wrong size!
  2844. fi
  2845. # end of 'lib/aegis.mask'
  2846. fi
  2847. if test -f 'lib/cshrc' -a "${1}" != "-c" ; then 
  2848.   echo shar: Will not clobber existing file \"'lib/cshrc'\"
  2849. else
  2850. echo shar: Extracting \"'lib/cshrc'\" \(2195 characters\)
  2851. sed "s/^X//" >'lib/cshrc' <<'END_OF_FILE'
  2852. X#
  2853. X#    aegis - project change supervisor
  2854. X#    Copyright (C) 1991, 1992, 1993 Peter Miller.
  2855. X#    All rights reserved.
  2856. X#
  2857. X#    This program is free software; you can redistribute it and/or modify
  2858. X#    it under the terms of the GNU General Public License as published by
  2859. X#    the Free Software Foundation; either version 2 of the License, or
  2860. X#    (at your option) any later version.
  2861. X#
  2862. X#    This program is distributed in the hope that it will be useful,
  2863. X#    but WITHOUT ANY WARRANTY; without even the implied warranty of
  2864. X#    MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
  2865. X#    GNU General Public License for more details.
  2866. X#
  2867. X#    You should have received a copy of the GNU General Public License
  2868. X#    along with this program; if not, write to the Free Software
  2869. X#    Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.
  2870. X#
  2871. X# MANIFEST: csh user config for aegis
  2872. X#
  2873. Xsetenv AEGIS $HOME/lib/aegis
  2874. Xalias    aea    'aegis -a \!* -v'
  2875. Xalias    aeb    'aegis -b \!* -v'
  2876. Xalias    aeca    'aegis -ca \!* -v'
  2877. Xalias    aecd    'cd `aegis -cd \!* -v`'
  2878. Xalias    aecp    'aegis -cp \!* -v'
  2879. Xalias    aecpu    'aegis -cpu \!* -v'
  2880. Xalias    aed    'aegis -diff \!* -v'
  2881. Xalias    aedb    'aegis -db \!* -v'
  2882. Xalias    aedbu    'aegis -dbu \!* -v'
  2883. Xalias    aede    'aegis -de \!* -v'
  2884. Xalias    aedeu    'aegis -deu \!* -v'
  2885. Xalias    aedless    'less `find . -name "*,D" -print | sort`'
  2886. Xalias    aedmore    'more `find . -name "*,D" -print | sort`'
  2887. Xalias    aega    'aegis -ga \!* -v'
  2888. Xalias    aeib    'aegis -ib \!* -v'
  2889. Xalias    aeibu    'aegis -ibu \!* -v'
  2890. Xalias    aeifail    'aegis -ifail \!* -v'
  2891. Xalias    aeipass    'aegis -ipass \!* -v'
  2892. Xalias    ael    'aegis -l \!* -v'
  2893. Xalias    aemv    'aegis -mv \!* -v'
  2894. Xalias    aena    'aegis -na \!* -v'
  2895. Xalias    aenc    'aegis -nc \!* -v'
  2896. Xalias    aend    'aegis -nd \!* -v'
  2897. Xalias    aenf    'aegis -nf \!* -v'
  2898. Xalias    aenfu    'aegis -nfu \!* -v'
  2899. Xalias    aeni    'aegis -ni \!* -v'
  2900. Xalias    aenpr    'aegis -npr \!* -v'
  2901. Xalias    aenrls    'aegis -nrls \!* -v'
  2902. Xalias    aenrv    'aegis -nrv \!* -v'
  2903. Xalias    aent    'aegis -nt \!* -v'
  2904. Xalias    aepa    'aegis -pa \!* -v'
  2905. Xalias    aera    'aegis -ra \!* -v'
  2906. Xalias    aerd    'aegis -rd \!* -v'
  2907. Xalias    aerfail    'aegis -rfail \!* -v'
  2908. Xalias    aeri    'aegis -ri \!* -v'
  2909. Xalias    aerm    'aegis -rm \!* -v'
  2910. Xalias    aermu    'aegis -rmu \!* -v'
  2911. Xalias    aerpass    'aegis -rpass \!* -v'
  2912. Xalias    aermpr    'aegis -rmpr \!* -v'
  2913. Xalias    aerrv    'aegis -rrv \!* -v'
  2914. Xalias    aet    'aegis -t \!* -v'
  2915. END_OF_FILE
  2916. if test 2195 -ne `wc -c <'lib/cshrc'`; then
  2917.     echo shar: \"'lib/cshrc'\" unpacked with wrong size!
  2918. fi
  2919. # end of 'lib/cshrc'
  2920. fi
  2921. if test -f 'lib/profile' -a "${1}" != "-c" ; then 
  2922.   echo shar: Will not clobber existing file \"'lib/profile'\"
  2923. else
  2924. echo shar: Extracting \"'lib/profile'\" \(2130 characters\)
  2925. sed "s/^X//" >'lib/profile' <<'END_OF_FILE'
  2926. X#
  2927. X#    aegis - project change supervisor
  2928. X#    Copyright (C) 1991, 1992, 1993 Peter Miller.
  2929. X#    All rights reserved.
  2930. X#
  2931. X#    This program is free software; you can redistribute it and/or modify
  2932. X#    it under the terms of the GNU General Public License as published by
  2933. X#    the Free Software Foundation; either version 2 of the License, or
  2934. X#    (at your option) any later version.
  2935. X#
  2936. X#    This program is distributed in the hope that it will be useful,
  2937. X#    but WITHOUT ANY WARRANTY; without even the implied warranty of
  2938. X#    MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
  2939. X#    GNU General Public License for more details.
  2940. X#
  2941. X#    You should have received a copy of the GNU General Public License
  2942. X#    along with this program; if not, write to the Free Software
  2943. X#    Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.
  2944. X#
  2945. X# MANIFEST: Bourne shell user config for aegis
  2946. X#
  2947. XAEGIS=$HOME/lib/aegis
  2948. Xexport AEGIS
  2949. Xaea()
  2950. X{
  2951. X    aegis -a $* -v
  2952. X}
  2953. Xaeb()
  2954. X{
  2955. X    aegis -b $* -v
  2956. X}
  2957. Xaeca()
  2958. X{
  2959. X    aegis -ca $* -v
  2960. X}
  2961. Xaecd()
  2962. X{
  2963. X    cd `aegis -cd $* -v`
  2964. X}
  2965. Xaecp()
  2966. X{
  2967. X    aegis -cp $* -v
  2968. X}
  2969. Xaecpu()
  2970. X{
  2971. X    aegis -cpu $* -v
  2972. X}
  2973. Xaed()
  2974. X{
  2975. X    aegis -diff $* -v
  2976. X}
  2977. Xaedb()
  2978. X{
  2979. X    aegis -db $* -v
  2980. X}
  2981. Xaedbu()
  2982. X{
  2983. X    aegis -dbu $* -v
  2984. X}
  2985. Xaede()
  2986. X{
  2987. X    aegis -de $* -v
  2988. X}
  2989. Xaedeu()
  2990. X{
  2991. X    aegis -deu $* -v
  2992. X}
  2993. Xaedless()
  2994. X{
  2995. X    less `find . -name "*,D" -print | sort`
  2996. X}
  2997. Xaedmore()
  2998. X{
  2999. X    more `find . -name "*,D" -print | sort`
  3000. X}
  3001. Xaega()
  3002. X{
  3003. X    aegis -ga $* -v
  3004. X}
  3005. Xaeib()
  3006. X{
  3007. X    aegis -ib $* -v
  3008. X}
  3009. Xaeibu()
  3010. X{
  3011. X    aegis -ibu $* -v
  3012. X}
  3013. Xaeifail()
  3014. X{
  3015. X    aegis -ifail $* -v
  3016. X}
  3017. Xaeipass()
  3018. X{
  3019. X    aegis -ipass $* -v
  3020. X}
  3021. Xael()
  3022. X{
  3023. X    aegis -l $* -v
  3024. X}
  3025. Xaemv()
  3026. X{
  3027. X    aegis -mv $* -v
  3028. X}
  3029. Xaena()
  3030. X{
  3031. X    aegis -na $* -v
  3032. X}
  3033. Xaenc()
  3034. X{
  3035. X    aegis -nc $* -v
  3036. X}
  3037. Xaend()
  3038. X{
  3039. X    aegis -nd $* -v
  3040. X}
  3041. Xaenf()
  3042. X{
  3043. X    aegis -nf $* -v
  3044. X}
  3045. Xaenfu()
  3046. X{
  3047. X    aegis -nfu $* -v
  3048. X}
  3049. Xaeni()
  3050. X{
  3051. X    aegis -ni $* -v
  3052. X}
  3053. Xaenpr()
  3054. X{
  3055. X    aegis -npr $* -v
  3056. X}
  3057. Xaenrls()
  3058. X{
  3059. X    aegis -nrls $* -v
  3060. X}
  3061. Xaenrv()
  3062. X{
  3063. X    aegis -nrv $* -v
  3064. X}
  3065. Xaent()
  3066. X{
  3067. X    aegis -nt $* -v
  3068. X}
  3069. Xaepa()
  3070. X{
  3071. X    aegis -pa $* -v
  3072. X}
  3073. Xaera()
  3074. X{
  3075. X    aegis -ra $* -v
  3076. X}
  3077. Xaerd()
  3078. X{
  3079. X    aegis -rd $* -v
  3080. X}
  3081. Xaerfail()
  3082. X{
  3083. X    aegis -rfail $* -v
  3084. X}
  3085. Xaeri()
  3086. X{
  3087. X    aegis -ri $* -v
  3088. X}
  3089. Xaerm()
  3090. X{
  3091. X    aegis -rm $* -v
  3092. X}
  3093. Xaermu()
  3094. X{
  3095. X    aegis -rmu $* -v
  3096. X}
  3097. Xaerpass()
  3098. X{
  3099. X    aegis -rpass $* -v
  3100. X}
  3101. Xaermpr()
  3102. X{
  3103. X    aegis -rmpr $* -v
  3104. X}
  3105. Xaerrv()
  3106. X{
  3107. X    aegis -rrv $* -v
  3108. X}
  3109. Xaet()
  3110. X{
  3111. X    aegis -t $* -v
  3112. X}
  3113. END_OF_FILE
  3114. if test 2130 -ne `wc -c <'lib/profile'`; then
  3115.     echo shar: \"'lib/profile'\" unpacked with wrong size!
  3116. fi
  3117. # end of 'lib/profile'
  3118. fi
  3119. if test -f 'man1/aeb.1' -a "${1}" != "-c" ; then 
  3120.   echo shar: Will not clobber existing file \"'man1/aeb.1'\"
  3121. else
  3122. echo shar: Extracting \"'man1/aeb.1'\" \(2569 characters\)
  3123. sed "s/^X//" >'man1/aeb.1' <<'END_OF_FILE'
  3124. X'\" t
  3125. X.\"    aegis - project change supervisor
  3126. X.\"    Copyright (C) 1991, 1992, 1993 Peter Miller.
  3127. X.\"    All rights reserved.
  3128. X.\"
  3129. X.\"    This program is free software; you can redistribute it and/or modify
  3130. X.\"    it under the terms of the GNU General Public License as published by
  3131. X.\"    the Free Software Foundation; either version 2 of the License, or
  3132. X.\"    (at your option) any later version.
  3133. X.\"
  3134. X.\"    This program is distributed in the hope that it will be useful,
  3135. X.\"    but WITHOUT ANY WARRANTY; without even the implied warranty of
  3136. X.\"    MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
  3137. X.\"    GNU General Public License for more details.
  3138. X.\"
  3139. X.\"    You should have received a copy of the GNU General Public License
  3140. X.\"    along with this program; if not, write to the Free Software
  3141. X.\"    Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.
  3142. X.\"
  3143. X.\" MANIFEST: manual entry for 'aegis -Build' command
  3144. X.\"
  3145. X.so z_name.so
  3146. X.TH "\*(n) -Build" 1 \*(N)
  3147. X.SH NAME
  3148. X\*(n) -Build \- build a project
  3149. X.SH SYNOPSIS
  3150. X.B \*(n)
  3151. X.B -Build
  3152. X[
  3153. X.IR option ...
  3154. X]
  3155. X.br
  3156. X.B \*(n)
  3157. X.B -Build
  3158. X.B -List
  3159. X[
  3160. X.IR option ...
  3161. X]
  3162. X.br
  3163. X.B \*(n)
  3164. X.B -Build
  3165. X.B -Help
  3166. X.SH DESCRIPTION
  3167. XThe
  3168. X.I \*(n)
  3169. X.I -Build
  3170. Xcommand is used to
  3171. Xbuild a project.
  3172. XThe project configuration file is consulted for the appropriate build command,
  3173. Xand that command is executed
  3174. X(see 
  3175. X.IR aepconf (5)
  3176. Xfor more information.)
  3177. XOutput of the command is automatically logged to the
  3178. X.I \*(n).log
  3179. Xfile at the root of the development directory tree.
  3180. XThe build command will be executed with its current directory being
  3181. Xthe root of the development directory,
  3182. Xirrespective of there the
  3183. X.I "\*(n) -Build"
  3184. Xcommand was executed.
  3185. X.PP
  3186. XIf the change is in the
  3187. X.I "being integrated"
  3188. Xstate,
  3189. Xreferences to the development directory, above,
  3190. Xshould be read as the integration directory.
  3191. XIntegration build commands are executed with the user and group
  3192. Xset to the project's owing user and group.
  3193. XThat is,
  3194. Xit is not necessary for an integrator to log in as someone else,
  3195. Xthe project account for instance,
  3196. Xin order to do an integration.
  3197. X.so o_bld_lk.so
  3198. X.SH OPTIONS
  3199. XThe following options are understood:
  3200. X.so o_change.so
  3201. X.so o_help.so
  3202. X.so o_list.so
  3203. X.so o_nolog.so
  3204. X.so o_project.so
  3205. X.so o_terse.so
  3206. X.so o_verbose.so
  3207. X.so o__rules.so
  3208. X.SH RECOMMENDED ALIAS
  3209. XThe recommended alias for this command is
  3210. X.nf
  3211. X.ta 8n 16n
  3212. Xcsh%    alias aeb '\*(n) -b \e!* -v'
  3213. Xsh$    aeb(){\*(n) -b $* -v}
  3214. X.fi
  3215. X.SH ERRORS
  3216. XIt is an error if
  3217. Xthe change is not assigned to the current user.
  3218. X.br
  3219. XIt is an error if
  3220. Xthe change is not in one of the
  3221. X.I "being developed"
  3222. Xor
  3223. X.I "being integrated"
  3224. Xstates.
  3225. X.so z_exit.so
  3226. X.so z_cr.so
  3227. END_OF_FILE
  3228. if test 2569 -ne `wc -c <'man1/aeb.1'`; then
  3229.     echo shar: \"'man1/aeb.1'\" unpacked with wrong size!
  3230. fi
  3231. # end of 'man1/aeb.1'
  3232. fi
  3233. if test -f 'man1/aecp.1' -a "${1}" != "-c" ; then 
  3234.   echo shar: Will not clobber existing file \"'man1/aecp.1'\"
  3235. else
  3236. echo shar: Extracting \"'man1/aecp.1'\" \(2856 characters\)
  3237. sed "s/^X//" >'man1/aecp.1' <<'END_OF_FILE'
  3238. X'\" t
  3239. X.\"    aegis - project change supervisor
  3240. X.\"    Copyright (C) 1991, 1992, 1993 Peter Miller.
  3241. X.\"    All rights reserved.
  3242. X.\"
  3243. X.\"    This program is free software; you can redistribute it and/or modify
  3244. X.\"    it under the terms of the GNU General Public License as published by
  3245. X.\"    the Free Software Foundation; either version 2 of the License, or
  3246. X.\"    (at your option) any later version.
  3247. X.\"
  3248. X.\"    This program is distributed in the hope that it will be useful,
  3249. X.\"    but WITHOUT ANY WARRANTY; without even the implied warranty of
  3250. X.\"    MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
  3251. X.\"    GNU General Public License for more details.
  3252. X.\"
  3253. X.\"    You should have received a copy of the GNU General Public License
  3254. X.\"    along with this program; if not, write to the Free Software
  3255. X.\"    Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.
  3256. X.\"
  3257. X.\" MANIFEST: manual entry for aegis -CoPy_file
  3258. X.\"
  3259. X.so z_name.so
  3260. X.TH "\*(n) -CoPy_file" 1 \*(N)
  3261. X.SH NAME
  3262. X\*(n) -CoPy_file \- copy a file into a change
  3263. X.SH SYNOPSIS
  3264. X.B \*(n)
  3265. X.B -CoPy_file
  3266. X[
  3267. X.IR option ...
  3268. X]
  3269. X.IR filename ...
  3270. X.br
  3271. X.B \*(n)
  3272. X.B -CoPy_file
  3273. X.B -List
  3274. X[
  3275. X.IR option ...
  3276. X]
  3277. X.br
  3278. X.B \*(n)
  3279. X.B -CoPy_file
  3280. X.B -Help
  3281. X.SH DESCRIPTION
  3282. XThe
  3283. X.I \*(n)
  3284. X.I -CoPy_file
  3285. Xcommand is used to
  3286. Xcopy a file into a change.
  3287. X.so z_intuit.so
  3288. X.PP
  3289. XThe named files will be copied from the baseline into
  3290. Xthe development directory,
  3291. Xand added to the list of files in the change.
  3292. X.PP
  3293. XThis command will cancel any build or test registrations,
  3294. Xbecause adding another file logically invalidates them.
  3295. XIf the
  3296. X.I config
  3297. Xfile was added,
  3298. Xany diff registration will also be cancelled.
  3299. X.PP
  3300. XThis command may be used to copy tests into a change,
  3301. Xnot just source files.
  3302. XTests are treated just like any other source file,
  3303. Xand are subject to the same process.
  3304. X.SH OPTIONS
  3305. XThe following options are understood:
  3306. X.so o_change.so
  3307. X.TP 8n
  3308. X\fB-Delta\fP \fInumber\fP
  3309. X.br
  3310. XThis option may be used to specify a particular
  3311. Xdelta in the project's history to copy the file from,
  3312. Xrather than the most current version.
  3313. XIt is an error if the delta specified does not exist.
  3314. X.so o_help.so
  3315. X.so o_list.so
  3316. X.so o_nolog.so
  3317. X.TP 8n
  3318. X\fB-Output\fP \fIfilename\fP
  3319. X.br
  3320. XThis option may be used to specify an output file
  3321. Xof a file being copied from the baseline.
  3322. XOnly one baseline file may be named when this option is used.
  3323. XThe file name "-" is understood to mean the standard output.
  3324. X.so o_overw.so
  3325. X.so o_project.so
  3326. X.so o_terse.so
  3327. X.so o_verbose.so
  3328. X.so o__rules.so
  3329. X.SH RECOMMENDED ALIAS
  3330. XThe recommended alias for this command is
  3331. X.nf
  3332. X.ta 8n 16n
  3333. Xcsh%    alias aecp '\*(n) -cp \e!* -v'
  3334. Xsh$    aecp(){\*(n) -cp $* -v}
  3335. X.fi
  3336. X.SH ERRORS
  3337. XIt is an error if
  3338. Xthe change is not in the
  3339. X.I "being developed"
  3340. Xstate.
  3341. X.br
  3342. XIt is an error if
  3343. Xthe change is not assigned to the current user.
  3344. X.br
  3345. XIt is an error if
  3346. Xthe file is already in the change and the
  3347. X.B -OverWrite
  3348. Xoption is not specified.
  3349. X.so z_exit.so
  3350. X.so z_cr.so
  3351. END_OF_FILE
  3352. if test 2856 -ne `wc -c <'man1/aecp.1'`; then
  3353.     echo shar: \"'man1/aecp.1'\" unpacked with wrong size!
  3354. fi
  3355. # end of 'man1/aecp.1'
  3356. fi
  3357. if test -f 'man1/aecpu.1' -a "${1}" != "-c" ; then 
  3358.   echo shar: Will not clobber existing file \"'man1/aecpu.1'\"
  3359. else
  3360. echo shar: Extracting \"'man1/aecpu.1'\" \(2300 characters\)
  3361. sed "s/^X//" >'man1/aecpu.1' <<'END_OF_FILE'
  3362. X'\" t
  3363. X.\"    aegis - project change supervisor
  3364. X.\"    Copyright (C) 1991, 1992, 1993 Peter Miller.
  3365. X.\"    All rights reserved.
  3366. X.\"
  3367. X.\"    This program is free software; you can redistribute it and/or modify
  3368. X.\"    it under the terms of the GNU General Public License as published by
  3369. X.\"    the Free Software Foundation; either version 2 of the License, or
  3370. X.\"    (at your option) any later version.
  3371. X.\"
  3372. X.\"    This program is distributed in the hope that it will be useful,
  3373. X.\"    but WITHOUT ANY WARRANTY; without even the implied warranty of
  3374. X.\"    MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
  3375. X.\"    GNU General Public License for more details.
  3376. X.\"
  3377. X.\"    You should have received a copy of the GNU General Public License
  3378. X.\"    along with this program; if not, write to the Free Software
  3379. X.\"    Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.
  3380. X.\"
  3381. X.\" MANIFEST: manual entry for 'aegis -CoPy_file_Undo' command
  3382. X.\"
  3383. X.so z_name.so
  3384. X.TH "\*(n) -CoPy_file_Undo" 1 \*(N)
  3385. X.SH NAME
  3386. X\*(n) -CoPy_file_Undo \- reverse action of aecp
  3387. X.SH SYNOPSIS
  3388. X.B \*(n)
  3389. X.B -CoPy_file_Undo
  3390. X[
  3391. X.IR option ...
  3392. X]
  3393. X.IR filename ...
  3394. X.br
  3395. X.B \*(n)
  3396. X.B -CoPy_file_Undo
  3397. X.B -List
  3398. X[
  3399. X.IR option ...
  3400. X]
  3401. X.br
  3402. X.B \*(n)
  3403. X.B -CoPy_file_Undo
  3404. X.B -Help
  3405. X.SH DESCRIPTION
  3406. XThe
  3407. X.I \*(n)
  3408. X.I -CoPy_file_Undo
  3409. Xcommand is used to
  3410. Xremove a file previously copied into a change.
  3411. X.so z_intuit.so
  3412. X.PP
  3413. XThe named files will be removed from the list of files in the change.
  3414. XThe file is deleted from the development directory
  3415. Xunless the
  3416. X.B -Keep 
  3417. Xoption is specified.
  3418. XThe 
  3419. X.B -Keep
  3420. Xoption should be used with great care,
  3421. Xas you can confuse tools such as
  3422. X.IR make (1)
  3423. Xby leaving these files in place.
  3424. X.PP
  3425. XThis command will cancel any build or test registrations,
  3426. Xbecause deleting a file logically invalidates them.
  3427. XIf the
  3428. X.I config
  3429. Xfile was deleted,
  3430. Xany diff registration will also be cancelled.
  3431. X.SH OPTIONS
  3432. XThe following options are understood:
  3433. X.so o_change.so
  3434. X.so o_help.so
  3435. X.so o_list.so
  3436. X.so o_project.so
  3437. X.so o_terse.so
  3438. X.so o_verbose.so
  3439. X.so o__rules.so
  3440. X.SH RECOMMENDED ALIAS
  3441. XThe recommended alias for this command is
  3442. X.nf
  3443. X.ta 8n 16n
  3444. Xcsh%    alias aecpu '\*(n) -cpu \e!* -v'
  3445. Xsh$    aecpu(){\*(n) -cpu $* -v}
  3446. X.fi
  3447. X.SH ERRORS
  3448. XIt is an error if
  3449. Xthe change is not in the
  3450. X.I "being developed"
  3451. Xstate.
  3452. X.br
  3453. XIt is an error if
  3454. Xthe change is not assigned to the current user.
  3455. X.so z_exit.so
  3456. X.so z_cr.so
  3457. END_OF_FILE
  3458. if test 2300 -ne `wc -c <'man1/aecpu.1'`; then
  3459.     echo shar: \"'man1/aecpu.1'\" unpacked with wrong size!
  3460. fi
  3461. # end of 'man1/aecpu.1'
  3462. fi
  3463. if test -f 'man1/aed.1' -a "${1}" != "-c" ; then 
  3464.   echo shar: Will not clobber existing file \"'man1/aed.1'\"
  3465. else
  3466. echo shar: Extracting \"'man1/aed.1'\" \(3274 characters\)
  3467. sed "s/^X//" >'man1/aed.1' <<'END_OF_FILE'
  3468. X'\" t
  3469. X.\"    aegis - project change supervisor
  3470. X.\"    Copyright (C) 1991, 1992, 1993 Peter Miller.
  3471. X.\"    All rights reserved.
  3472. X.\"
  3473. X.\"    This program is free software; you can redistribute it and/or modify
  3474. X.\"    it under the terms of the GNU General Public License as published by
  3475. X.\"    the Free Software Foundation; either version 2 of the License, or
  3476. X.\"    (at your option) any later version.
  3477. X.\"
  3478. X.\"    This program is distributed in the hope that it will be useful,
  3479. X.\"    but WITHOUT ANY WARRANTY; without even the implied warranty of
  3480. X.\"    MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
  3481. X.\"    GNU General Public License for more details.
  3482. X.\"
  3483. X.\"    You should have received a copy of the GNU General Public License
  3484. X.\"    along with this program; if not, write to the Free Software
  3485. X.\"    Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.
  3486. X.\"
  3487. X.\" MANIFEST: manual entry for 'aegis -DIFFerence' command
  3488. X.\"
  3489. X.so z_name.so
  3490. X.TH "\*(n) -DIFFerence" 1 \*(N)
  3491. X.SH NAME
  3492. X\*(n) -DIFFerence \- find differences between development directory and baseline
  3493. X.SH SYNOPSIS
  3494. X.B \*(n)
  3495. X.B -DIFFerence
  3496. X[
  3497. X.IR filename ...
  3498. X]
  3499. X[
  3500. X.IR option ...
  3501. X]
  3502. X.br
  3503. X.B \*(n)
  3504. X.B -DIFFerence
  3505. X.B -List
  3506. X[
  3507. X.IR option ...
  3508. X]
  3509. X.br
  3510. X.B \*(n)
  3511. X.B -DIFFerence
  3512. X.B -Help
  3513. X.SH DESCRIPTION
  3514. XThe
  3515. X.I \*(n)
  3516. X.I -DIFFerence
  3517. Xcommand is used to
  3518. Xfind differences between the development directory and the baseline.
  3519. XThe differences will be in files with a "\f(CW,D\fP" suffix.
  3520. XThe command used to perform the differences is in the
  3521. Xproject
  3522. X.I config
  3523. Xfile (see
  3524. X.IR aepconf (5)
  3525. Xfor more information).
  3526. X.PP
  3527. XIf no files are named on the command line,
  3528. Xall files in the change will be differenced.
  3529. X.so z_intuit.so
  3530. X.SH CONFLICT RESOLUTION
  3531. XIf the version of a file in the change is not the same
  3532. Xas the verion of the file in the baseline,
  3533. Xit is out-of-date;
  3534. Xsome other change has altered the file while this change was being developed.
  3535. X.PP
  3536. XWhen a difference is requested for an out-of-date file,
  3537. Xa merge is performed
  3538. Xbetween the common ancestor,
  3539. Xthe verion in the baseline,
  3540. Xand the version in the development directory.
  3541. XThe command used to perform the merge is in the
  3542. Xproject
  3543. X.I config
  3544. Xfile (see
  3545. X.IR aepconf (5)
  3546. Xfor more information).
  3547. X.PP
  3548. XAfter the merge is performed
  3549. Xthe version of the file will be changed to be the current version,
  3550. Xand a new build will be required.
  3551. X.PP
  3552. XThe difference output in the \fI,D\fP files
  3553. Xcontains the result of the merge.
  3554. XYou should edit them,
  3555. Xto make sure the automatic merge has produced sensible results,
  3556. Xand then rename them to be the corresponding source file.
  3557. X.PP
  3558. XThis merge process works most of the time.
  3559. XUsually two changes to two logically separate areas of functionality
  3560. Xwill alter two logically separate parts of any files they may
  3561. Xhave in common.
  3562. XThere are pathological cases where this merge process is spectacularly useless,
  3563. Xbut these are surprizingly rare in practice.
  3564. X.SH OPTIONS
  3565. XThe following options are understood:
  3566. X.so o_anticip.so
  3567. X.so o_change.so
  3568. X.so o_help.so
  3569. X.so o_list.so
  3570. X.so o_nolog.so
  3571. X.so o_project.so
  3572. X.so o_terse.so
  3573. X.so o_verbose.so
  3574. X.so o__rules.so
  3575. X.SH RECOMMENDED ALIAS
  3576. XThe recommended alias for this command is
  3577. X.nf
  3578. X.ta 8n 16n
  3579. Xcsh%    alias aed '\*(n) -diff \e!* -v'
  3580. Xsh$    aed(){\*(n) -diff $* -v}
  3581. X.fi
  3582. X.SH ERRORS
  3583. XIt is an error if
  3584. Xthe change is not in the
  3585. X.I "'being developed'"
  3586. Xstate.
  3587. X.so z_exit.so
  3588. X.so z_cr.so
  3589. END_OF_FILE
  3590. if test 3274 -ne `wc -c <'man1/aed.1'`; then
  3591.     echo shar: \"'man1/aed.1'\" unpacked with wrong size!
  3592. fi
  3593. # end of 'man1/aed.1'
  3594. fi
  3595. if test -f 'man1/aedb.1' -a "${1}" != "-c" ; then 
  3596.   echo shar: Will not clobber existing file \"'man1/aedb.1'\"
  3597. else
  3598. echo shar: Extracting \"'man1/aedb.1'\" \(2477 characters\)
  3599. sed "s/^X//" >'man1/aedb.1' <<'END_OF_FILE'
  3600. X'\" t
  3601. X.\"    aegis - project change supervisor
  3602. X.\"    Copyright (C) 1991, 1992, 1993 Peter Miller.
  3603. X.\"    All rights reserved.
  3604. X.\"
  3605. X.\"    This program is free software; you can redistribute it and/or modify
  3606. X.\"    it under the terms of the GNU General Public License as published by
  3607. X.\"    the Free Software Foundation; either version 2 of the License, or
  3608. X.\"    (at your option) any later version.
  3609. X.\"
  3610. X.\"    This program is distributed in the hope that it will be useful,
  3611. X.\"    but WITHOUT ANY WARRANTY; without even the implied warranty of
  3612. X.\"    MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
  3613. X.\"    GNU General Public License for more details.
  3614. X.\"
  3615. X.\"    You should have received a copy of the GNU General Public License
  3616. X.\"    along with this program; if not, write to the Free Software
  3617. X.\"    Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.
  3618. X.\"
  3619. X.\" MANIFEST: manual entry for 'aegis -Develop_Begin' command
  3620. X.\"
  3621. X.so z_name.so
  3622. X.TH "\*(n) -Develop_Begin" 1 \*(N)
  3623. X.SH NAME
  3624. X\*(n) -Develop_Begin \- begin development of a change
  3625. X.SH SYNOPSIS
  3626. X.B \*(n)
  3627. X.B -Develop_Begin
  3628. X.I change-number
  3629. X[
  3630. X.IR option ...
  3631. X]
  3632. X.br
  3633. X.B \*(n)
  3634. X.B -Develop_Begin
  3635. X.B -List
  3636. X[
  3637. X.IR option ...
  3638. X]
  3639. X.br
  3640. X.B \*(n)
  3641. X.B -Develop_Begin
  3642. X.B -Help
  3643. X.SH DESCRIPTION
  3644. XThe
  3645. X.I \*(n)
  3646. X.I -Develop_Begin
  3647. Xcommand is used to
  3648. Xcommence development of a change.
  3649. X.PP
  3650. XThe development directory for the change will be created automatically;
  3651. Xbelow the directory specified in the default_\%development_\%directory field of
  3652. X.IR aeuconf (5),
  3653. Xor if not set
  3654. Xbelow the directory specified in the default_\%development_\%directory field of
  3655. X.IR aepattr (5),
  3656. Xor if not set
  3657. Xbelow the current user's home directory.
  3658. XIt is rare to need to know the exact pathname of the development directory,
  3659. Xas the
  3660. X.IR aecd (1)
  3661. Xcommand can take you there at any time.
  3662. X.PP
  3663. XSuccessful execution of this command will move the
  3664. Xspecified change from the
  3665. X.I "awaiting development"
  3666. Xstate to the
  3667. X.I "being developed"
  3668. Xstate.
  3669. X.SH OPTIONS
  3670. XThe following options are understood:
  3671. X.so o_change.so
  3672. X.so o_dir.so
  3673. X.so o_help.so
  3674. X.so o_list.so
  3675. X.so o_project.so
  3676. X.so o_terse.so
  3677. X.so o_verbose.so
  3678. X.so o__rules.so
  3679. X.SH RECOMMENDED ALIAS
  3680. XThe recommended alias for this command is
  3681. X.nf
  3682. X.ta 8n 16n
  3683. Xcsh%    alias aedb '\*(n) -db \e!* -v'
  3684. Xsh$    aedb(){\*(n) -db $* -v}
  3685. X.fi
  3686. X.SH ERRORS
  3687. XIt is an error if
  3688. Xthe change does not exist.
  3689. X.br
  3690. XIt is an error if
  3691. Xthe change is not in the
  3692. X.I "awaiting development"
  3693. Xstate.
  3694. X.br
  3695. XIt is an error if
  3696. Xthe current user is not a developer of the specified project.
  3697. X.so z_exit.so
  3698. X.so z_cr.so
  3699. END_OF_FILE
  3700. if test 2477 -ne `wc -c <'man1/aedb.1'`; then
  3701.     echo shar: \"'man1/aedb.1'\" unpacked with wrong size!
  3702. fi
  3703. # end of 'man1/aedb.1'
  3704. fi
  3705. if test -f 'man1/aede.1' -a "${1}" != "-c" ; then 
  3706.   echo shar: Will not clobber existing file \"'man1/aede.1'\"
  3707. else
  3708. echo shar: Extracting \"'man1/aede.1'\" \(2675 characters\)
  3709. sed "s/^X//" >'man1/aede.1' <<'END_OF_FILE'
  3710. X'\" t
  3711. X.\"    aegis - project change supervisor
  3712. X.\"    Copyright (C) 1991, 1992, 1993 Peter Miller.
  3713. X.\"    All rights reserved.
  3714. X.\"
  3715. X.\"    This program is free software; you can redistribute it and/or modify
  3716. X.\"    it under the terms of the GNU General Public License as published by
  3717. X.\"    the Free Software Foundation; either version 2 of the License, or
  3718. X.\"    (at your option) any later version.
  3719. X.\"
  3720. X.\"    This program is distributed in the hope that it will be useful,
  3721. X.\"    but WITHOUT ANY WARRANTY; without even the implied warranty of
  3722. X.\"    MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
  3723. X.\"    GNU General Public License for more details.
  3724. X.\"
  3725. X.\"    You should have received a copy of the GNU General Public License
  3726. X.\"    along with this program; if not, write to the Free Software
  3727. X.\"    Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.
  3728. X.\"
  3729. X.\" MANIFEST: manual entry for 'aegis -Develop_End' command
  3730. X.\"
  3731. X.so z_name.so
  3732. X.TH "\*(n) -Develop_End" 1 \*(N)
  3733. X.SH NAME
  3734. X\*(n) -Develop_End \- complete development of a change
  3735. X.SH SYNOPSIS
  3736. X.B \*(n)
  3737. X.B -Develop_End
  3738. X[
  3739. X.IR option ...
  3740. X]
  3741. X.br
  3742. X.B \*(n)
  3743. X.B -Develop_End
  3744. X.B -List
  3745. X[
  3746. X.IR option ...
  3747. X]
  3748. X.br
  3749. X.B \*(n)
  3750. X.B -Develop_End
  3751. X.B -Help
  3752. X.SH DESCRIPTION
  3753. XThe
  3754. X.I \*(n)
  3755. X.I -Develop_End
  3756. Xcommand is used to
  3757. Xnotify \*(n) of the completion of the development of a change.
  3758. X.PP
  3759. XSuccessful execution of the command advances the change
  3760. Xfrom the 'being_developed' state
  3761. Xto the 'being_reviewed' state.
  3762. X.PP
  3763. XThe ownership of files in the development directory
  3764. Xis changed to the project owner and group,
  3765. Xand the files changed to be read-only.
  3766. XThis prevents accidental alterations of the change's files
  3767. Xbetween development and integration.
  3768. X.PP
  3769. XThe change is no longer considered assigned to the current user.
  3770. X.SH OPTIONS
  3771. XThe following options are understood:
  3772. X.so o_change.so
  3773. X.so o_help.so
  3774. X.so o_list.so
  3775. X.so o_project.so
  3776. X.so o_terse.so
  3777. X.so o_verbose.so
  3778. X.so o__rules.so
  3779. X.SH RECOMMENDED ALIAS
  3780. XThe recommended alias for this command is
  3781. X.nf
  3782. X.ta 8n 16n
  3783. Xcsh%    alias aede '\*(n) -de \e!* -v'
  3784. Xsh$    aede(){\*(n) -de $* -v}
  3785. X.fi
  3786. X.SH ERRORS
  3787. XIt is an error if
  3788. Xthe change is not assigned to the current user.
  3789. X.br
  3790. XIt is an error if
  3791. XThe change is not in the 'being_developed' state.
  3792. X.br
  3793. XIt is an error if
  3794. Xthere has been no successful
  3795. X.I "'\*(n) -Build'"
  3796. Xcommand since a change file was last edited.
  3797. X.br
  3798. XIt is an error if
  3799. Xthere has been no successful
  3800. X.I "'\*(n) -DIFFerence'"
  3801. Xcommand since a change file was last edited.
  3802. X.br
  3803. XIt is an error if
  3804. Xthere has been no successful
  3805. X.I "'\*(n) -Test'"
  3806. Xcommand since a change file was last edited.
  3807. X.br
  3808. XIt is an error if
  3809. Xthere has been no successful
  3810. X.I "'\*(n) -Test -BaseLine'"
  3811. Xcommand since a change file was last edited.
  3812. X.so z_exit.so
  3813. X.so z_cr.so
  3814. END_OF_FILE
  3815. if test 2675 -ne `wc -c <'man1/aede.1'`; then
  3816.     echo shar: \"'man1/aede.1'\" unpacked with wrong size!
  3817. fi
  3818. # end of 'man1/aede.1'
  3819. fi
  3820. if test -f 'man1/aeib.1' -a "${1}" != "-c" ; then 
  3821.   echo shar: Will not clobber existing file \"'man1/aeib.1'\"
  3822. else
  3823. echo shar: Extracting \"'man1/aeib.1'\" \(3312 characters\)
  3824. sed "s/^X//" >'man1/aeib.1' <<'END_OF_FILE'
  3825. X'\" t
  3826. X.\"    aegis - project change supervisor
  3827. X.\"    Copyright (C) 1991, 1992, 1993 Peter Miller.
  3828. X.\"    All rights reserved.
  3829. X.\"
  3830. X.\"    This program is free software; you can redistribute it and/or modify
  3831. X.\"    it under the terms of the GNU General Public License as published by
  3832. X.\"    the Free Software Foundation; either version 2 of the License, or
  3833. X.\"    (at your option) any later version.
  3834. X.\"
  3835. X.\"    This program is distributed in the hope that it will be useful,
  3836. X.\"    but WITHOUT ANY WARRANTY; without even the implied warranty of
  3837. X.\"    MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
  3838. X.\"    GNU General Public License for more details.
  3839. X.\"
  3840. X.\"    You should have received a copy of the GNU General Public License
  3841. X.\"    along with this program; if not, write to the Free Software
  3842. X.\"    Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.
  3843. X.\"
  3844. X.\" MANIFEST: manual entry for 'aegis -Integrate_Begin' command
  3845. X.\"
  3846. X.so z_name.so
  3847. X.TH "\*(n) -Integrate_Begin" 1 \*(N)
  3848. X.SH NAME
  3849. X\*(n) -Integrate_Begin \- begin integrating a change
  3850. X.SH SYNOPSIS
  3851. X.B \*(n)
  3852. X.B -Integrate_Begin
  3853. X.I change-number
  3854. X[
  3855. X.IR option ...
  3856. X]
  3857. X.br
  3858. X.B \*(n)
  3859. X.B -Integrate_Begin
  3860. X.B -List
  3861. X[
  3862. X.IR option ...
  3863. X]
  3864. X.br
  3865. X.B \*(n)
  3866. X.B -Integrate_Begin
  3867. X.B -Help
  3868. X.SH DESCRIPTION
  3869. XThe
  3870. X.I \*(n)
  3871. X.I -Integrate_Begin
  3872. Xcommand is used to
  3873. Xbegin the integration of a change into the baseline of a project.
  3874. X.PP
  3875. XThe change will advance
  3876. Xfrom the 'awaiting_integration' state
  3877. Xto the 'being_integrated' state.
  3878. X.PP
  3879. XA copy of the baseline is created in an
  3880. X.IR "integration directory" 
  3881. Xand the the files of the change are added to the integration directory;
  3882. Xtime stamps on the files are preserved.
  3883. XThe 
  3884. X.I "'\*(n) -Change_Directory'"
  3885. Xcommand may be used to locate this directory.
  3886. XThe change will be assigned to the current user.
  3887. X.PP
  3888. XThe change will be assigned a delta number.
  3889. XDelta numbers are incremented once for each
  3890. X.I "\*(n) -Integrate_Begin"
  3891. Xcommand for the project.
  3892. XIf an integration is subsequently aborted with either the
  3893. X.I "\*(n) -Integrate_Begin_Undo"
  3894. Xor
  3895. X.I "\*(n) -Integrate_FAIL"
  3896. Xcommand,
  3897. Xthe delta number will not be re-used.
  3898. X.PP
  3899. XIt is not possible to choose the integration directory,
  3900. Xas there are many constraints upon it,
  3901. Xincluding the fact that it must be
  3902. Xon the same device as the baseline directory,
  3903. Xand that many UNIX implementations don't allow renaming
  3904. Xdirectories up and down the trees.
  3905. XThe integration directory will be in the project directory,
  3906. Xand named for the delta number.
  3907. X.SH OPTIONS
  3908. XThe following options are understood:
  3909. X.so o_change.so
  3910. X.so o_help.so
  3911. X.so o_list.so
  3912. X.so o_min.so
  3913. X.so o_project.so
  3914. X.so o_terse.so
  3915. X.so o_verbose.so
  3916. X.so o__rules.so
  3917. X.SH RECOMMENDED ALIAS
  3918. XThe recommended alias for this command is
  3919. X.nf
  3920. X.ta 8n 16n
  3921. Xcsh%    alias aeib '\*(n) -ib \e!* -v'
  3922. Xsh$    aeib(){\*(n) -ib $* -v}
  3923. X.fi
  3924. X.SH ERRORS
  3925. XIt is an error if
  3926. Xthe change is not in the 'awaiting_integration' state.
  3927. X.br
  3928. XIt is an error if
  3929. Xthe current user is not an integrator of the project.
  3930. X.br
  3931. XIt is an error if
  3932. Xthere is an integration in progress for the project.
  3933. X.br
  3934. XIt is an error if
  3935. Xthe current user developed the change and the project is configured to
  3936. Xdisallow developers to integrate their own changes (default).
  3937. X.br
  3938. XIt is an error if
  3939. Xthe current user reviewed the change and the project is configured to
  3940. Xdisallow reviewers to integrate their such changes (default).
  3941. X.so z_exit.so
  3942. X.so z_cr.so
  3943. END_OF_FILE
  3944. if test 3312 -ne `wc -c <'man1/aeib.1'`; then
  3945.     echo shar: \"'man1/aeib.1'\" unpacked with wrong size!
  3946. fi
  3947. # end of 'man1/aeib.1'
  3948. fi
  3949. if test -f 'man1/aeif.1' -a "${1}" != "-c" ; then 
  3950.   echo shar: Will not clobber existing file \"'man1/aeif.1'\"
  3951. else
  3952. echo shar: Extracting \"'man1/aeif.1'\" \(2282 characters\)
  3953. sed "s/^X//" >'man1/aeif.1' <<'END_OF_FILE'
  3954. X'\" t
  3955. X.\"    aegis - project change supervisor
  3956. X.\"    Copyright (C) 1991, 1992, 1993 Peter Miller.
  3957. X.\"    All rights reserved.
  3958. X.\"
  3959. X.\"    This program is free software; you can redistribute it and/or modify
  3960. X.\"    it under the terms of the GNU General Public License as published by
  3961. X.\"    the Free Software Foundation; either version 2 of the License, or
  3962. X.\"    (at your option) any later version.
  3963. X.\"
  3964. X.\"    This program is distributed in the hope that it will be useful,
  3965. X.\"    but WITHOUT ANY WARRANTY; without even the implied warranty of
  3966. X.\"    MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
  3967. X.\"    GNU General Public License for more details.
  3968. X.\"
  3969. X.\"    You should have received a copy of the GNU General Public License
  3970. X.\"    along with this program; if not, write to the Free Software
  3971. X.\"    Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.
  3972. X.\"
  3973. X.\" MANIFEST: manual entry for 'aegis -Integrate_Fail' command
  3974. X.\"
  3975. X.so z_name.so
  3976. X.TH "\*(n) -Integrate_Fail" 1 \*(N)
  3977. X.SH NAME
  3978. X\*(n) -Integrate_Fail \- fail a change integration
  3979. X.SH SYNOPSIS
  3980. X.B \*(n)
  3981. X.B -Integrate_Fail
  3982. X.I reason-file
  3983. X[
  3984. X.IR option ...
  3985. X]
  3986. X.br
  3987. X.B \*(n)
  3988. X.B -Integrate_Fail
  3989. X.B -Edit
  3990. X[
  3991. X.IR option ...
  3992. X]
  3993. X.br
  3994. X.B \*(n)
  3995. X.B -Integrate_Fail
  3996. X.B -List
  3997. X[
  3998. X.IR option ...
  3999. X]
  4000. X.br
  4001. X.B \*(n)
  4002. X.B -Integrate_Fail
  4003. X.B -Help
  4004. X.SH DESCRIPTION
  4005. XThe
  4006. X.I \*(n)
  4007. X.I -Integrate_Fail
  4008. Xcommand is used to
  4009. Xinform \*(n) that a change has failed integration.
  4010. X.PP
  4011. XThe change will be returned
  4012. Xfrom the 'being_integrated' state
  4013. Xto the 'being_developed' state.
  4014. XThe change will cease to be assigned to the current user,
  4015. Xand will be reassigned to the originating developer.
  4016. XThe integration directory will be deleted.
  4017. X.PP
  4018. XThe reviewer and the developer will be notified by mail.
  4019. XSee the integrate_fail_notify_command in 
  4020. X.IR aepconf (5)
  4021. Xfor more information.
  4022. X.SH OPTIONS
  4023. XThe following options are understood:
  4024. X.so o_change.so
  4025. X.so o_edit.so
  4026. X.so o_help.so
  4027. X.so o_keep.so
  4028. X.so o_list.so
  4029. X.so o_project.so
  4030. X.so o_terse.so
  4031. X.so o_verbose.so
  4032. X.so o__rules.so
  4033. X.SH RECOMMENDED ALIAS
  4034. XThe recommended alias for this command is
  4035. X.nf
  4036. X.ta 8n 16n
  4037. Xcsh%    alias aeifail '\*(n) -ifail \e!* -v'
  4038. Xsh$    aeifail(){\*(n) -ifail $* -v}
  4039. X.fi
  4040. X.SH ERRORS
  4041. XIt is an error if
  4042. Xthe change is not in the 'being_integrated' state.
  4043. X.br
  4044. XIt is an error if
  4045. Xthe change is not assigned to the current user.
  4046. X.so z_exit.so
  4047. X.so z_cr.so
  4048. END_OF_FILE
  4049. if test 2282 -ne `wc -c <'man1/aeif.1'`; then
  4050.     echo shar: \"'man1/aeif.1'\" unpacked with wrong size!
  4051. fi
  4052. # end of 'man1/aeif.1'
  4053. fi
  4054. if test -f 'man1/aeip.1' -a "${1}" != "-c" ; then 
  4055.   echo shar: Will not clobber existing file \"'man1/aeip.1'\"
  4056. else
  4057. echo shar: Extracting \"'man1/aeip.1'\" \(2378 characters\)
  4058. sed "s/^X//" >'man1/aeip.1' <<'END_OF_FILE'
  4059. X'\" t
  4060. X.\"    aegis - project change supervisor
  4061. X.\"    Copyright (C) 1991, 1992, 1993 Peter Miller.
  4062. X.\"    All rights reserved.
  4063. X.\"
  4064. X.\"    This program is free software; you can redistribute it and/or modify
  4065. X.\"    it under the terms of the GNU General Public License as published by
  4066. X.\"    the Free Software Foundation; either version 2 of the License, or
  4067. X.\"    (at your option) any later version.
  4068. X.\"
  4069. X.\"    This program is distributed in the hope that it will be useful,
  4070. X.\"    but WITHOUT ANY WARRANTY; without even the implied warranty of
  4071. X.\"    MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
  4072. X.\"    GNU General Public License for more details.
  4073. X.\"
  4074. X.\"    You should have received a copy of the GNU General Public License
  4075. X.\"    along with this program; if not, write to the Free Software
  4076. X.\"    Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.
  4077. X.\"
  4078. X.\" MANIFEST: manual entry for 'aegis -Integrate_Pass' command
  4079. X.\"
  4080. X.so z_name.so
  4081. X.TH "\*(n) -Integrate_Pass" 1 \*(N)
  4082. X.SH NAME
  4083. X\*(n) -Integrate_Pass \- pass a change integration
  4084. X.SH SYNOPSIS
  4085. X.B \*(n)
  4086. X.B -Integrate_Pass
  4087. X[
  4088. X.IR option ...
  4089. X]
  4090. X.br
  4091. X.B \*(n)
  4092. X.B -Integrate_Pass
  4093. X.B -List
  4094. X[
  4095. X.IR option ...
  4096. X]
  4097. X.br
  4098. X.B \*(n)
  4099. X.B -Integrate_Pass
  4100. X.B -Help
  4101. X.SH DESCRIPTION
  4102. XThe
  4103. X.I \*(n)
  4104. X.I -Integrate_Pass
  4105. Xcommand is used to
  4106. Xnotify \*(n) that a change has passed integration.
  4107. X.PP
  4108. XThe change is advanced
  4109. Xfrom the
  4110. X.I "being integrated"
  4111. Xstate to the
  4112. X.I "completed"
  4113. Xstate.
  4114. XThe integration directory is renamed as the baseline directory,
  4115. Xand the baseline directory is deleted.
  4116. XThe change is no longer assigned to the current user.
  4117. X.so o_bld_lk.so
  4118. X.SH OPTIONS
  4119. XThe following options are understood:
  4120. X.so o_change.so
  4121. X.so o_help.so
  4122. X.so o_list.so
  4123. X.so o_nolog.so
  4124. X.so o_project.so
  4125. X.so o_terse.so
  4126. X.so o_verbose.so
  4127. X.so o__rules.so
  4128. X.SH RECOMMENDED ALIAS
  4129. XThe recommended alias for this command is
  4130. X.nf
  4131. X.ta 8n 16n
  4132. Xcsh%    alias aeipass '\*(n) -ipass \e!* -v'
  4133. Xsh$    aeipass(){\*(n) -ipass $* -v}
  4134. X.fi
  4135. X.SH ERRORS
  4136. XIt is an error if
  4137. Xthe change is not assigned to the current user.
  4138. X.br
  4139. XIt is an error if
  4140. XThe change is not in the
  4141. X.I "being integrated"
  4142. Xstate.
  4143. X.br
  4144. XIt is an error if
  4145. Xthere has been no successful
  4146. X.I "'\*(n) -Build'"
  4147. Xcommand for the integration.
  4148. X.br
  4149. XIt is an error if
  4150. Xthere has been no successful
  4151. X.I "'\*(n) -Test'"
  4152. Xcommand for the integration.
  4153. X.br
  4154. XIt is an error if
  4155. Xthere has been no successful
  4156. X.I "'\*(n) -Test -BaseLine'"
  4157. Xcommand for the integration.
  4158. X.so z_exit.so
  4159. X.so z_cr.so
  4160. END_OF_FILE
  4161. if test 2378 -ne `wc -c <'man1/aeip.1'`; then
  4162.     echo shar: \"'man1/aeip.1'\" unpacked with wrong size!
  4163. fi
  4164. # end of 'man1/aeip.1'
  4165. fi
  4166. if test -f 'man1/ael.1' -a "${1}" != "-c" ; then 
  4167.   echo shar: Will not clobber existing file \"'man1/ael.1'\"
  4168. else
  4169. echo shar: Extracting \"'man1/ael.1'\" \(3023 characters\)
  4170. sed "s/^X//" >'man1/ael.1' <<'END_OF_FILE'
  4171. X'\" t
  4172. X.\"    aegis - project change supervisor
  4173. X.\"    Copyright (C) 1991, 1992, 1993 Peter Miller.
  4174. X.\"    All rights reserved.
  4175. X.\"
  4176. X.\"    This program is free software; you can redistribute it and/or modify
  4177. X.\"    it under the terms of the GNU General Public License as published by
  4178. X.\"    the Free Software Foundation; either version 2 of the License, or
  4179. X.\"    (at your option) any later version.
  4180. X.\"
  4181. X.\"    This program is distributed in the hope that it will be useful,
  4182. X.\"    but WITHOUT ANY WARRANTY; without even the implied warranty of
  4183. X.\"    MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
  4184. X.\"    GNU General Public License for more details.
  4185. X.\"
  4186. X.\"    You should have received a copy of the GNU General Public License
  4187. X.\"    along with this program; if not, write to the Free Software
  4188. X.\"    Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.
  4189. X.\"
  4190. X.\" MANIFEST: manual entry for 'aegis -List' command
  4191. X.\"
  4192. X.so z_name.so
  4193. X.TH "\*(n) -List" 1 \*(N)
  4194. X.SH NAME
  4195. X\*(n) -List \- list (possibly) interesting things
  4196. X.SH SYNOPSIS
  4197. X.B \*(n)
  4198. X.B -List
  4199. X[
  4200. X.IR option ...
  4201. X]
  4202. X.I list-name
  4203. X.br
  4204. X.B \*(n)
  4205. X.B -List
  4206. X.B -List
  4207. X[
  4208. X.IR option ...
  4209. X]
  4210. X.br
  4211. X.B \*(n)
  4212. X.B -List
  4213. X.B -Help
  4214. X.SH DESCRIPTION
  4215. XThe
  4216. X.I \*(n)
  4217. X.I -List
  4218. Xcommand is used to
  4219. Xlist information.
  4220. XThere are a number of possible
  4221. X.IR list-name s,
  4222. Xas follows (abbreviations as for command line options):
  4223. X.TP 8n
  4224. XAdministrators
  4225. X.br
  4226. XList the administrators of a project.
  4227. X.TP 8n
  4228. XChange_Details
  4229. X.br
  4230. XList full information about a change
  4231. Xin large format.
  4232. X.TP 8n
  4233. XChange_Files
  4234. X.br
  4235. XList all files in a change.
  4236. X.TP 8n
  4237. XChange_History
  4238. X.br
  4239. XList the history of a change.
  4240. X.TP 8n
  4241. XChanges
  4242. X.br
  4243. XList the changes of a project.
  4244. X.TP 8n
  4245. XDefault_Change
  4246. X.br
  4247. XList the default change for the current user.
  4248. X.TP 8n
  4249. XDefault_Project
  4250. X.br
  4251. XList the default project for the current user.
  4252. X.TP 8n
  4253. XDevelopers
  4254. X.br
  4255. XList the developers of a project.
  4256. X.TP 8n
  4257. XIntegrators
  4258. X.br
  4259. XList the integrators of a project.
  4260. X.TP 8n
  4261. XList_List
  4262. X.br
  4263. XList all lists available.
  4264. X.TP 8n
  4265. XLocks
  4266. X.br
  4267. XList all currently active locks.
  4268. X.TP 8n
  4269. XOutstanding_Changes
  4270. X.br
  4271. XList all changes not yet completed.
  4272. X.TP 8n
  4273. XAll_Outstanding_Changes
  4274. X.br
  4275. XList all changes not yet completed, for all projects.
  4276. X.TP 8n
  4277. XProject_Files
  4278. X.br
  4279. XList all files in the baseline of a project.
  4280. X.TP 8n
  4281. XProject_History
  4282. X.br
  4283. XList the integration history of a project.
  4284. X.TP 8n
  4285. XProjects
  4286. X.br
  4287. XList all projects.
  4288. X.TP 8n
  4289. XReviewers
  4290. X.br
  4291. XList the reviewers of a project.
  4292. X.TP 8n
  4293. XUsers_Changes
  4294. X.br
  4295. XList of changes owned by the current user.
  4296. X.TP 8n
  4297. XVersion
  4298. X.br
  4299. XList version of a project or change.
  4300. X.PP
  4301. XMost of these lists are available from other \*(n) functions.
  4302. XMany \*(n) functions provide more specific lists.
  4303. X.SH OPTIONS
  4304. XThe following options are understood:
  4305. X.so o_change.so
  4306. X.so o_help.so
  4307. X.so o_list.so
  4308. X.so o_page.so
  4309. X.so o_project.so
  4310. X.so o_terse.so
  4311. X.so o_unforma.so
  4312. X.so o_verbose.so
  4313. X.so o__rules.so
  4314. X.SH RECOMMENDED ALIAS
  4315. XThe recommended alias for this command is
  4316. X.nf
  4317. X.ta 8n 16n
  4318. Xcsh%    alias ael '\*(n) -l \e!* -v'
  4319. Xsh$    ael(){\*(n) -l $* -v}
  4320. X.fi
  4321. X.SH ERRORS
  4322. XIt is an error if
  4323. Xthe list name given is unknown.
  4324. X.so z_exit.so
  4325. X.so z_cr.so
  4326. END_OF_FILE
  4327. if test 3023 -ne `wc -c <'man1/ael.1'`; then
  4328.     echo shar: \"'man1/ael.1'\" unpacked with wrong size!
  4329. fi
  4330. # end of 'man1/ael.1'
  4331. fi
  4332. if test -f 'man1/aemv.1' -a "${1}" != "-c" ; then 
  4333.   echo shar: Will not clobber existing file \"'man1/aemv.1'\"
  4334. else
  4335. echo shar: Extracting \"'man1/aemv.1'\" \(2135 characters\)
  4336. sed "s/^X//" >'man1/aemv.1' <<'END_OF_FILE'
  4337. X'\" t
  4338. X.\"    aegis - project change supervisor
  4339. X.\"    Copyright (C) 1993 Peter Miller.
  4340. X.\"    All rights reserved.
  4341. X.\"
  4342. X.\"    This program is free software; you can redistribute it and/or modify
  4343. X.\"    it under the terms of the GNU General Public License as published by
  4344. X.\"    the Free Software Foundation; either version 2 of the License, or
  4345. X.\"    (at your option) any later version.
  4346. X.\"
  4347. X.\"    This program is distributed in the hope that it will be useful,
  4348. X.\"    but WITHOUT ANY WARRANTY; without even the implied warranty of
  4349. X.\"    MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
  4350. X.\"    GNU General Public License for more details.
  4351. X.\"
  4352. X.\"    You should have received a copy of the GNU General Public License
  4353. X.\"    along with this program; if not, write to the Free Software
  4354. X.\"    Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.
  4355. X.\"
  4356. X.\" MANIFEST: manual entry for aegis -MoVe_file
  4357. X.\"
  4358. X.so z_name.so
  4359. X.TH "\*(n) -MoVe_file" 1 \*(N)
  4360. X.SH NAME
  4361. X\*(n) -MoVe_file \- copy a file into a change
  4362. X.SH SYNOPSIS
  4363. X.B \*(n)
  4364. X.B -MoVe_file
  4365. X[
  4366. X.IR option ...
  4367. X]
  4368. X.I old-name
  4369. X.I new-name
  4370. X.br
  4371. X.B \*(n)
  4372. X.B -MoVe_file
  4373. X.B -List
  4374. X[
  4375. X.IR option ...
  4376. X]
  4377. X.br
  4378. X.B \*(n)
  4379. X.B -MoVe_file
  4380. X.B -Help
  4381. X.SH DESCRIPTION
  4382. XThe
  4383. X.I \*(n)
  4384. X.I -MoVe_file
  4385. Xcommand is used to
  4386. Xcopy a file into a change,
  4387. Xwhile changing its name at the same time.
  4388. X.so z_intuit.so
  4389. X.PP
  4390. XThe named files will be copied from the baseline (\fIold-file\fP) into
  4391. Xthe development directory (\fInew-file\fP),
  4392. Xand added to the list of files in the change.
  4393. X.PP
  4394. XThis command will cancel any build or test registrations,
  4395. Xbecause adding another file logically invalidates them.
  4396. X.SH OPTIONS
  4397. XThe following options are understood:
  4398. X.so o_change.so
  4399. X.so o_help.so
  4400. X.so o_list.so
  4401. X.so o_nolog.so
  4402. X.so o_project.so
  4403. X.so o_terse.so
  4404. X.so o_verbose.so
  4405. X.so o__rules.so
  4406. X.SH RECOMMENDED ALIAS
  4407. XThe recommended alias for this command is
  4408. X.nf
  4409. X.ta 8n 16n
  4410. Xcsh%    alias aemv '\*(n) -mv \e!* -v'
  4411. Xsh$    aemv(){\*(n) -mv $* -v}
  4412. X.fi
  4413. X.SH ERRORS
  4414. XIt is an error if
  4415. Xthe change is not in the
  4416. X.I "being developed"
  4417. Xstate.
  4418. X.br
  4419. XIt is an error if
  4420. Xthe change is not assigned to the current user.
  4421. X.br
  4422. XIt is an error if
  4423. Xeither file is already in the change.
  4424. X.so z_exit.so
  4425. X.so z_cr.so
  4426. END_OF_FILE
  4427. if test 2135 -ne `wc -c <'man1/aemv.1'`; then
  4428.     echo shar: \"'man1/aemv.1'\" unpacked with wrong size!
  4429. fi
  4430. # end of 'man1/aemv.1'
  4431. fi
  4432. if test -f 'man1/aenc.1' -a "${1}" != "-c" ; then 
  4433.   echo shar: Will not clobber existing file \"'man1/aenc.1'\"
  4434. else
  4435. echo shar: Extracting \"'man1/aenc.1'\" \(2128 characters\)
  4436. sed "s/^X//" >'man1/aenc.1' <<'END_OF_FILE'
  4437. X'\" t
  4438. X.\"    aegis - project change supervisor
  4439. X.\"    Copyright (C) 1991, 1992, 1993 Peter Miller.
  4440. X.\"    All rights reserved.
  4441. X.\"
  4442. X.\"    This program is free software; you can redistribute it and/or modify
  4443. X.\"    it under the terms of the GNU General Public License as published by
  4444. X.\"    the Free Software Foundation; either version 2 of the License, or
  4445. X.\"    (at your option) any later version.
  4446. X.\"
  4447. X.\"    This program is distributed in the hope that it will be useful,
  4448. X.\"    but WITHOUT ANY WARRANTY; without even the implied warranty of
  4449. X.\"    MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
  4450. X.\"    GNU General Public License for more details.
  4451. X.\"
  4452. X.\"    You should have received a copy of the GNU General Public License
  4453. X.\"    along with this program; if not, write to the Free Software
  4454. X.\"    Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.
  4455. X.\"
  4456. X.\" MANIFEST: manual entry for 'aegis -New_Change' command
  4457. X.\"
  4458. X.so z_name.so
  4459. X.TH "\*(n) -New_Change" 1 \*(N)
  4460. X.SH NAME
  4461. X\*(n) -New_Change \- add a new change to a project
  4462. X.SH SYNOPSIS
  4463. X.B \*(n)
  4464. X.B -New_Change
  4465. X.I attr-file
  4466. X[
  4467. X.IR option ...
  4468. X]
  4469. X.br
  4470. X.B \*(n)
  4471. X.B -New_Change
  4472. X.B -Edit
  4473. X[
  4474. X.IR option ...
  4475. X]
  4476. X.br
  4477. X.B \*(n)
  4478. X.B -New_Change
  4479. X.B -List
  4480. X[
  4481. X.IR option ...
  4482. X]
  4483. X.br
  4484. X.B \*(n)
  4485. X.B -New_Change
  4486. X.B -Help
  4487. X.SH DESCRIPTION
  4488. XThe
  4489. X.I \*(n)
  4490. X.I -New_Change
  4491. Xcommand is used to
  4492. Xadd a new change to a project.
  4493. XSee
  4494. X.IR aecattr (5)
  4495. Xfor information on the format of the
  4496. X.IR attr-file .
  4497. X.PP
  4498. XThe change is created in the 'awaiting_development' state.
  4499. XThe change is not assigned to any user.
  4500. XThe change has no development directory.
  4501. X.PP
  4502. XIt is not possible to choose your own change number.
  4503. X.SH OPTIONS
  4504. XThe following options are understood:
  4505. X.so o_edit.so
  4506. X.so o_help.so
  4507. X.so o_list.so
  4508. X.so o_project.so
  4509. X.so o_terse.so
  4510. X.so o_verbose.so
  4511. X.so o__rules.so
  4512. X.SH RECOMMENDED ALIAS
  4513. XThe recommended alias for this command is
  4514. X.nf
  4515. X.ta 8n 16n
  4516. Xcsh%    alias aenc '\*(n) -nc \e!* -v'
  4517. Xsh$    aenc(){\*(n) -nc $* -v}
  4518. X.fi
  4519. X.SH ERRORS
  4520. XIt is an error if
  4521. Xthe current user is not an administrator of the project.
  4522. X(In some cases it is possible for developers of a project to create changes,
  4523. Xsee 
  4524. X.IR aepattr (5)
  4525. Xfor more information.)
  4526. X.so z_exit.so
  4527. X.so z_cr.so
  4528. END_OF_FILE
  4529. if test 2128 -ne `wc -c <'man1/aenc.1'`; then
  4530.     echo shar: \"'man1/aenc.1'\" unpacked with wrong size!
  4531. fi
  4532. # end of 'man1/aenc.1'
  4533. fi
  4534. if test -f 'man1/aenf.1' -a "${1}" != "-c" ; then 
  4535.   echo shar: Will not clobber existing file \"'man1/aenf.1'\"
  4536. else
  4537. echo shar: Extracting \"'man1/aenf.1'\" \(2726 characters\)
  4538. sed "s/^X//" >'man1/aenf.1' <<'END_OF_FILE'
  4539. X'\" t
  4540. X.\"    aegis - project change supervisor
  4541. X.\"    Copyright (C) 1991, 1992, 1993 Peter Miller.
  4542. X.\"    All rights reserved.
  4543. X.\"
  4544. X.\"    This program is free software; you can redistribute it and/or modify
  4545. X.\"    it under the terms of the GNU General Public License as published by
  4546. X.\"    the Free Software Foundation; either version 2 of the License, or
  4547. X.\"    (at your option) any later version.
  4548. X.\"
  4549. X.\"    This program is distributed in the hope that it will be useful,
  4550. X.\"    but WITHOUT ANY WARRANTY; without even the implied warranty of
  4551. X.\"    MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
  4552. X.\"    GNU General Public License for more details.
  4553. X.\"
  4554. X.\"    You should have received a copy of the GNU General Public License
  4555. X.\"    along with this program; if not, write to the Free Software
  4556. X.\"    Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.
  4557. X.\"
  4558. X.\" MANIFEST: manual entry for 'aegis -New_File' command
  4559. X.\"
  4560. X.so z_name.so
  4561. X.TH "\*(n) -New_File" 1 \*(N)
  4562. X.SH NAME
  4563. X\*(n) -New_File \- add new files to a change
  4564. X.SH SYNOPSIS
  4565. X.B \*(n)
  4566. X.B -New_File
  4567. X.IR file-name ...
  4568. X[
  4569. X.IR option ...
  4570. X]
  4571. X.br
  4572. X.B \*(n)
  4573. X.B -New_File
  4574. X.B -List
  4575. X[
  4576. X.IR option ...
  4577. X]
  4578. X.br
  4579. X.B \*(n)
  4580. X.B -New_File
  4581. X.B -Help
  4582. X.SH DESCRIPTION
  4583. XThe
  4584. X.I \*(n)
  4585. X.I -New_File
  4586. Xcommand is used to
  4587. Xadd new files to a change.
  4588. X.so z_intuit.so
  4589. X.PP
  4590. XThe named files will be
  4591. Xadded to the list of files in the change.
  4592. XFor each file named,
  4593. Xa new file is created in the development directory,
  4594. Xif it does not exist already.
  4595. XThe
  4596. X.I config
  4597. Xfile will be searched for a template for the new file.
  4598. XIf a template is found,
  4599. Xthe new file will be initialized to the template,
  4600. Xotherwise it will be created empty.
  4601. XIf the file already exists,
  4602. Xit will not be altered.
  4603. XSee
  4604. X.IR aepconf (5)
  4605. Xfor more information.
  4606. X.SH OPTIONS
  4607. XThe following options are understood
  4608. X.TP 8n
  4609. X.B -Build
  4610. X.br
  4611. XThis option may be used to specify that the file is constructed
  4612. Xduring a build (often only an integrate build),
  4613. Xso that history of it may be kept.
  4614. XThis is useful for generating patch files,
  4615. Xwhere a history of generated files is important.
  4616. XFiles created in this way may not be copied into a change,
  4617. Xthough they may be deleted.
  4618. XAvoid using files of this type,
  4619. Xif at all possible.
  4620. X.so o_change.so
  4621. X.so o_help.so
  4622. X.so o_list.so
  4623. X.so o_nolog.so
  4624. X.so o_project.so
  4625. X.so o_terse.so
  4626. X.so o_verbose.so
  4627. X.so o__rules.so
  4628. X.SH RECOMMENDED ALIAS
  4629. XThe recommended alias for this command is
  4630. X.nf
  4631. X.ta 8n 16n
  4632. Xcsh%    alias aenf '\*(n) -nf \e!* -v'
  4633. Xsh$    aenf(){\*(n) -nf $* -v}
  4634. X.fi
  4635. X.SH ERRORS
  4636. XIt is an error if
  4637. Xthe change is not in the 'being_developed' state.
  4638. X.br
  4639. XIt is an error if
  4640. Xthe change is not assigned to the current user.
  4641. X.br
  4642. XIt is an error if
  4643. Xthe file is already part of the change.
  4644. X.br
  4645. XIt is an error if
  4646. Xthe file is already part of the baseline.
  4647. X.so z_exit.so
  4648. X.so z_cr.so
  4649. END_OF_FILE
  4650. if test 2726 -ne `wc -c <'man1/aenf.1'`; then
  4651.     echo shar: \"'man1/aenf.1'\" unpacked with wrong size!
  4652. fi
  4653. # end of 'man1/aenf.1'
  4654. fi
  4655. if test -f 'man1/aenfu.1' -a "${1}" != "-c" ; then 
  4656.   echo shar: Will not clobber existing file \"'man1/aenfu.1'\"
  4657. else
  4658. echo shar: Extracting \"'man1/aenfu.1'\" \(2157 characters\)
  4659. sed "s/^X//" >'man1/aenfu.1' <<'END_OF_FILE'
  4660. X'\" t
  4661. X.\"    aegis - project change supervisor
  4662. X.\"    Copyright (C) 1991, 1992, 1993 Peter Miller.
  4663. X.\"    All rights reserved.
  4664. X.\"
  4665. X.\"    This program is free software; you can redistribute it and/or modify
  4666. X.\"    it under the terms of the GNU General Public License as published by
  4667. X.\"    the Free Software Foundation; either version 2 of the License, or
  4668. X.\"    (at your option) any later version.
  4669. X.\"
  4670. X.\"    This program is distributed in the hope that it will be useful,
  4671. X.\"    but WITHOUT ANY WARRANTY; without even the implied warranty of
  4672. X.\"    MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
  4673. X.\"    GNU General Public License for more details.
  4674. X.\"
  4675. X.\"    You should have received a copy of the GNU General Public License
  4676. X.\"    along with this program; if not, write to the Free Software
  4677. X.\"    Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.
  4678. X.\"
  4679. X.\" MANIFEST: manual entry for 'aegis -New_File_Undo' command
  4680. X.\"
  4681. X.so z_name.so
  4682. X.TH "\*(n) -New_File_Undo" 1 \*(N)
  4683. X.SH NAME
  4684. X\*(n) -New_File_Undo \- remove new files form a change
  4685. X.SH SYNOPSIS
  4686. X.B \*(n)
  4687. X.B -New_File_Undo
  4688. X.IR file-name ...
  4689. X[
  4690. X.IR option ...
  4691. X]
  4692. X.br
  4693. X.B \*(n)
  4694. X.B -New_File_Undo
  4695. X.B -List
  4696. X[
  4697. X.IR option ...
  4698. X]
  4699. X.br
  4700. X.B \*(n)
  4701. X.B -New_File_Undo
  4702. X.B -Help
  4703. X.SH DESCRIPTION
  4704. XThe
  4705. X.I \*(n)
  4706. X.I -New_File_Undo
  4707. Xcommand is used to
  4708. Xremove new files from a change
  4709. X(reverse the actions of the '\*(n) -New_File' command).
  4710. X.so z_intuit.so
  4711. X.PP
  4712. XThe file is removed from the list of files in the change.
  4713. XThe file is deleted from the development directory,
  4714. Xunless the
  4715. X.B -Keep
  4716. Xoption is used.
  4717. X.SH OPTIONS
  4718. XThe following options are understood:
  4719. X.so o_change.so
  4720. X.so o_help.so
  4721. X.so o_keep.so
  4722. X.so o_list.so
  4723. X.so o_project.so
  4724. X.so o_terse.so
  4725. X.so o_verbose.so
  4726. X.so o__rules.so
  4727. X.SH RECOMMENDED ALIAS
  4728. XThe recommended alias for this command is
  4729. X.nf
  4730. X.ta 8n 16n
  4731. Xcsh%    alias aenfu '\*(n) -nfu \e!$ -v'
  4732. Xsh$    aenfu(){\*(n) -nfu $* -v}
  4733. X.fi
  4734. X.SH ERRORS
  4735. XIt is an error if
  4736. Xthe change is not in the 'being_developed' state.
  4737. X.br
  4738. XIt is an error if
  4739. Xthe change is not assigned to the current user.
  4740. X.br
  4741. XIt is an error if
  4742. Xthe file is not in the change.
  4743. X.br
  4744. XIt is an error if
  4745. Xthe file was not added to the change with the '\*(n) -New_File' command.
  4746. X.so z_exit.so
  4747. X.so z_cr.so
  4748. END_OF_FILE
  4749. if test 2157 -ne `wc -c <'man1/aenfu.1'`; then
  4750.     echo shar: \"'man1/aenfu.1'\" unpacked with wrong size!
  4751. fi
  4752. # end of 'man1/aenfu.1'
  4753. fi
  4754. if test -f 'man1/aenpr.1' -a "${1}" != "-c" ; then 
  4755.   echo shar: Will not clobber existing file \"'man1/aenpr.1'\"
  4756. else
  4757. echo shar: Extracting \"'man1/aenpr.1'\" \(2901 characters\)
  4758. sed "s/^X//" >'man1/aenpr.1' <<'END_OF_FILE'
  4759. X'\" t
  4760. X.\"    aegis - project change supervisor
  4761. X.\"    Copyright (C) 1991, 1992, 1993 Peter Miller.
  4762. X.\"    All rights reserved.
  4763. X.\"
  4764. X.\"    This program is free software; you can redistribute it and/or modify
  4765. X.\"    it under the terms of the GNU General Public License as published by
  4766. X.\"    the Free Software Foundation; either version 2 of the License, or
  4767. X.\"    (at your option) any later version.
  4768. X.\"
  4769. X.\"    This program is distributed in the hope that it will be useful,
  4770. X.\"    but WITHOUT ANY WARRANTY; without even the implied warranty of
  4771. X.\"    MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
  4772. X.\"    GNU General Public License for more details.
  4773. X.\"
  4774. X.\"    You should have received a copy of the GNU General Public License
  4775. X.\"    along with this program; if not, write to the Free Software
  4776. X.\"    Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.
  4777. X.\"
  4778. X.\" MANIFEST: manual entry for 'aegis -New_PRoject' command
  4779. X.\"
  4780. X.so z_name.so
  4781. X.TH "\*(n) -New_PRoject" 1 \*(N)
  4782. X.SH NAME
  4783. X\*(n) -New_PRoject \- create a new project
  4784. X.SH SYNOPSIS
  4785. X.B \*(n)
  4786. X.B -New_PRoject
  4787. X.I project-name
  4788. X[
  4789. X.IR option ...
  4790. X]
  4791. X.br
  4792. X.B \*(n)
  4793. X.B -New_PRoject
  4794. X.B -List
  4795. X[
  4796. X.IR option ...
  4797. X]
  4798. X.br
  4799. X.B \*(n)
  4800. X.B -New_PRoject
  4801. X.B -Help
  4802. X.SH DESCRIPTION
  4803. XThe
  4804. X.I \*(n)
  4805. X.I -New_PRoject
  4806. Xcommand is used to
  4807. Xcreate a new project.
  4808. X.PP
  4809. XThe project directory,
  4810. Xunder which the project baseline and history and
  4811. Xstate and change data are kept,
  4812. Xwill be created at this time.
  4813. XIf the 
  4814. X.B -DIRectory 
  4815. Xoption is not given,
  4816. Xthe project directory will be created in the
  4817. Xdirectory specified by the default_\%project_\%directory field of
  4818. X.IR aeuconf (5),
  4819. Xor if not set
  4820. Xin current user's home directory;
  4821. Xin either case with the same name as the project.
  4822. X.PP
  4823. XThe project is created with the current user
  4824. Xand group as the owning user and group.
  4825. XThe current user is an administrator for the project.
  4826. XThe project has no developers, reviewers, integrators or other administrators.
  4827. X.PP
  4828. XThe project pointer will be added to the first element of the search path,
  4829. Xor
  4830. X.I /usr/local/lib/aegis
  4831. Xif no path is set.
  4832. XIf this is inappropriate, use the
  4833. X.B -LIBrary
  4834. Xoption to explicitly set the desired location.
  4835. XSee the
  4836. X.B -LIBrary
  4837. Xoption for more information.
  4838. X.PP
  4839. XThe project major version defaults to 1,
  4840. Xand the minor version defaults to 0,
  4841. Xunless modified by the version options,
  4842. Xbelow.
  4843. X.SH OPTIONS
  4844. XThe following options are understood:
  4845. X.so o_dir.so
  4846. X.so o_help.so
  4847. X.so o_lib.so
  4848. X.so o_list.so
  4849. X.so o_major.so
  4850. X.so o_minor.so
  4851. X.so o_terse.so
  4852. X.so o_verbose.so
  4853. X.so o__rules.so
  4854. X.SH RECOMMENDED ALIAS
  4855. XThe recommended alias for this command is
  4856. X.nf
  4857. X.ta 8n 16n
  4858. Xcsh%    alias aenpr '\*(n) -npr \e!* -v'
  4859. Xsh$    aenpr(){\*(n) -npr $* -v}
  4860. X.fi
  4861. X.SH ERRORS
  4862. XIt is an error if
  4863. Xthe project name already exists.
  4864. X.br
  4865. XIt is an error if
  4866. Xthe project directory already exists.
  4867. X.br
  4868. XIt is an error if
  4869. Xthe current user does not have sufficient permissions to create
  4870. Xthe directory specified with the
  4871. X.B -DIRectory
  4872. Xoption.
  4873. X.so z_exit.so
  4874. X.so z_cr.so
  4875. END_OF_FILE
  4876. if test 2901 -ne `wc -c <'man1/aenpr.1'`; then
  4877.     echo shar: \"'man1/aenpr.1'\" unpacked with wrong size!
  4878. fi
  4879. # end of 'man1/aenpr.1'
  4880. fi
  4881. if test -f 'man1/aent.1' -a "${1}" != "-c" ; then 
  4882.   echo shar: Will not clobber existing file \"'man1/aent.1'\"
  4883. else
  4884. echo shar: Extracting \"'man1/aent.1'\" \(2601 characters\)
  4885. sed "s/^X//" >'man1/aent.1' <<'END_OF_FILE'
  4886. X'\" t
  4887. X.\"    aegis - project change supervisor
  4888. X.\"    Copyright (C) 1991, 1992, 1993 Peter Miller.
  4889. X.\"    All rights reserved.
  4890. X.\"
  4891. X.\"    This program is free software; you can redistribute it and/or modify
  4892. X.\"    it under the terms of the GNU General Public License as published by
  4893. X.\"    the Free Software Foundation; either version 2 of the License, or
  4894. X.\"    (at your option) any later version.
  4895. X.\"
  4896. X.\"    This program is distributed in the hope that it will be useful,
  4897. X.\"    but WITHOUT ANY WARRANTY; without even the implied warranty of
  4898. X.\"    MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
  4899. X.\"    GNU General Public License for more details.
  4900. X.\"
  4901. X.\"    You should have received a copy of the GNU General Public License
  4902. X.\"    along with this program; if not, write to the Free Software
  4903. X.\"    Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.
  4904. X.\"
  4905. X.\" MANIFEST: manual entry for 'aegis -New_Test' command
  4906. X.\"
  4907. X.so z_name.so
  4908. X.TH "\*(n) -New_Test" 1 \*(N)
  4909. X.SH NAME
  4910. X\*(n) -New_Test \- add a new test to a change
  4911. X.SH SYNOPSIS
  4912. X.B \*(n)
  4913. X.B -New_Test
  4914. X[
  4915. X.IR option ...
  4916. X]
  4917. X.br
  4918. X.B \*(n)
  4919. X.B -New_Test
  4920. X.B -List
  4921. X[
  4922. X.IR option ...
  4923. X]
  4924. X.br
  4925. X.B \*(n)
  4926. X.B -New_Test
  4927. X.B -Help
  4928. X.SH DESCRIPTION
  4929. XThe
  4930. X.I \*(n)
  4931. X.I -New_Test
  4932. Xcommand is used to
  4933. Xadd a new test to a change.
  4934. XA new file is created in the development directory.
  4935. XThe
  4936. X.I config
  4937. Xfile will be searched for a template for the new file.
  4938. XIf a template is found,
  4939. Xthe new file will be initialized to the template,
  4940. Xotherwise it will be created empty.
  4941. XSee
  4942. X.IR aepconf (5)
  4943. Xfor more information.
  4944. X.PP
  4945. XNew tests default to automatic unless otherwise specified.
  4946. X.PP
  4947. XIt is not possible to choose your own test number,
  4948. Xor test file name.
  4949. XAll tests within a project are numbered uniquely.
  4950. XTest files are named as "\fItest/XX/tXXXX[am].sh\fP",
  4951. Xwhere
  4952. X.I XX
  4953. Xis the first 2 digits of the test number,
  4954. X.I XXXX
  4955. Xis the whole test number, and
  4956. X.I [am] 
  4957. Xis \f(CWa\fP for automatic tests
  4958. Xand \f(CWm\fP for manual tests.
  4959. X.PP
  4960. XTests may be modified in future by adding them to a change
  4961. Xwith the
  4962. X.IR aecp (1)
  4963. Xcommand.
  4964. XTests are treated just like any other source file,
  4965. Xand are subject to the same process.
  4966. X.SH OPTIONS
  4967. XThe following options are understood;
  4968. X.so o_auto.so
  4969. X.so o_change.so
  4970. X.so o_help.so
  4971. X.so o_list.so
  4972. X.so o_manual.so
  4973. X.so o_project.so
  4974. X.so o_terse.so
  4975. X.so o_verbose.so
  4976. X.so o__rules.so
  4977. X.SH RECOMMENDED ALIAS
  4978. XThe recommended alias for this command is
  4979. X.nf
  4980. X.ta 8n 16n
  4981. Xcsh%    alias aent '\*(n) -nt \e!* -v'
  4982. Xsh$    aent(){\*(n) -nt $* -v}
  4983. X.fi
  4984. X.SH ERRORS
  4985. XIt is an error if
  4986. Xthe change is not in the 'being_developed' state.
  4987. X.br
  4988. XIt is an error if
  4989. Xthe change is not assigned to the current user.
  4990. X.so z_exit.so
  4991. X.so z_cr.so
  4992. END_OF_FILE
  4993. if test 2601 -ne `wc -c <'man1/aent.1'`; then
  4994.     echo shar: \"'man1/aent.1'\" unpacked with wrong size!
  4995. fi
  4996. # end of 'man1/aent.1'
  4997. fi
  4998. if test -f 'man1/aerf.1' -a "${1}" != "-c" ; then 
  4999.   echo shar: Will not clobber existing file \"'man1/aerf.1'\"
  5000. else
  5001. echo shar: Extracting \"'man1/aerf.1'\" \(2569 characters\)
  5002. sed "s/^X//" >'man1/aerf.1' <<'END_OF_FILE'
  5003. X'\" t
  5004. X.\"    aegis - project change supervisor
  5005. X.\"    Copyright (C) 1991, 1992, 1993 Peter Miller.
  5006. X.\"    All rights reserved.
  5007. X.\"
  5008. X.\"    This program is free software; you can redistribute it and/or modify
  5009. X.\"    it under the terms of the GNU General Public License as published by
  5010. X.\"    the Free Software Foundation; either version 2 of the License, or
  5011. X.\"    (at your option) any later version.
  5012. X.\"
  5013. X.\"    This program is distributed in the hope that it will be useful,
  5014. X.\"    but WITHOUT ANY WARRANTY; without even the implied warranty of
  5015. X.\"    MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
  5016. X.\"    GNU General Public License for more details.
  5017. X.\"
  5018. X.\"    You should have received a copy of the GNU General Public License
  5019. X.\"    along with this program; if not, write to the Free Software
  5020. X.\"    Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.
  5021. X.\"
  5022. X.\" MANIFEST: manual entry for 'aegis -Review_FAIL' command
  5023. X.\"
  5024. X.so z_name.so
  5025. X.TH "\*(n) -Review_FAIL" 1 \*(N)
  5026. X.SH NAME
  5027. X\*(n) -Review_FAIL \- fail a change review
  5028. X.SH SYNOPSIS
  5029. X.B \*(n)
  5030. X.B -Review_FAIL
  5031. X.I reason-file
  5032. X[
  5033. X.IR option ...
  5034. X]
  5035. X.br
  5036. X.B \*(n)
  5037. X.B -Review_FAIL
  5038. X.B -Edit
  5039. X[
  5040. X.IR option ...
  5041. X]
  5042. X.br
  5043. X.B \*(n)
  5044. X.B -Review_FAIL
  5045. X.B -List
  5046. X[
  5047. X.IR option ...
  5048. X]
  5049. X.br
  5050. X.B \*(n)
  5051. X.B -Review_FAIL
  5052. X.B -Help
  5053. X.SH DESCRIPTION
  5054. XThe
  5055. X.I \*(n)
  5056. X.I -Review_FAIL
  5057. Xcommand is used to
  5058. Xinform \*(n) that a change has failed review.
  5059. X.PP
  5060. XThe change will be returned
  5061. Xfrom the 'being_reviewed' state
  5062. Xto the 'being_developed' state.
  5063. XThe change will cease to be assigned to the current user,
  5064. Xand will be reassigned to the originating developer.
  5065. X.PP
  5066. XThe developer will be notified by mail.
  5067. XSee the integrate_fail_notify_command in 
  5068. X.IR aepconf (5)
  5069. Xfor more information.
  5070. X.PP
  5071. XThe 
  5072. X.I reason-file
  5073. Xwill contain a description of why the change was failed.
  5074. XThe file is in plain text.
  5075. XIt is recommended that you only use newline to terminate paragraphs,
  5076. Xas with will result in better formatting in the various listings.
  5077. X.SH OPTIONS
  5078. XThe following options are understood:
  5079. X.so o_change.so
  5080. X.so o_edit.so
  5081. X.so o_help.so
  5082. X.so o_list.so
  5083. X.so o_project.so
  5084. X.so o_terse.so
  5085. X.so o_verbose.so
  5086. X.so o__rules.so
  5087. X.SH RECOMMENDED ALIAS
  5088. XThe recommended alias for this command is
  5089. X.nf
  5090. X.ta 8n 16n
  5091. Xcsh%    alias aerfail '\*(n) -rfail \e!* -v'
  5092. Xsh$    aerfail(){\*(n) -rfail $* -v}
  5093. X.fi
  5094. X.SH ERRORS
  5095. XIt is an error if
  5096. Xthe change is not in the 'being_reviewed' state.
  5097. X.br
  5098. XIt is an error if
  5099. Xthe current user is not a reviewer for the project.
  5100. X.br
  5101. XIt is an error if
  5102. Xthe current user developed the change and the project is configured to
  5103. Xdisallow developers to review their own changes (default).
  5104. X.so z_exit.so
  5105. X.so z_cr.so
  5106. END_OF_FILE
  5107. if test 2569 -ne `wc -c <'man1/aerf.1'`; then
  5108.     echo shar: \"'man1/aerf.1'\" unpacked with wrong size!
  5109. fi
  5110. # end of 'man1/aerf.1'
  5111. fi
  5112. if test -f 'man1/aet.1' -a "${1}" != "-c" ; then 
  5113.   echo shar: Will not clobber existing file \"'man1/aet.1'\"
  5114. else
  5115. echo shar: Extracting \"'man1/aet.1'\" \(2223 characters\)
  5116. sed "s/^X//" >'man1/aet.1' <<'END_OF_FILE'
  5117. X'\" t
  5118. X.\"    aegis - project change supervisor
  5119. X.\"    Copyright (C) 1991, 1992, 1993 Peter Miller.
  5120. X.\"    All rights reserved.
  5121. X.\"
  5122. X.\"    This program is free software; you can redistribute it and/or modify
  5123. X.\"    it under the terms of the GNU General Public License as published by
  5124. X.\"    the Free Software Foundation; either version 2 of the License, or
  5125. X.\"    (at your option) any later version.
  5126. X.\"
  5127. X.\"    This program is distributed in the hope that it will be useful,
  5128. X.\"    but WITHOUT ANY WARRANTY; without even the implied warranty of
  5129. X.\"    MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
  5130. X.\"    GNU General Public License for more details.
  5131. X.\"
  5132. X.\"    You should have received a copy of the GNU General Public License
  5133. X.\"    along with this program; if not, write to the Free Software
  5134. X.\"    Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.
  5135. X.\"
  5136. X.\" MANIFEST: manual entry for the 'aegis -Test' command
  5137. X.\"
  5138. X.so z_name.so
  5139. X.TH "\*(n) -Test" 1 \*(N)
  5140. X.SH NAME
  5141. X\*(n) -Test \- run tests
  5142. X.SH SYNOPSIS
  5143. X.B \*(n)
  5144. X.B -Test
  5145. X[
  5146. X.IR file-name ...
  5147. X][
  5148. X.IR option ...
  5149. X]
  5150. X.br
  5151. X.B \*(n)
  5152. X.B -Test
  5153. X.B -INDependent
  5154. X[
  5155. X.IR file-name ...
  5156. X][
  5157. X.IR option ...
  5158. X]
  5159. X.br
  5160. X.B \*(n)
  5161. X.B -Test
  5162. X.B -List
  5163. X[
  5164. X.IR option ...
  5165. X]
  5166. X.br
  5167. X.B \*(n)
  5168. X.B -Test
  5169. X.B -Help
  5170. X.SH DESCRIPTION
  5171. XThe
  5172. X.I \*(n)
  5173. X.I -Test
  5174. Xcommand is used to
  5175. Xrun tests.
  5176. XIf no files are named, all relevant tests are run.
  5177. XBy default both automatic and manual tests are run.
  5178. X.so z_intuit.so
  5179. X.PP
  5180. XTests are executed by 
  5181. Xthe Bourne shell.
  5182. XThe current directory will be the top of the appropriate directory tree.
  5183. XIf tests require temporary files, they should create them in
  5184. X.IR /tmp ,
  5185. Xas a test cannot expect to have write permission
  5186. Xin the current directory.
  5187. X.SH OPTIONS
  5188. XThe following options are understood:
  5189. X.so o_auto.so
  5190. X.so o_baselin.so
  5191. X.so o_change.so
  5192. X.so o_devdir.so
  5193. X.so o_help.so
  5194. X.so o_list.so
  5195. X.so o_manual.so
  5196. X.so o_project.so
  5197. X.so o_terse.so
  5198. X.so o_verbose.so
  5199. X.so o__rules.so
  5200. X.SH RECOMMENDED ALIAS
  5201. XThe recommended alias for this command is
  5202. X.nf
  5203. X.ta 8n 16n
  5204. Xcsh%    alias aet '\*(n) -t \e!* -v'
  5205. Xsh$    aet(){\*(n) -t $* -v}
  5206. X.fi
  5207. X.SH ERRORS
  5208. XIt is an error if
  5209. Xthe change is not in one of the 'being_developed' or 'being_integrated' states.
  5210. X.br
  5211. XIt is an error if
  5212. Xthe change is not assigned to the current user.
  5213. X.so z_exit.so
  5214. X.so z_cr.so
  5215. END_OF_FILE
  5216. if test 2223 -ne `wc -c <'man1/aet.1'`; then
  5217.     echo shar: \"'man1/aet.1'\" unpacked with wrong size!
  5218. fi
  5219. # end of 'man1/aet.1'
  5220. fi
  5221. if test -f 'man5/aecattr.so' -a "${1}" != "-c" ; then 
  5222.   echo shar: Will not clobber existing file \"'man5/aecattr.so'\"
  5223. else
  5224. echo shar: Extracting \"'man5/aecattr.so'\" \(2972 characters\)
  5225. sed "s/^X//" >'man5/aecattr.so' <<'END_OF_FILE'
  5226. X'\" t
  5227. X.\"    aegis - project change supervisor
  5228. X.\"    Copyright (C) 1991, 1992, 1993 Peter Miller.
  5229. X.\"    All rights reserved.
  5230. X.\"
  5231. X.\"    This program is free software; you can redistribute it and/or modify
  5232. X.\"    it under the terms of the GNU General Public License as published by
  5233. X.\"    the Free Software Foundation; either version 2 of the License, or
  5234. X.\"    (at your option) any later version.
  5235. X.\"
  5236. X.\"    This program is distributed in the hope that it will be useful,
  5237. X.\"    but WITHOUT ANY WARRANTY; without even the implied warranty of
  5238. X.\"    MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
  5239. X.\"    GNU General Public License for more details.
  5240. X.\"
  5241. X.\"    You should have received a copy of the GNU General Public License
  5242. X.\"    along with this program; if not, write to the Free Software
  5243. X.\"    Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.
  5244. X.\"
  5245. X.\" MANIFEST: description of aegis change attribute file format
  5246. X.\"
  5247. X.TP 8n
  5248. Xdescription = string;
  5249. X.br
  5250. XThis field contains a detailed description of the change. 
  5251. X.TP 8n
  5252. Xbrief_description = string;
  5253. X.br
  5254. XThis field contains a brief description of the change. 
  5255. X.TP 8n
  5256. Xcause = ( ... );
  5257. X.br
  5258. XThis field describes the cause which motivated the change.
  5259. X.RS 8n
  5260. X.TP 8n
  5261. Xexternal_bug
  5262. X.br
  5263. XThe change was created in response to
  5264. Xa bug report
  5265. Xfrom outside the development team.
  5266. XThis repairs existing functionality.
  5267. X.TP 8n
  5268. Xexternal_enhancement
  5269. X.br
  5270. XThe change was created in response to
  5271. Xan enhancement request
  5272. Xfrom outside the development team.
  5273. XThis adds new functionality.
  5274. X.TP 8n
  5275. Xexternal_improvement
  5276. X.br
  5277. XThe change was created in response to
  5278. Xan improvement request
  5279. Xfrom outside the development team.
  5280. XThis improves existing functionality.
  5281. X.TP 8n
  5282. Xinternal_bug
  5283. X.br
  5284. XThe change was created in response to
  5285. Xa bug report
  5286. Xfrom inside the development team.
  5287. XThis repairs existing functionality.
  5288. X.TP 8n
  5289. Xinternal_enhancement
  5290. X.br
  5291. XThe change was created in response to
  5292. Xan enhancement request
  5293. Xfrom inside the development team.
  5294. XThis adds new functionality.
  5295. X.TP 8n
  5296. Xinternal_improvement
  5297. X.br
  5298. XThe change was created in response to
  5299. Xan improvement request
  5300. Xfrom inside the development team.
  5301. XThis improves existing functionality.
  5302. X.TP 8n
  5303. Xchain
  5304. X.br
  5305. XThis cause is where you have a fix to fix a fix;
  5306. Xtracking these is an interesting quality metric.
  5307. X.RE
  5308. X.TP 8n
  5309. Xtest_exempt = boolean;
  5310. X.br
  5311. XThis field is true if it is not necessary
  5312. Xto test the change.
  5313. XIt is, in general, desirable to test all changes,
  5314. Xwhether new functionality or a bug fix.
  5315. XThis is, however, a project management issue.
  5316. X.TP 8n
  5317. Xtest_baseline_exempt = boolean;
  5318. X.br
  5319. XThis field is true if it is not necessary
  5320. Xto test the change against the baseline before it is changed.
  5321. XThe test of the baseline is required to fail;
  5322. Xthis is to establish that the test has isolated the bug,
  5323. Xand that the change has fixed that isolated bug.
  5324. X.TP 8n
  5325. Xregression_test_exempt = boolean;
  5326. X.br
  5327. XThis field is true if it is not necessary
  5328. Xto perform a full regression test on the change.
  5329. XIf absent, defaults to true for all causes except improvements.
  5330. END_OF_FILE
  5331. if test 2972 -ne `wc -c <'man5/aecattr.so'`; then
  5332.     echo shar: \"'man5/aecattr.so'\" unpacked with wrong size!
  5333. fi
  5334. # end of 'man5/aecattr.so'
  5335. fi
  5336. if test -f 'man5/aegis.5' -a "${1}" != "-c" ; then 
  5337.   echo shar: Will not clobber existing file \"'man5/aegis.5'\"
  5338. else
  5339. echo shar: Extracting \"'man5/aegis.5'\" \(2717 characters\)
  5340. sed "s/^X//" >'man5/aegis.5' <<'END_OF_FILE'
  5341. X'\" t
  5342. X.\"    aegis - project change supervisor
  5343. X.\"    Copyright (C) 1991, 1992, 1993 Peter Miller.
  5344. X.\"    All rights reserved.
  5345. X.\"
  5346. X.\"    This program is free software; you can redistribute it and/or modify
  5347. X.\"    it under the terms of the GNU General Public License as published by
  5348. X.\"    the Free Software Foundation; either version 2 of the License, or
  5349. X.\"    (at your option) any later version.
  5350. X.\"
  5351. X.\"    This program is distributed in the hope that it will be useful,
  5352. X.\"    but WITHOUT ANY WARRANTY; without even the implied warranty of
  5353. X.\"    MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
  5354. X.\"    GNU General Public License for more details.
  5355. X.\"
  5356. X.\"    You should have received a copy of the GNU General Public License
  5357. X.\"    along with this program; if not, write to the Free Software
  5358. X.\"    Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.
  5359. X.\"
  5360. X.\" MANIFEST: description of aegis file format general structure
  5361. X.\"
  5362. X.so z_name.so
  5363. X.TH \*(n) 5 \*(N)
  5364. X.SH NAME
  5365. X\*(n) - file format
  5366. X.SH DESCRIPTION
  5367. XThe files used by the
  5368. X.I \*(n)
  5369. Xprogram all have the same format.
  5370. XSome of the files used by \*(n) are created and maintained by humans,
  5371. Xand some are created an maintained by \*(n) itself.
  5372. XThe various manual entries say which is which.
  5373. X.SH LEXICAL CONSIDERATIONS
  5374. XNames are any C identifier.
  5375. XComments are C-style comments.
  5376. XNumbers are decimal, octal or hexadecimal, as for C constants.
  5377. XStrings are C-style strings.
  5378. XWhitespace (spaces, tabs and newlines) are ignored
  5379. Xexcept in strings or as they serve to separate tokens.
  5380. X.SH GRAMMAR
  5381. XThe format of all \*(n) files is described by a
  5382. X.I yacc (1)
  5383. Xgrammar.
  5384. X.eB
  5385. X%%
  5386. Xfile
  5387. X    : field_list
  5388. X    ;
  5389. X.eE
  5390. XA file contains a field list.
  5391. X.eB
  5392. Xfield_list
  5393. X    : /* empty */
  5394. X    | field_list field
  5395. X    ;
  5396. X.eE
  5397. XA field list is zero or more fields.
  5398. X.eB
  5399. Xfield
  5400. X    : NAME '=' value ';'
  5401. X    ;
  5402. X.eE
  5403. XA field is set by giving a name and a value.
  5404. X.eB
  5405. Xvalue
  5406. X    : NAME
  5407. X    | INTEGER
  5408. X    | STRING
  5409. X    | structure
  5410. X    | list
  5411. X    ;
  5412. X.eE
  5413. XA value may be a member of an enumeration (NAME),
  5414. Xor an integer constant,
  5415. Xor a literal string.
  5416. XMore complex values may be constructed from these simple values.
  5417. X.eB
  5418. Xstructure
  5419. X    : '{' field_list '}'
  5420. X    ;
  5421. X.eE
  5422. XA structure is a grouped list of fields.
  5423. X.eB
  5424. Xlist
  5425. X    : '[' list_body ']'
  5426. X    ;
  5427. Xlist_body
  5428. X    : /* empty */
  5429. X    | value_list
  5430. X    | value_list ','
  5431. X    ;
  5432. Xvalue_list
  5433. X    : value
  5434. X    | value_list ',' value
  5435. X.eE
  5436. XA list is a sequential list of values separated by commas.
  5437. XIt may be empty,
  5438. Xor it may have a trailing comma.
  5439. X.SH SEMANTICS
  5440. XThe types of the values must match those in the definition
  5441. Xof the file.
  5442. XSee the relevant man pages for more information.
  5443. X.PP
  5444. XFiles which are rewritten by
  5445. X.B \*(n)
  5446. Xwill lose any comments placed in them.
  5447. XWhen time fields are emitted by
  5448. X.B \*(n)
  5449. Xthey are usually followed by a human readable date in a comment.
  5450. X.so z_cr.so
  5451. END_OF_FILE
  5452. if test 2717 -ne `wc -c <'man5/aegis.5'`; then
  5453.     echo shar: \"'man5/aegis.5'\" unpacked with wrong size!
  5454. fi
  5455. # end of 'man5/aegis.5'
  5456. fi
  5457. if test -f 'man5/aeuconf.5' -a "${1}" != "-c" ; then 
  5458.   echo shar: Will not clobber existing file \"'man5/aeuconf.5'\"
  5459. else
  5460. echo shar: Extracting \"'man5/aeuconf.5'\" \(2100 characters\)
  5461. sed "s/^X//" >'man5/aeuconf.5' <<'END_OF_FILE'
  5462. X'\" t
  5463. X.\"    aegis - project change supervisor
  5464. X.\"    Copyright (C) 1991, 1992, 1993 Peter Miller.
  5465. X.\"    All rights reserved.
  5466. X.\"
  5467. X.\"    This program is free software; you can redistribute it and/or modify
  5468. X.\"    it under the terms of the GNU General Public License as published by
  5469. X.\"    the Free Software Foundation; either version 2 of the License, or
  5470. X.\"    (at your option) any later version.
  5471. X.\"
  5472. X.\"    This program is distributed in the hope that it will be useful,
  5473. X.\"    but WITHOUT ANY WARRANTY; without even the implied warranty of
  5474. X.\"    MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
  5475. X.\"    GNU General Public License for more details.
  5476. X.\"
  5477. X.\"    You should have received a copy of the GNU General Public License
  5478. X.\"    along with this program; if not, write to the Free Software
  5479. X.\"    Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.
  5480. X.\"
  5481. X.\" MANIFEST: description of aegis user config file format
  5482. X.\"
  5483. X.so z_name.so
  5484. X.TH aeuconf 5 \*(n)
  5485. X.SH NAME
  5486. Xaeuconf - user configuration file
  5487. X.SH SYNOPSIS
  5488. X\fI$HOME\f(CW/.\*(n)rc\fR
  5489. X.SH DESCRIPTION
  5490. XA user configuration file
  5491. Xis used to hold user defaults.
  5492. XThis file is created and edited by the user.
  5493. XThis file is only ever read by \*(n).
  5494. X.SH CONTENTS
  5495. XThe file contains the following fields:
  5496. X.TP 8n
  5497. Xdefault_development_directory = string;
  5498. X.br
  5499. XThe pathname of where to place new development directories.
  5500. XThe pathname may be relative,
  5501. Xin which case it is relative to \fI$HOME\fP.
  5502. XThe default is the field of the same name in the project attributes,
  5503. Xor \fI$HOME\fP neither is set.
  5504. X.TP 8n
  5505. Xdefault_project_directory = string;
  5506. X.br
  5507. XThe pathname of where to place new project directories.
  5508. XThe pathname may be relative.
  5509. XIf this path is relative,
  5510. Xit is relative to \fI$HOME\fP.
  5511. XThe default is \fI$HOME\fP.
  5512. X.TP 8n
  5513. Xdefault_project_name = string;
  5514. X.br
  5515. XThe name of a project.
  5516. X.TP 8n
  5517. Xdefault_change_number = integer;
  5518. X.br
  5519. XThe number of a change.
  5520. X.PP
  5521. XPlease note that the
  5522. X.I default_project_name
  5523. Xfield and the
  5524. X.I default_change_number
  5525. Xfield
  5526. Xare unrelated.
  5527. XSpecifying both does not mean that single change within that single project,
  5528. Xthey have nothing to do with each other.
  5529. X.so z_cr.so
  5530. END_OF_FILE
  5531. if test 2100 -ne `wc -c <'man5/aeuconf.5'`; then
  5532.     echo shar: \"'man5/aeuconf.5'\" unpacked with wrong size!
  5533. fi
  5534. # end of 'man5/aeuconf.5'
  5535. fi
  5536. if test -f 'test/00/t0001a.sh' -a "${1}" != "-c" ; then 
  5537.   echo shar: Will not clobber existing file \"'test/00/t0001a.sh'\"
  5538. else
  5539. echo shar: Extracting \"'test/00/t0001a.sh'\" \(2820 characters\)
  5540. sed "s/^X//" >'test/00/t0001a.sh' <<'END_OF_FILE'
  5541. X#! /bin/sh
  5542. X#
  5543. X#    aegis - project change supervisor
  5544. X#    Copyright (C) 1991, 1992, 1993 Peter Miller.
  5545. X#    All rights reserved.
  5546. X#
  5547. X#    This program is free software; you can redistribute it and/or modify
  5548. X#    it under the terms of the GNU General Public License as published by
  5549. X#    the Free Software Foundation; either version 2 of the License, or
  5550. X#    (at your option) any later version.
  5551. X#
  5552. X#    This program is distributed in the hope that it will be useful,
  5553. X#    but WITHOUT ANY WARRANTY; without even the implied warranty of
  5554. X#    MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
  5555. X#    GNU General Public License for more details.
  5556. X#
  5557. X#    You should have received a copy of the GNU General Public License
  5558. X#    along with this program; if not, write to the Free Software
  5559. X#    Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.
  5560. X#
  5561. X# MANIFEST: test -Help for each function
  5562. X#
  5563. X
  5564. Xunset AEGIS_PROJECT
  5565. Xunset AEGIS_CHANGE
  5566. Xumask 022
  5567. X
  5568. XUSER=${USER:-${LOGNAME:-`whoami`}}
  5569. X
  5570. Xfail()
  5571. X{
  5572. X    echo FAILED test of -Help for each function 1>&2
  5573. X    exit 1
  5574. X}
  5575. Xpass()
  5576. X{
  5577. X    exit 0
  5578. X}
  5579. Xtrap "fail" 1 2 3 15
  5580. X
  5581. X#
  5582. X# make sure the various variations have -help implemented
  5583. X#
  5584. XPAGER=cat
  5585. Xexport PAGER
  5586. X./bin/aegis -help > /dev/null
  5587. Xif test $? -ne 0 ; then fail; fi
  5588. X./bin/aegis -newpro -help > /dev/null
  5589. Xif test $? -ne 0 ; then fail; fi
  5590. X./bin/aegis -proatt -help > /dev/null
  5591. Xif test $? -ne 0 ; then fail; fi
  5592. X./bin/aegis -newcha -help > /dev/null
  5593. Xif test $? -ne 0 ; then fail; fi
  5594. X./bin/aegis -newdev -help > /dev/null
  5595. Xif test $? -ne 0 ; then fail; fi
  5596. X./bin/aegis -devbeg -help > /dev/null
  5597. Xif test $? -ne 0 ; then fail; fi
  5598. X./bin/aegis -new_file -help > /dev/null
  5599. Xif test $? -ne 0 ; then fail; fi
  5600. X./bin/aegis -newt -help > /dev/null
  5601. Xif test $? -ne 0 ; then fail; fi
  5602. X./bin/aegis -build -help > /dev/null
  5603. Xif test $? -ne 0 ; then fail; fi
  5604. X./bin/aegis -diff -help > /dev/null
  5605. Xif test $? -ne 0 ; then fail; fi
  5606. X./bin/aegis -test -help > /dev/null
  5607. Xif test $? -ne 0 ; then fail; fi
  5608. X./bin/aegis -dev_end -help > /dev/null
  5609. Xif test $? -ne 0 ; then fail; fi
  5610. X./bin/aegis -newrev -help > /dev/null
  5611. Xif test $? -ne 0 ; then fail; fi
  5612. X./bin/aegis -review_fail -help > /dev/null
  5613. Xif test $? -ne 0 ; then fail; fi
  5614. X./bin/aegis -review_pass -help > /dev/null
  5615. Xif test $? -ne 0 ; then fail; fi
  5616. X./bin/aegis -newint -help > /dev/null
  5617. Xif test $? -ne 0 ; then fail; fi
  5618. X./bin/aegis -intbeg -help > /dev/null
  5619. Xif test $? -ne 0 ; then fail; fi
  5620. X./bin/aegis -cd -help > /dev/null
  5621. Xif test $? -ne 0 ; then fail; fi
  5622. X./bin/aegis -integrate_begin_undo -help > /dev/null
  5623. Xif test $? -ne 0 ; then fail; fi
  5624. X./bin/aegis -intfail -help > /dev/null
  5625. Xif test $? -ne 0 ; then fail; fi
  5626. X./bin/aegis -intpass -help > /dev/null
  5627. Xif test $? -ne 0 ; then fail; fi
  5628. X./bin/aegis -list -help > /dev/null
  5629. Xif test $? -ne 0 ; then fail; fi
  5630. X./bin/aegis -cp -help > /dev/null
  5631. Xif test $? -ne 0 ; then fail; fi
  5632. X
  5633. X#
  5634. X# the things tested in this test, worked
  5635. X#
  5636. Xpass
  5637. END_OF_FILE
  5638. if test 2820 -ne `wc -c <'test/00/t0001a.sh'`; then
  5639.     echo shar: \"'test/00/t0001a.sh'\" unpacked with wrong size!
  5640. fi
  5641. # end of 'test/00/t0001a.sh'
  5642. fi
  5643. if test -f 'test/00/t0013a.sh' -a "${1}" != "-c" ; then 
  5644.   echo shar: Will not clobber existing file \"'test/00/t0013a.sh'\"
  5645. else
  5646. echo shar: Extracting \"'test/00/t0013a.sh'\" \(2158 characters\)
  5647. sed "s/^X//" >'test/00/t0013a.sh' <<'END_OF_FILE'
  5648. X#! /bin/sh
  5649. X#
  5650. X#    aegis - project change supervisor
  5651. X#    Copyright (C) 1993 Peter Miller.
  5652. X#    All rights reserved.
  5653. X#
  5654. X#    This program is free software; you can redistribute it and/or modify
  5655. X#    it under the terms of the GNU General Public License as published by
  5656. X#    the Free Software Foundation; either version 2 of the License, or
  5657. X#    (at your option) any later version.
  5658. X#
  5659. X#    This program is distributed in the hope that it will be useful,
  5660. X#    but WITHOUT ANY WARRANTY; without even the implied warranty of
  5661. X#    MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
  5662. X#    GNU General Public License for more details.
  5663. X#
  5664. X#    You should have received a copy of the GNU General Public License
  5665. X#    along with this program; if not, write to the Free Software
  5666. X#    Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.
  5667. X#
  5668. X# MANIFEST: Test the -New_Change_Undo functionality
  5669. X#
  5670. X
  5671. Xunset AEGIS_PROJECT
  5672. Xunset AEGIS_CHANGE
  5673. Xumask 022
  5674. X
  5675. XUSER=${USER:-${LOGNAME:-`whoami`}}
  5676. X
  5677. Xwork=${AEGIS_TMP:-/tmp}/$$
  5678. XPAGER=cat
  5679. Xexport PAGER
  5680. X
  5681. Xhere=`pwd`
  5682. Xif test $? -ne 0 ; then exit 1; fi
  5683. X
  5684. Xfail()
  5685. X{
  5686. X    set +x
  5687. X    cd $here
  5688. X    echo FAILED test of -New_Change_Undo functionality 1>&2
  5689. X    find $work -type d -user $USER -exec chmod u+w {} \;
  5690. X    rm -rf $work
  5691. X    exit 1
  5692. X}
  5693. Xpass()
  5694. X{
  5695. X    set +x
  5696. X    cd $here
  5697. X    echo PASSED 1>&2
  5698. X    find $work -type d -user $USER -exec chmod u+w {} \;
  5699. X    rm -rf $work
  5700. X    exit 0
  5701. X}
  5702. Xtrap "fail" 1 2 3 15
  5703. X
  5704. Xmkdir $work
  5705. Xif test $? -ne 0 ; then exit 1; fi
  5706. Xcd $work
  5707. Xif test $? -ne 0 ; then fail; fi
  5708. X
  5709. Xworklib=$work/lib
  5710. Xworkproj=$work/foo
  5711. X
  5712. X#
  5713. X# create the project
  5714. X#
  5715. X$here/bin/aegis -npr foo -lib $worklib -dir $workproj
  5716. Xif test $? -ne 0 ; then fail; fi
  5717. X
  5718. X#
  5719. X# create a change
  5720. X#
  5721. Xcat > ncf << 'fubar'
  5722. Xbrief_description = "hello";
  5723. Xcause = internal_enhancement;
  5724. Xfubar
  5725. Xif test $? -ne 0 ; then fail; fi
  5726. X$here/bin/aegis -nc ncf -lib $worklib -p foo
  5727. Xif test $? -ne 0 ; then fail; fi
  5728. Xif test ! -f $workproj/info/change/0/001; then fail; fi
  5729. X
  5730. X#
  5731. X# remove the change
  5732. X#
  5733. X$here/bin/aegis -ncu -lib $worklib -p foo -c 1
  5734. Xif test $? -ne 0 ; then fail; fi
  5735. Xif test -f $workproj/info/change/0/001; then fail; fi
  5736. X
  5737. X#
  5738. X# Only definite negatives are possible.
  5739. X# The functionality exercised by this test appears to work,
  5740. X# no other guarantees are made.
  5741. X#
  5742. Xpass
  5743. END_OF_FILE
  5744. if test 2158 -ne `wc -c <'test/00/t0013a.sh'`; then
  5745.     echo shar: \"'test/00/t0013a.sh'\" unpacked with wrong size!
  5746. fi
  5747. # end of 'test/00/t0013a.sh'
  5748. fi
  5749. if test -f 'test/00/t0014a.sh' -a "${1}" != "-c" ; then 
  5750.   echo shar: Will not clobber existing file \"'test/00/t0014a.sh'\"
  5751. else
  5752. echo shar: Extracting \"'test/00/t0014a.sh'\" \(2521 characters\)
  5753. sed "s/^X//" >'test/00/t0014a.sh' <<'END_OF_FILE'
  5754. X#! /bin/sh
  5755. X#
  5756. X#    aegis - project change supervisor
  5757. X#    Copyright (C) 1993 Peter Miller.
  5758. X#    All rights reserved.
  5759. X#
  5760. X#    This program is free software; you can redistribute it and/or modify
  5761. X#    it under the terms of the GNU General Public License as published by
  5762. X#    the Free Software Foundation; either version 2 of the License, or
  5763. X#    (at your option) any later version.
  5764. X#
  5765. X#    This program is distributed in the hope that it will be useful,
  5766. X#    but WITHOUT ANY WARRANTY; without even the implied warranty of
  5767. X#    MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
  5768. X#    GNU General Public License for more details.
  5769. X#
  5770. X#    You should have received a copy of the GNU General Public License
  5771. X#    along with this program; if not, write to the Free Software
  5772. X#    Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.
  5773. X#
  5774. X# MANIFEST: Test the -Develop_Begin_Undo functionality
  5775. X#
  5776. X
  5777. Xunset AEGIS_PROJECT
  5778. Xunset AEGIS_CHANGE
  5779. Xumask 022
  5780. X
  5781. XUSER=${USER:-${LOGNAME:-`whoami`}}
  5782. X
  5783. Xwork=${AEGIS_TMP:-/tmp}/$$
  5784. XPAGER=cat
  5785. Xexport PAGER
  5786. X
  5787. Xhere=`pwd`
  5788. Xif test $? -ne 0 ; then exit 1; fi
  5789. X
  5790. Xfail()
  5791. X{
  5792. X    set +x
  5793. X    cd $here
  5794. X    echo FAILED test of -Develop_Begin_Undo functionality 1>&2
  5795. X    find $work -type d -user $USER -exec chmod u+w {} \;
  5796. X    rm -rf $work
  5797. X    exit 1
  5798. X}
  5799. Xpass()
  5800. X{
  5801. X    set +x
  5802. X    cd $here
  5803. X    echo PASSED 1>&2
  5804. X    find $work -type d -user $USER -exec chmod u+w {} \;
  5805. X    rm -rf $work
  5806. X    exit 0
  5807. X}
  5808. Xtrap "fail" 1 2 3 15
  5809. X
  5810. Xmkdir $work
  5811. Xif test $? -ne 0 ; then exit 1; fi
  5812. Xcd $work
  5813. Xif test $? -ne 0 ; then fail; fi
  5814. X
  5815. Xworklib=$work/lib
  5816. Xworkproj=$work/foo
  5817. Xworkchan=$work/bar
  5818. X
  5819. X#
  5820. X# new project
  5821. X#
  5822. X$here/bin/aegis -npr foo -lib $worklib -dir $workproj
  5823. Xif test $? -ne 0 ; then fail; fi
  5824. X
  5825. X#
  5826. X# new change
  5827. X#
  5828. Xcat > ncf << 'fubar'
  5829. Xbrief_description = "please hit me";
  5830. Xcause = internal_enhancement;
  5831. Xfubar
  5832. Xif test $? -ne 0 ; then fail; fi
  5833. X$here/bin/aegis -nc ncf -lib $worklib -p foo
  5834. Xif test $? -ne 0 ; then fail; fi
  5835. X
  5836. X#
  5837. X# make current user a developer
  5838. X#
  5839. X$here/bin/aegis -nd $USER -lib $worklib -p foo
  5840. Xif test $? -ne 0 ; then fail; fi
  5841. X
  5842. X#
  5843. X# develop begin
  5844. X#
  5845. X$here/bin/aegis -db -lib $worklib -p foo -c 1 -dir $workchan
  5846. Xif test $? -ne 0 ; then fail; fi
  5847. Xif test ! -d $workchan ; then fail ; fi
  5848. X
  5849. X#
  5850. X# add a file just to spice it up a little
  5851. X#
  5852. X$here/bin/aegis -nf $workchan/snot -lib $worklib -p foo -c 1
  5853. Xif test $? -ne 0 ; then fail; fi
  5854. X
  5855. X#
  5856. X# develop begin undo
  5857. X#
  5858. X$here/bin/aegis -dbu -lib $worklib -p foo -c 1
  5859. Xif test $? -ne 0 ; then fail; fi
  5860. Xif test -d $workchan ; then fail ; fi
  5861. X
  5862. X#
  5863. X# Only definite negatives are possible.
  5864. X# The functionality exercised by this test appears to work,
  5865. X# no other guarantees are made.
  5866. X#
  5867. Xpass
  5868. END_OF_FILE
  5869. if test 2521 -ne `wc -c <'test/00/t0014a.sh'`; then
  5870.     echo shar: \"'test/00/t0014a.sh'\" unpacked with wrong size!
  5871. fi
  5872. # end of 'test/00/t0014a.sh'
  5873. fi
  5874. echo shar: End of archive 3 \(of 19\).
  5875. cp /dev/null ark3isdone
  5876. MISSING=""
  5877. for I in 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 ; do
  5878.     if test ! -f ark${I}isdone ; then
  5879.     MISSING="${MISSING} ${I}"
  5880.     fi
  5881. done
  5882. if test "${MISSING}" = "" ; then
  5883.     echo You have unpacked all 19 archives.
  5884.     rm -f ark[1-9]isdone ark[1-9][0-9]isdone
  5885. else
  5886.     echo You still need to unpack the following archives:
  5887.     echo "        " ${MISSING}
  5888. fi
  5889. ##  End of shell archive.
  5890. exit 0
  5891.