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

  1. Newsgroups: comp.sources.unix
  2. From: pmiller@bmr.gov.au (Peter Miller)
  3. Subject: v27i052: aegis - project change supervisor (V2.1), Part17/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 52
  10. Archive-Name: aegis-2.1/part17
  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 17 (of 19)."
  19. # Contents:  aegis/ael.c aux/CHANGES.1.3
  20. # Wrapped by vixie@gw.home.vix.com on Sat Sep 25 03:00:55 1993
  21. PATH=/bin:/usr/bin:/usr/ucb ; export PATH
  22. if test -f 'aegis/ael.c' -a "${1}" != "-c" ; then 
  23.   echo shar: Will not clobber existing file \"'aegis/ael.c'\"
  24. else
  25. echo shar: Extracting \"'aegis/ael.c'\" \(55482 characters\)
  26. sed "s/^X//" >'aegis/ael.c' <<'END_OF_FILE'
  27. X/*
  28. X *    aegis - project change supervisor
  29. X *    Copyright (C) 1991, 1992, 1993 Peter Miller.
  30. X *    All rights reserved.
  31. X *
  32. X *    This program is free software; you can redistribute it and/or modify
  33. X *    it under the terms of the GNU General Public License as published by
  34. X *    the Free Software Foundation; either version 2 of the License, or
  35. X *    (at your option) any later version.
  36. X *
  37. X *    This program is distributed in the hope that it will be useful,
  38. X *    but WITHOUT ANY WARRANTY; without even the implied warranty of
  39. X *    MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
  40. X *    GNU General Public License for more details.
  41. X *
  42. X *    You should have received a copy of the GNU General Public License
  43. X *    along with this program; if not, write to the Free Software
  44. X *    Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.
  45. X *
  46. X * MANIFEST: list interesting things about changes and projects
  47. X *
  48. X * If you add another list to this file,
  49. X * don't forget to update man1/ael.1
  50. X */
  51. X
  52. X#include <string.h>
  53. X#include <stdio.h>
  54. X#include <stdlib.h>
  55. X#include <time.h>
  56. X
  57. X#include <ael.h>
  58. X#include <arglex2.h>
  59. X#include <col.h>
  60. X#include <change.h>
  61. X#include <error.h>
  62. X#include <gonzo.h>
  63. X#include <help.h>
  64. X#include <lock.h>
  65. X#include <option.h>
  66. X#include <os.h>
  67. X#include <project.h>
  68. X#include <trace.h>
  69. X#include <user.h>
  70. X#include <word.h>
  71. X
  72. X
  73. Xtypedef struct table_ty table_ty;
  74. Xstruct table_ty
  75. X{
  76. X    char    *name;
  77. X    char    *description;
  78. X    void    (*func)_((string_ty *, long));
  79. X};
  80. X
  81. X
  82. Xstatic    table_ty    table[] =
  83. X{
  84. X    {
  85. X        "Administrators",
  86. X        "List the administrators of a project",
  87. X        list_administrators,
  88. X    },
  89. X    {
  90. X        "Change_Details",
  91. X        "List all information about a change in large layout form.",
  92. X        list_change_details,
  93. X    },
  94. X    {
  95. X        "Change_Files",
  96. X        "List all files in a change",
  97. X        list_change_files,
  98. X    },
  99. X    {
  100. X        "Change_History",
  101. X        "List the history of a change",
  102. X        list_change_history,
  103. X    },
  104. X    {
  105. X        "Changes",
  106. X        "List the changes of a project",
  107. X        list_changes,
  108. X    },
  109. X    {
  110. X        "Default_Change",
  111. X        "List the default change for the current user",
  112. X        list_default_change,
  113. X    },
  114. X    {
  115. X        "Default_Project",
  116. X        "List the default project for the current user",
  117. X        list_default_project,
  118. X    },
  119. X    {
  120. X        "Developers",
  121. X        "List the developers of a project",
  122. X        list_developers,
  123. X    },
  124. X    {
  125. X        "Integrators",
  126. X        "List the integrators of a project",
  127. X        list_integrators,
  128. X    },
  129. X    {
  130. X        "List_List",
  131. X        "List all lists available",
  132. X        list_list_list,
  133. X    },
  134. X    {
  135. X        "Locks",
  136. X        "List the active locks",
  137. X        list_locks,
  138. X    },
  139. X    {
  140. X        "Outstanding_Changes",
  141. X        "List the outstanding changes",
  142. X        list_outstanding_changes,
  143. X    },
  144. X    {
  145. X        "All_Outstanding_Changes",
  146. X        "List the outstanding changes for all projects",
  147. X        list_outstanding_changes_all,
  148. X    },
  149. X    {
  150. X        "Project_Files",
  151. X        "List all files in the baseline of a project",
  152. X        list_project_files,
  153. X    },
  154. X    {
  155. X        "Project_History",
  156. X        "List the integration history of a project",
  157. X        list_project_history,
  158. X    },
  159. X    {
  160. X        "Projects",
  161. X        "List all projects",
  162. X        list_projects,
  163. X    },
  164. X    {
  165. X        "Reviewers",
  166. X        "List the reviewers of a project",
  167. X        list_reviewers,
  168. X    },
  169. X    {
  170. X        "Users_Changes",
  171. X        "List of changes owned by the current user",
  172. X        list_user_changes,
  173. X
  174. X    },
  175. X    {
  176. X        "Version",
  177. X        "List version of a project or change",
  178. X        list_version,
  179. X    },
  180. X};
  181. X
  182. X
  183. Xstatic void list_usage _((void));
  184. X
  185. Xstatic void
  186. Xlist_usage()
  187. X{
  188. X    char        *progname;
  189. X
  190. X    progname = option_progname_get();
  191. X    fprintf(stderr, "usage: %s -List [ <option>... ] <listname>\n", progname);
  192. X    fprintf(stderr, "       %s -List -List [ <option>... ]\n", progname);
  193. X    fprintf(stderr, "       %s -List -Help\n", progname);
  194. X    quit(1);
  195. X}
  196. X
  197. X
  198. Xstatic void list_help _((void));
  199. X
  200. Xstatic void
  201. Xlist_help()
  202. X{
  203. X    static char *text[] =
  204. X    {
  205. X"NAME",
  206. X"    %s -List - list (possibly) interesting things",
  207. X"",
  208. X"SYNOPSIS",
  209. X"    %s -List [ <option>... ] <list-name>",
  210. X"    %s -List -List [ <option>... ]",
  211. X"    %s -List -Help",
  212. X"",
  213. X"DESCRIPTION",
  214. X"    The %s -List command is used to list information.",
  215. X"    There are a number of possible list-names, as follows",
  216. X"    (abbreviations as for command line options):",
  217. X"",
  218. X"    Administrators",
  219. X"        List the administrators of a project.",
  220. X"",
  221. X"    Change_Details",
  222. X"        List full information about a change in large",
  223. X"        format.",
  224. X"",
  225. X"    Change_Files",
  226. X"        List all files in a change.",
  227. X"",
  228. X"    Change_History",
  229. X"        List the history of a change.",
  230. X"",
  231. X"    Changes",
  232. X"        List the changes of a project.",
  233. X"",
  234. X"    Default_Change",
  235. X"        List the default change for the current user.",
  236. X"",
  237. X"    Default_Project",
  238. X"        List the default project for the current user.",
  239. X"",
  240. X"    Developers",
  241. X"        List the developers of a project.",
  242. X"",
  243. X"    Integrators",
  244. X"        List the integrators of a project.",
  245. X"",
  246. X"    List_List",
  247. X"        List all lists available.",
  248. X"",
  249. X"    Locks",
  250. X"        List all currently active locks.",
  251. X"",
  252. X"    Outstanding_Changes",
  253. X"        List all changes not yet completed.",
  254. X"",
  255. X"    All_Outstanding_Changes",
  256. X"        List all changes not yet completed, for all",
  257. X"        projects.",
  258. X"",
  259. X"    Project_Files",
  260. X"        List all files in the baseline of a project.",
  261. X"",
  262. X"    Project_History",
  263. X"        List the integration history of a project.",
  264. X"",
  265. X"    Projects",
  266. X"        List all projects.",
  267. X"",
  268. X"    Reviewers",
  269. X"        List the reviewers of a project.",
  270. X"",
  271. X"    Users_Changes",
  272. X"        List of changes owned by the current user.",
  273. X"",
  274. X"    Version",
  275. X"        List version of a project or change.",
  276. X"",
  277. X"    Most of these lists are available from other %s",
  278. X"    functions.  Many %s functions provide more specific",
  279. X"    lists.",
  280. X"",
  281. X"OPTIONS",
  282. X"    The following options are understood:",
  283. X"",
  284. X"    -Change <number>",
  285. X"        This option may be used to specify a particular",
  286. X"        change within a project.  When no -Change option",
  287. X"        is specified, the AEGIS_CHANGE environment",
  288. X"        variable is consulted.  If that does not exist,",
  289. X"        the user's $HOME/.%src file is examined for a",
  290. X"        default change field (see aeuconf(5) for more",
  291. X"        information).  If that does not exist, when the",
  292. X"        user is only working on one change within a",
  293. X"        project, that is the default change number.",
  294. X"        Otherwise, it is an error.",
  295. X"",
  296. X"    -Help",
  297. X"        This option may be used to obtain more",
  298. X"        information about how to use the %s program.",
  299. X"",
  300. X"    -List",
  301. X"        This option may be used to obtain a list of",
  302. X"        suitable subjects for this command.  The list may",
  303. X"        be more general than expected.",
  304. X"",
  305. X"    -Page_Length <number>",
  306. X"        This option may be used to set the page length of",
  307. X"        listings.  The default, in order of preference,",
  308. X"        is obtained from the system, from the LINES",
  309. X"        environment variable, or set to 24 lines.",
  310. X"",
  311. X"    -Page_Width <number>",
  312. X"        This option may be used to set the page width of",
  313. X"        listings and error messages.  The default, in",
  314. X"        order of preference, is obtained from the system,",
  315. X"        from the COLS environment variable, or set to 79",
  316. X"        characters.",
  317. X"",
  318. X"    -Project <name>",
  319. X"        This option may be used to select the project of",
  320. X"        interest.  When no -Project option is specified,",
  321. X"        the AEGIS_PROJECT environment variable is",
  322. X"        consulted.  If that does not exist, the user's",
  323. X"        $HOME/.%src file is examined for a default",
  324. X"        project field (see aeuconf(5) for more",
  325. X"        information).  If that does not exist, when the",
  326. X"        user is only working on changes within a single",
  327. X"        project, the project name defaults to that",
  328. X"        project.  Otherwise, it is an error.",
  329. X"",
  330. X"    -TERse",
  331. X"        This option may be used to cause listings to",
  332. X"        produce the bare minimum of information.  It is",
  333. X"        usually useful for shell scripts.",
  334. X"",
  335. X"    -UNFormatted",
  336. X"        This option may be used with most listings to",
  337. X"        specify that the column formatting is not to be",
  338. X"        performed.  This is useful for shell scripts.",
  339. X"",
  340. X"    -Verbose",
  341. X"        This option may be used to cause %s to produce",
  342. X"        more output.  By default %s only produces",
  343. X"        output on errors.  When used with the -List",
  344. X"        option this option causes column headings to be",
  345. X"        added.",
  346. X"",
  347. X"    All options may be abbreviated; the abbreviation is",
  348. X"    documented as the upper case letters, all lower case",
  349. X"    letters and underscores (_) are optional.  You must use",
  350. X"    consecutive sequences of optional letters.",
  351. X"",
  352. X"    All options are case insensitive, you may type them in",
  353. X"    upper case or lower case or a combination of both, case",
  354. X"    is not important.",
  355. X"",
  356. X"    For example: the arguments \"-project, \"-PROJ\" and \"-p\"",
  357. X"    are all interpreted to mean the -Project option.  The",
  358. X"    argument \"-prj\" will not be understood, because",
  359. X"    consecutive optional characters were not supplied.",
  360. X"",
  361. X"    Options and other command line arguments may be mixed",
  362. X"    arbitrarily on the command line, after the function",
  363. X"    selectors.",
  364. X"",
  365. X"    The GNU long option names are understood.  Since all",
  366. X"    option names for aegis are long, this means ignoring the",
  367. X"    extra leading '-'.  The \"--option=value\" convention is",
  368. X"    also understood.",
  369. X"",
  370. X"RECOMMENDED ALIAS",
  371. X"    The recommended alias for this command is",
  372. X"    csh%%    alias ael '%s -l \\!* -v'",
  373. X"    sh$    ael(){%s -l $* -v}",
  374. X"",
  375. X"ERRORS",
  376. X"    It is an error if the list name given is unknown.",
  377. X"",
  378. X"EXIT STATUS",
  379. X"    The %s command will exit with a status of 1 on any",
  380. X"    error.  The %s command will only exit with a status of",
  381. X"    0 if there are no errors.",
  382. X"",
  383. X"COPYRIGHT",
  384. X"    %C",
  385. X"",
  386. X"AUTHOR",
  387. X"    %A",
  388. X    };
  389. X
  390. X    help(text, SIZEOF(text), list_usage);
  391. X}
  392. X
  393. X
  394. Xstatic void list_list _((void));
  395. X
  396. Xstatic void
  397. Xlist_list()
  398. X{
  399. X    trace(("list_list()\n{\n"/*}*/));
  400. X    arglex();
  401. X    while (arglex_token != arglex_token_eoln)
  402. X        generic_argument(list_usage);
  403. X    list_list_list(0, 0);
  404. X    trace((/*{*/"}\n"));
  405. X}
  406. X
  407. X
  408. Xstatic void list_main _((void));
  409. X
  410. Xstatic void
  411. Xlist_main()
  412. X{
  413. X    char        *listname;
  414. X    table_ty        *tp;
  415. X    int        j;
  416. X    table_ty        *hit[SIZEOF(table)];
  417. X    int        nhit;
  418. X    string_ty    *s1;
  419. X    string_ty    *s2;
  420. X    string_ty    *project_name;
  421. X    long        change_number;
  422. X
  423. X    trace(("list_main()\n{\n"/*}*/));
  424. X    listname = 0;
  425. X    project_name = 0;
  426. X    change_number = 0;
  427. X    while (arglex_token != arglex_token_eoln)
  428. X    {
  429. X        switch (arglex_token)
  430. X        {
  431. X        default:
  432. X            generic_argument(list_usage);
  433. X            continue;
  434. X
  435. X        case arglex_token_string:
  436. X            if (listname)
  437. X                fatal("too many lists named");
  438. X            listname = arglex_value.alv_string;
  439. X            break;
  440. X
  441. X        case arglex_token_change:
  442. X            if (arglex() != arglex_token_number)
  443. X                list_usage();
  444. X            /* fall through... */
  445. X
  446. X        case arglex_token_number:
  447. X            if (change_number)
  448. X                fatal("duplicate -Change option");
  449. X            change_number = arglex_value.alv_number;
  450. X            if (change_number < 1)
  451. X                fatal("change %ld out of range", change_number);
  452. X            break;
  453. X
  454. X        case arglex_token_project:
  455. X            if (arglex() != arglex_token_string)
  456. X                list_usage();
  457. X            if (project_name)
  458. X                fatal("duplicate -Project option");
  459. X            project_name = str_from_c(arglex_value.alv_string);
  460. X            break;
  461. X        }
  462. X        arglex();
  463. X    }
  464. X    if (!listname)
  465. X        fatal("no list name given");
  466. X
  467. X    nhit = 0;
  468. X    for (tp = table; tp < ENDOF(table); ++tp)
  469. X    {
  470. X        if (arglex_compare(tp->name, listname))
  471. X            hit[nhit++] = tp;
  472. X    }
  473. X    switch (nhit)
  474. X    {
  475. X    case 0:
  476. X        fatal("list name \"%s\" unknown", listname);
  477. X
  478. X    case 1:
  479. X        hit[0]->func(project_name, change_number);
  480. X        break;
  481. X
  482. X    default:
  483. X        s1 = str_from_c(hit[0]->name);
  484. X        for (j = 1; j < nhit; ++j)
  485. X        {
  486. X            s2 = str_format("%S, %s", s1, hit[j]->name);
  487. X            str_free(s1);
  488. X            s1 = s2;
  489. X        }
  490. X        fatal("list name \"%s\" ambiguous (%s)", listname, s1->str_text);
  491. X    }
  492. X    if (project_name)
  493. X        str_free(project_name);
  494. X    trace((/*{*/"}\n"));
  495. X}
  496. X
  497. X
  498. Xvoid
  499. Xlist()
  500. X{
  501. X    trace(("list()\n{\n"/*}*/));
  502. X    switch (arglex())
  503. X    {
  504. X    default:
  505. X        list_main();
  506. X        break;
  507. X
  508. X    case arglex_token_help:
  509. X        list_help();
  510. X        break;
  511. X
  512. X    case arglex_token_list:
  513. X        list_list();
  514. X        break;
  515. X    }
  516. X    trace((/*{*/"}\n"));
  517. X}
  518. X
  519. X
  520. Xstatic int name_cmp _((const void *, const void *));
  521. X
  522. Xstatic int
  523. Xname_cmp(va, vb)
  524. X    const void    *va;
  525. X    const void    *vb;
  526. X{
  527. X    string_ty    *a;
  528. X    string_ty    *b;
  529. X
  530. X    a = *(string_ty **)va;
  531. X    b = *(string_ty **)vb;
  532. X    return strcmp(a->str_text, b->str_text);
  533. X}
  534. X
  535. X
  536. Xvoid
  537. Xlist_projects(project_name, change_number)
  538. X    string_ty    *project_name;
  539. X    long        change_number;
  540. X{
  541. X    wlist        name;
  542. X    int        name_col = 0;
  543. X    int        dir_col = 0;
  544. X    int        desc_col = 0;
  545. X    int        j;
  546. X
  547. X    trace(("list_projects()\n{\n"/*}*/));
  548. X    if (project_name)
  549. X        fatal("inappropriate -Project option");
  550. X    if (change_number)
  551. X        fatal("inappropriate -Change option");
  552. X
  553. X    /*
  554. X     * list the projects
  555. X     */
  556. X    gonzo_project_list(&name);
  557. X    qsort
  558. X    (
  559. X        name.wl_word,
  560. X        name.wl_nwords,
  561. X        sizeof(name.wl_word[0]),
  562. X        name_cmp
  563. X    );
  564. X
  565. X    /*
  566. X     * create the columns
  567. X     */
  568. X    col_open((char *)0);
  569. X    col_title("List of Projects", (char *)0);
  570. X    name_col = col_create(0, 15);
  571. X    col_heading(name_col, "Project\n---------");
  572. X    if (!option_terse_get())
  573. X    {
  574. X        dir_col = col_create(16, 39);
  575. X        desc_col = col_create(40, 0);
  576. X        col_heading(dir_col, "Directory\n-----------");
  577. X        col_heading(desc_col, "Description\n-------------");
  578. X    }
  579. X
  580. X    /*
  581. X     * list each project
  582. X     */
  583. X    for (j = 0; j < name.wl_nwords; ++j)
  584. X    {
  585. X        project_ty    *pp;
  586. X        int        err;
  587. X
  588. X        pp = project_alloc(name.wl_word[j]);
  589. X        project_bind_existing(pp);
  590. X
  591. X        os_become_orig();
  592. X        err = os_readable(project_pstate_path_get(pp));
  593. X        os_become_undo();
  594. X
  595. X        col_puts(name_col, project_name_get(pp)->str_text);
  596. X        if (!option_terse_get())
  597. X        {
  598. X            col_puts(dir_col, project_home_path_get(pp)->str_text);
  599. X            if (err)
  600. X                col_puts(desc_col, strerror(err));
  601. X            else
  602. X            {
  603. X                col_puts
  604. X                (
  605. X                    desc_col,
  606. X                    project_pstate_get(pp)->description->
  607. X                        str_text
  608. X                );
  609. X            }
  610. X        }
  611. X        project_free(pp);
  612. X        col_eoln();
  613. X    }
  614. X
  615. X    /*
  616. X     * clean up and go home
  617. X     */
  618. X    col_close();
  619. X    if (!name.wl_nwords)
  620. X        verbose("there are no projects");
  621. X    trace((/*{*/"}\n"));
  622. X}
  623. X
  624. X
  625. Xvoid
  626. Xlist_project_files(project_name, change_number)
  627. X    string_ty    *project_name;
  628. X    long        change_number;
  629. X{
  630. X    pstate        pstate_data;
  631. X    project_ty    *pp;
  632. X    change_ty    *cp;
  633. X    user_ty        *up;
  634. X    int        usage_col = 0;
  635. X    int        edit_col = 0;
  636. X    int        file_name_col = 0;
  637. X    int        j;
  638. X    string_ty    *line1;
  639. X
  640. X    /*
  641. X     * locate project data
  642. X     */
  643. X    trace(("list_project_files()\n{\n"/*}*/));
  644. X    if (!project_name)
  645. X        project_name = user_default_project();
  646. X    else
  647. X        project_name = str_copy(project_name);
  648. X    pp = project_alloc(project_name);
  649. X    str_free(project_name);
  650. X    project_bind_existing(pp);
  651. X
  652. X    /*
  653. X     * locate user data
  654. X     */
  655. X    up = user_executing(pp);
  656. X
  657. X    /*
  658. X     * locate change data
  659. X     */
  660. X    if (change_number)
  661. X    {
  662. X        cp = change_alloc(pp, change_number);
  663. X        change_bind_existing(cp);
  664. X    }
  665. X    else
  666. X        cp = 0;
  667. X
  668. X    pstate_data = project_pstate_get(pp);
  669. X    assert(pstate_data->src);
  670. X
  671. X    /*
  672. X     * create the columns
  673. X     */
  674. X    col_open((char *)0);
  675. X    if (change_number)
  676. X        line1 = str_format("Project \"%S\"  Change %ld", project_name, change_number);
  677. X    else
  678. X        line1 = str_format("Project \"%S\"", project_name);
  679. X    col_title(line1->str_text, "List of Project's Files");
  680. X    str_free(line1);
  681. X
  682. X    if (!option_terse_get())
  683. X    {
  684. X        usage_col = col_create(0, 7);
  685. X        edit_col = col_create(8, 15);
  686. X        col_heading(usage_col, "Type\n-------");
  687. X        col_heading(edit_col, "Edit\n-------");
  688. X    }
  689. X    file_name_col = col_create(16, 0);
  690. X    col_heading(file_name_col, "File Name\n-----------");
  691. X
  692. X    /*
  693. X     * list the project's files
  694. X     */
  695. X    for (j = 0; j < pstate_data->src->length; ++j)
  696. X    {
  697. X        pstate_src    src_data;
  698. X
  699. X        src_data = pstate_data->src->list[j];
  700. X        if
  701. X        (
  702. X            (
  703. X                src_data->about_to_be_created_by
  704. X            ||
  705. X                src_data->deleted_by
  706. X            )
  707. X        &&
  708. X            !option_verbose_get()
  709. X        )
  710. X            continue;
  711. X        if (cp && change_src_find(cp, src_data->file_name))
  712. X            continue;
  713. X        if (option_terse_get())
  714. X        {
  715. X            if (src_data->deleted_by)
  716. X                continue;
  717. X            if (src_data->about_to_be_created_by)
  718. X                continue;
  719. X        }
  720. X        else
  721. X        {
  722. X            col_puts
  723. X            (
  724. X                usage_col,
  725. X                file_usage_ename(src_data->usage)
  726. X            );
  727. X            if (src_data->edit_number)
  728. X            {
  729. X                col_puts
  730. X                (
  731. X                    edit_col,
  732. X                    src_data->edit_number->str_text
  733. X                );
  734. X            }
  735. X        }
  736. X        assert(src_data->file_name);
  737. X        col_puts
  738. X        (
  739. X            file_name_col,
  740. X            src_data->file_name->str_text
  741. X        );
  742. X        if (src_data->about_to_be_created_by)
  743. X        {
  744. X            col_bol(file_name_col);
  745. X            col_printf
  746. X            (
  747. X                file_name_col,
  748. X                "About to be created by change %ld.",
  749. X                src_data->about_to_be_created_by
  750. X            );
  751. X        }
  752. X        if (src_data->deleted_by)
  753. X        {
  754. X            col_bol(file_name_col);
  755. X            col_printf
  756. X            (
  757. X                file_name_col,
  758. X                "Deleted by change %ld.",
  759. X                src_data->deleted_by
  760. X            );
  761. X        }
  762. X        if (src_data->locked_by)
  763. X        {
  764. X            col_bol(file_name_col);
  765. X            col_printf
  766. X            (
  767. X                file_name_col,
  768. X                "Locked by change %ld.",
  769. X                src_data->locked_by
  770. X            );
  771. X        }
  772. X        col_eoln();
  773. X    }
  774. X
  775. X    /*
  776. X     * clean up and go home
  777. X     */
  778. X    col_close();
  779. X    if (!pstate_data->src->length)
  780. X        project_verbose(pp, "no files");
  781. X    project_free(pp);
  782. X    if (cp)
  783. X        change_free(cp);
  784. X    user_free(up);
  785. X    trace((/*{*/"}\n"));
  786. X}
  787. X
  788. X
  789. Xvoid
  790. Xlist_administrators(project_name, change_number)
  791. X    string_ty    *project_name;
  792. X    long        change_number;
  793. X{
  794. X    pstate        pstate_data;
  795. X    project_ty    *pp;
  796. X    int        login_col = 0;
  797. X    int        name_col = 0;
  798. X    int        j;
  799. X    string_ty    *line1;
  800. X
  801. X    trace(("list_administrators()\n{\n"/*}*/));
  802. X    if (change_number)
  803. X        fatal("inappropriate -Change option");
  804. X
  805. X    /*
  806. X     * locate project data
  807. X     */
  808. X    if (!project_name)
  809. X        project_name = user_default_project();
  810. X    else
  811. X        project_name = str_copy(project_name);
  812. X    pp = project_alloc(project_name);
  813. X    str_free(project_name);
  814. X    project_bind_existing(pp);
  815. X
  816. X    pstate_data = project_pstate_get(pp);
  817. X    assert(pstate_data->administrator);
  818. X
  819. X    /*
  820. X     * create the columns
  821. X     */
  822. X    col_open((char *)0);
  823. X    line1 = str_format("Project \"%S\"", project_name);
  824. X    col_title(line1->str_text, "List of Administrators");
  825. X    str_free(line1);
  826. X
  827. X    login_col = col_create(0, 15);
  828. X    col_heading(login_col, "User\n------");
  829. X    if (!option_terse_get())
  830. X    {
  831. X        name_col = col_create(16, 0);
  832. X        col_heading(name_col, "Full Name\n-----------");
  833. X    }
  834. X
  835. X    /*
  836. X     * list project's administrators
  837. X     */
  838. X    for (j = 0; j < pstate_data->administrator->length; ++j)
  839. X    {
  840. X        string_ty    *logname;
  841. X
  842. X        logname = pstate_data->administrator->list[j];
  843. X        col_puts(login_col, logname->str_text);
  844. X        if (!option_terse_get())
  845. X            col_puts(name_col, user_full_name(logname));
  846. X        col_eoln();
  847. X    }
  848. X
  849. X    /*
  850. X     * clean up and go home
  851. X     */
  852. X    col_close();
  853. X    if (!pstate_data->administrator->length)
  854. X        project_verbose(pp, "no administrators");
  855. X    project_free(pp);
  856. X    trace((/*{*/"}\n"));
  857. X}
  858. X
  859. X
  860. Xvoid
  861. Xlist_change_files(project_name, change_number)
  862. X    string_ty    *project_name;
  863. X    long        change_number;
  864. X{
  865. X    cstate        cstate_data;
  866. X    project_ty    *pp;
  867. X    change_ty    *cp;
  868. X    user_ty        *up;
  869. X    int        usage_col = 0;
  870. X    int        action_col = 0;
  871. X    int        edit_col = 0;
  872. X    int        file_name_col = 0;
  873. X    int        j;
  874. X    string_ty    *line1;
  875. X
  876. X    /*
  877. X     * locate project data
  878. X     */
  879. X    trace(("list_change_files()\n{\n"/*}*/));
  880. X    if (!project_name)
  881. X        project_name = user_default_project();
  882. X    else
  883. X        project_name = str_copy(project_name);
  884. X    pp = project_alloc(project_name);
  885. X    str_free(project_name);
  886. X    project_bind_existing(pp);
  887. X
  888. X    /*
  889. X     * locate user data
  890. X     */
  891. X    up = user_executing(pp);
  892. X
  893. X    /*
  894. X     * locate change data
  895. X     */
  896. X    if (!change_number)
  897. X        change_number = user_default_change(up);
  898. X    cp = change_alloc(pp, change_number);
  899. X    change_bind_existing(cp);
  900. X
  901. X    cstate_data = change_cstate_get(cp);
  902. X    assert(cstate_data->src);
  903. X
  904. X    /*
  905. X     * create the columns
  906. X     */
  907. X    col_open((char *)0);
  908. X    line1 =
  909. X        str_format
  910. X        (
  911. X            "Project \"%S\"  Change %ld",
  912. X            project_name,
  913. X            change_number
  914. X        );
  915. X    col_title(line1->str_text, "List of Change's Files");
  916. X    str_free(line1);
  917. X
  918. X    if (!option_terse_get())
  919. X    {
  920. X        usage_col = col_create(0, 7);
  921. X        action_col = col_create(8, 15);
  922. X        edit_col = col_create(16, 23);
  923. X        col_heading(usage_col, "Type\n-------");
  924. X        col_heading(action_col, "Action\n-------");
  925. X        col_heading(edit_col, "Edit\n-------");
  926. X    }
  927. X    file_name_col = col_create(24, 0);
  928. X    col_heading(file_name_col, "File Name\n-----------");
  929. X
  930. X    /*
  931. X     * list the change's files
  932. X     */
  933. X    for (j = 0; j < cstate_data->src->length; ++j)
  934. X    {
  935. X        cstate_src    src_data;
  936. X
  937. X        src_data = cstate_data->src->list[j];
  938. X        assert(src_data->file_name);
  939. X        if (option_terse_get())
  940. X        {
  941. X            if (src_data->action == file_action_remove)
  942. X                continue;
  943. X        }
  944. X        else
  945. X        {
  946. X            col_puts
  947. X            (
  948. X                usage_col,
  949. X                file_usage_ename(src_data->usage)
  950. X            );
  951. X            col_puts
  952. X            (
  953. X                action_col,
  954. X                file_action_ename(src_data->action)
  955. X            );
  956. X            if (src_data->edit_number)
  957. X            {
  958. X                pstate_src    psrc_data;
  959. X
  960. X                col_puts
  961. X                (
  962. X                    edit_col,
  963. X                    src_data->edit_number->str_text
  964. X                );
  965. X                if
  966. X                (
  967. X                    cstate_data->state
  968. X                ==
  969. X                    cstate_state_being_developed
  970. X                )
  971. X                    psrc_data =
  972. X                        project_src_find
  973. X                        (
  974. X                            pp,
  975. X                             src_data->file_name
  976. X                        );
  977. X                else
  978. X                    psrc_data = 0;
  979. X                if
  980. X                (
  981. X                    psrc_data
  982. X                &&
  983. X                    psrc_data->edit_number
  984. X                &&
  985. X                    !str_equal
  986. X                    (
  987. X                        src_data->edit_number,
  988. X                        psrc_data->edit_number
  989. X                    )
  990. X                )
  991. X                {
  992. X                    col_printf
  993. X                    (
  994. X                        edit_col,
  995. X                        " (%s)",
  996. X                    psrc_data->edit_number->str_text
  997. X                    );
  998. X                }
  999. X            }
  1000. X        }
  1001. X        col_puts
  1002. X        (
  1003. X            file_name_col,
  1004. X            src_data->file_name->str_text
  1005. X        );
  1006. X        if (src_data->move)
  1007. X        {
  1008. X            col_bol(file_name_col);
  1009. X            col_puts(file_name_col, "Moved ");
  1010. X            if (src_data->action == file_action_create)
  1011. X                col_puts(file_name_col, "from ");
  1012. X            else
  1013. X                col_puts(file_name_col, "to ");
  1014. X            col_puts(file_name_col, src_data->move->str_text);
  1015. X        }
  1016. X        col_eoln();
  1017. X    }
  1018. X
  1019. X    /*
  1020. X     * clean up and go home
  1021. X     */
  1022. X    col_close();
  1023. X    if (!cstate_data->src->length)
  1024. X        change_verbose(cp, "no files");
  1025. X    project_free(pp);
  1026. X    change_free(cp);
  1027. X    user_free(up);
  1028. X    trace((/*{*/"}\n"));
  1029. X}
  1030. X
  1031. X#define HOURS_PER_WORKING_DAY 7.5
  1032. X#define SECONDS_PER_WORKING_DAY (long)(HOURS_PER_WORKING_DAY * 60L * 60L)
  1033. X#define SECONDS_PER_DAY (24L * 60L * 60L)
  1034. X#define ELAPSED_TIME_THRESHOLD (10L * 60L) /* ten minutes */
  1035. X
  1036. Xstatic double working_days _((time_t, time_t));
  1037. X
  1038. Xstatic double
  1039. Xworking_days(start, finish)
  1040. X    time_t        start;
  1041. X    time_t        finish;
  1042. X{
  1043. X    time_t        duration;
  1044. X    double        working_days_frac;
  1045. X    long        working_days;
  1046. X    long        ndays;
  1047. X    long        nweeks;
  1048. X    struct tm     *tm;
  1049. X
  1050. X    /*
  1051. X     * elapsed time in seconds
  1052. X     */
  1053. X    trace(("working_days(start = %ld, finish = %ld)\n{\n"/*}*/, start,
  1054. X        finish));
  1055. X    trace(("start = %s", ctime(&start)));
  1056. X    trace(("finish = %s", ctime(&finish)));
  1057. X    duration = finish - start;
  1058. X    if (duration < 0)
  1059. X        duration = 0;
  1060. X    trace(("duration = %ld;\n", duration));
  1061. X
  1062. X    /*
  1063. X     * determine the number of whole calendar days
  1064. X     */
  1065. X    ndays =
  1066. X        (
  1067. X            (duration + (SECONDS_PER_DAY - SECONDS_PER_WORKING_DAY))
  1068. X        /
  1069. X            SECONDS_PER_DAY
  1070. X        );
  1071. X    trace(("ndays = %ld;\n", ndays));
  1072. X
  1073. X    /*
  1074. X     * determine the fractional part
  1075. X     */
  1076. X    working_days_frac =
  1077. X        (
  1078. X            (double)(duration - ndays * SECONDS_PER_DAY)
  1079. X        /
  1080. X            SECONDS_PER_WORKING_DAY
  1081. X        );
  1082. X    trace(("working_days_frac = %g;\n", working_days_frac));
  1083. X
  1084. X    /*
  1085. X     * 5 working days per working week
  1086. X     */
  1087. X    nweeks = ndays / 7;
  1088. X    working_days = 5 * nweeks;
  1089. X    ndays -= nweeks * 7;
  1090. X    working_days += ndays;
  1091. X    trace(("working_days = %ld;\n", working_days));
  1092. X
  1093. X    /*
  1094. X     * give credit for working over the weekend
  1095. X     */
  1096. X    tm = localtime(&start);
  1097. X    ndays += tm->tm_wday;
  1098. X    trace(("ndays = %ld;\n", ndays));
  1099. X    if (ndays >= 7 && tm->tm_wday != 6)
  1100. X        working_days--;
  1101. X    if (ndays >= 8)
  1102. X        working_days--;
  1103. X    if (working_days < 0)
  1104. X        working_days = 0;
  1105. X    trace(("working_days = %ld;\n", working_days));
  1106. X
  1107. X    /*
  1108. X     * done
  1109. X     */
  1110. X    working_days_frac += working_days;
  1111. X    if (working_days_frac < 0)
  1112. X        working_days_frac = 0;
  1113. X    trace(("return %.10g;\n", working_days_frac));
  1114. X    trace((/*{*/"}\n"));
  1115. X    return working_days_frac;
  1116. X}
  1117. X
  1118. X
  1119. Xvoid
  1120. Xlist_change_history(project_name, change_number)
  1121. X    string_ty    *project_name;
  1122. X    long        change_number;
  1123. X{
  1124. X    cstate        cstate_data;
  1125. X    project_ty    *pp;
  1126. X    change_ty    *cp;
  1127. X    user_ty        *up;
  1128. X    int        what_col;
  1129. X    int        when_col;
  1130. X    int        who_col;
  1131. X    int        why_col;
  1132. X    int        j;
  1133. X    string_ty    *line1;
  1134. X
  1135. X    /*
  1136. X     * locate project data
  1137. X     */
  1138. X    trace(("list_change_history()\n{\n"/*}*/));
  1139. X    if (!project_name)
  1140. X        project_name = user_default_project();
  1141. X    else
  1142. X        project_name = str_copy(project_name);
  1143. X    pp = project_alloc(project_name);
  1144. X    str_free(project_name);
  1145. X    project_bind_existing(pp);
  1146. X
  1147. X    /*
  1148. X     * locate user data
  1149. X     */
  1150. X    up = user_executing(pp);
  1151. X
  1152. X    /*
  1153. X     * locate change data
  1154. X     */
  1155. X    if (!change_number)
  1156. X        change_number = user_default_change(up);
  1157. X    cp = change_alloc(pp, change_number);
  1158. X    change_bind_existing(cp);
  1159. X
  1160. X    cstate_data = change_cstate_get(cp);
  1161. X    assert(cstate_data->src);
  1162. X
  1163. X    /*
  1164. X     * create the columns
  1165. X     */
  1166. X    col_open((char *)0);
  1167. X    line1 =
  1168. X        str_format
  1169. X        (
  1170. X            "Project \"%S\"  Change %ld",
  1171. X            project_name,
  1172. X            change_number
  1173. X        );
  1174. X    col_title(line1->str_text, "History");
  1175. X    str_free(line1);
  1176. X
  1177. X    what_col = col_create(0, 15);
  1178. X    when_col = col_create(16, 31);
  1179. X    who_col = col_create(32, 39);
  1180. X    why_col = col_create(40, 0);
  1181. X    col_heading(what_col, "What\n------");
  1182. X    col_heading(when_col, "When\n------");
  1183. X    col_heading(who_col, "Who\n-----");
  1184. X    col_heading(why_col, "Comment\n---------");
  1185. X
  1186. X    /*
  1187. X     * list the history
  1188. X     */
  1189. X    for (j = 0; j < cstate_data->history->length; ++j)
  1190. X    {
  1191. X        cstate_history    history_data;
  1192. X        time_t        t;
  1193. X
  1194. X        history_data = cstate_data->history->list[j];
  1195. X        col_puts
  1196. X        (
  1197. X            what_col,
  1198. X            cstate_history_what_ename(history_data->what)
  1199. X        );
  1200. X        t = history_data->when;
  1201. X        col_puts(when_col, ctime(&t));
  1202. X        col_puts(who_col, history_data->who->str_text);
  1203. X        if (history_data->why)
  1204. X            col_puts(why_col, history_data->why->str_text);
  1205. X        if (history_data->what != cstate_history_what_integrate_pass)
  1206. X        {
  1207. X            time_t    finish;
  1208. X
  1209. X            if (j + 1 < cstate_data->history->length)
  1210. X                finish = cstate_data->history->list[j + 1]->when;
  1211. X            else
  1212. X                time(&finish);
  1213. X            if (finish - t >= ELAPSED_TIME_THRESHOLD)
  1214. X            {
  1215. X                col_bol(why_col);
  1216. X                col_printf
  1217. X                (
  1218. X                    why_col,
  1219. X                    "Elapsed time: %5.3f days.\n",
  1220. X                    working_days(t, finish)
  1221. X                );
  1222. X            }
  1223. X        }
  1224. X        col_eoln();
  1225. X    }
  1226. X
  1227. X    /*
  1228. X     * clean up and go home
  1229. X     */
  1230. X    col_close();
  1231. X    if (!cstate_data->history->length)
  1232. X        change_verbose(cp, "no history");
  1233. X    change_free(cp);
  1234. X    project_free(pp);
  1235. X    user_free(up);
  1236. X    trace((/*{*/"}\n"));
  1237. X}
  1238. X
  1239. X
  1240. Xstatic int single_bit _((int));
  1241. X
  1242. Xstatic int
  1243. Xsingle_bit(n)
  1244. X    int        n;
  1245. X{
  1246. X    int        result;
  1247. X
  1248. X    /* see if no bits are set */
  1249. X    if (!n)
  1250. X        return -1;
  1251. X    /*
  1252. X     * see if more than 1 bit is set
  1253. X     *    (only works on 2s compliment machines)
  1254. X     */
  1255. X    if ((n & -n) != n)
  1256. X        return -1;
  1257. X    /*
  1258. X     * will need to extend this for 64bit machines,
  1259. X     * if ever have >32 states
  1260. X     */
  1261. X    result = 0;
  1262. X    if (n & 0xFFFF0000)
  1263. X        result += 16;
  1264. X    if (n & 0xFF00FF00)
  1265. X        result += 8;
  1266. X    if (n & 0xF0F0F0F0)
  1267. X        result += 4;
  1268. X    if (n & 0xCCCCCCCC)
  1269. X        result += 2;
  1270. X    if (n & 0xAAAAAAAA)
  1271. X        result++;
  1272. X    return result;
  1273. X}
  1274. X
  1275. X
  1276. Xvoid
  1277. Xlist_changes_in_state_mask(project_name, state_mask)
  1278. X    string_ty    *project_name;
  1279. X    int        state_mask;
  1280. X{
  1281. X    pstate        pstate_data;
  1282. X    int        number_col = 0;
  1283. X    int        state_col = 0;
  1284. X    int        description_col = 0;
  1285. X    int        j;
  1286. X    project_ty    *pp;
  1287. X    string_ty    *line1;
  1288. X    string_ty    *line2;
  1289. X
  1290. X    /*
  1291. X     * locate project data
  1292. X     */
  1293. X    trace(("list_changes_in_state_mask(state_mask = 0x%X)\n{\n"/*}*/, state_mask));
  1294. X    if (!project_name)
  1295. X        project_name = user_default_project();
  1296. X    else
  1297. X        project_name = str_copy(project_name);
  1298. X    pp = project_alloc(project_name);
  1299. X    str_free(project_name);
  1300. X    project_bind_existing(pp);
  1301. X
  1302. X    pstate_data = project_pstate_get(pp);
  1303. X
  1304. X    /*
  1305. X     * create the columns
  1306. X     */
  1307. X    col_open((char *)0);
  1308. X    line1 = str_format("Project \"%S\"", project_name);
  1309. X    j = single_bit(state_mask);
  1310. X    if (j >= 0)
  1311. X        line2 = str_format("List of Changes %s", cstate_state_ename(j));
  1312. X    else
  1313. X    {
  1314. X        j = single_bit(~state_mask);
  1315. X        if (j >= 0)
  1316. X        {
  1317. X            line2 =
  1318. X                str_format
  1319. X                (
  1320. X                    "List of Changes not %s",
  1321. X                    cstate_state_ename(j)
  1322. X                );
  1323. X        }
  1324. X        else
  1325. X            line2 = str_from_c("List of Changes");
  1326. X    }
  1327. X    col_title(line1->str_text, line2->str_text);
  1328. X    str_free(line1);
  1329. X    str_free(line2);
  1330. X
  1331. X    number_col = col_create(0, 7);
  1332. X    col_heading(number_col, "Change\n-------");
  1333. X    if (!option_terse_get())
  1334. X    {
  1335. X        state_col = col_create(8, 23);
  1336. X        description_col = col_create(24, 0);
  1337. X        col_heading(state_col, "State\n-------");
  1338. X        col_heading(description_col, "Description\n-------------");
  1339. X    }
  1340. X
  1341. X    /*
  1342. X     * list the project's changes
  1343. X     */
  1344. X    for (j = 0; j < pstate_data->change->length; ++j)
  1345. X    {
  1346. X        cstate        cstate_data;
  1347. X        long        change_number;
  1348. X        change_ty    *cp;
  1349. X
  1350. X        change_number = pstate_data->change->list[j];
  1351. X        cp = change_alloc(pp, change_number);
  1352. X        change_bind_existing(cp);
  1353. X        cstate_data = change_cstate_get(cp);
  1354. X        if (state_mask & (1 << cstate_data->state))
  1355. X        {
  1356. X            col_printf(number_col, "%4ld", change_number);
  1357. X            if (!option_terse_get())
  1358. X            {
  1359. X                col_puts
  1360. X                (
  1361. X                    state_col,
  1362. X                    cstate_state_ename(cstate_data->state)
  1363. X                );
  1364. X                if (cstate_data->brief_description)
  1365. X                {
  1366. X                    col_puts
  1367. X                    (
  1368. X                        description_col,
  1369. X                    cstate_data->brief_description->str_text
  1370. X                    );
  1371. X                }
  1372. X            }
  1373. X            col_eoln();
  1374. X        }
  1375. X        change_free(cp);
  1376. X    }
  1377. X
  1378. X    /*
  1379. X     * clean up and go home
  1380. X     */
  1381. X    col_close();
  1382. X    if (!pstate_data->change->length)
  1383. X        project_verbose(pp, "no changes");
  1384. X    project_free(pp);
  1385. X    trace((/*{*/"}\n"));
  1386. X}
  1387. X
  1388. X
  1389. Xvoid
  1390. Xlist_changes(project_name, change_number)
  1391. X    string_ty    *project_name;
  1392. X    long        change_number;
  1393. X{
  1394. X    trace(("list_changes()\n{\n"/*}*/));
  1395. X    if (change_number)
  1396. X        fatal("inappropriate -Change option");
  1397. X    list_changes_in_state_mask(project_name, ~0);
  1398. X    trace((/*{*/"}\n"));
  1399. X}
  1400. X
  1401. X
  1402. Xvoid
  1403. Xlist_list_list(project_name, change_number)
  1404. X    string_ty    *project_name;
  1405. X    long        change_number;
  1406. X{
  1407. X    int        name_col = 0;
  1408. X    int        desc_col = 0;
  1409. X    table_ty    *tp;
  1410. X
  1411. X    trace(("list_list_list()\n{\n"/*}*/));
  1412. X    if (project_name)
  1413. X        fatal("inappropriate -Project option");
  1414. X    if (change_number)
  1415. X        fatal("inappropriate -Change option");
  1416. X
  1417. X    /*
  1418. X     * create the columns
  1419. X     */
  1420. X    col_open((char *)0);
  1421. X    col_title("List of Lists", (char *)0);
  1422. X    name_col = col_create(0, 15);
  1423. X    col_heading(name_col, "Name\n------");
  1424. X    if (!option_terse_get())
  1425. X    {
  1426. X        desc_col = col_create(16, 0);
  1427. X        col_heading(desc_col, "Description\n-------------");
  1428. X    }
  1429. X
  1430. X    /*
  1431. X     * list the lists
  1432. X     */
  1433. X    for (tp = table; tp < ENDOF(table); ++tp)
  1434. X    {
  1435. X        col_puts(name_col, tp->name);
  1436. X        if (!option_terse_get())
  1437. X            col_puts(desc_col, tp->description);
  1438. X        col_eoln();
  1439. X    }
  1440. X
  1441. X    /*
  1442. X     * clean up and go home
  1443. X     */
  1444. X    col_close();
  1445. X    trace((/*{*/"}\n"));
  1446. X}
  1447. X
  1448. X
  1449. Xvoid
  1450. Xlist_developers(project_name, change_number)
  1451. X    string_ty    *project_name;
  1452. X    long        change_number;
  1453. X{
  1454. X    pstate        pstate_data;
  1455. X    project_ty    *pp;
  1456. X    int        login_col = 0;
  1457. X    int        name_col = 0;
  1458. X    int        j;
  1459. X    string_ty    *line1;
  1460. X
  1461. X    trace(("list_developers()\n{\n"/*}*/));
  1462. X    if (change_number)
  1463. X        fatal("inappropriate -Change option");
  1464. X
  1465. X    /*
  1466. X     * locate project data
  1467. X     */
  1468. X    if (!project_name)
  1469. X        project_name = user_default_project();
  1470. X    else
  1471. X        project_name = str_copy(project_name);
  1472. X    pp = project_alloc(project_name);
  1473. X    str_free(project_name);
  1474. X    project_bind_existing(pp);
  1475. X
  1476. X    pstate_data = project_pstate_get(pp);
  1477. X    assert(pstate_data->developer);
  1478. X
  1479. X    /*
  1480. X     * create the columns
  1481. X     */
  1482. X    col_open((char *)0);
  1483. X    line1 = str_format("Project \"%S\"", project_name);
  1484. X    col_title(line1->str_text, "List of Developers");
  1485. X    str_free(line1);
  1486. X
  1487. X    login_col = col_create(0, 15);
  1488. X    col_heading(login_col, "User\n------");
  1489. X    if (!option_terse_get())
  1490. X    {
  1491. X        name_col = col_create(16, 0);
  1492. X        col_heading(name_col, "Full Name\n-----------");
  1493. X    }
  1494. X
  1495. X    /*
  1496. X     * list the project's developers
  1497. X     */
  1498. X    for (j = 0; j < pstate_data->developer->length; ++j)
  1499. X    {
  1500. X        string_ty    *logname;
  1501. X
  1502. X        logname = pstate_data->developer->list[j];
  1503. X        col_puts(login_col, logname->str_text);
  1504. X        if (!option_terse_get())
  1505. X            col_puts(name_col, user_full_name(logname));
  1506. X        col_eoln();
  1507. X    }
  1508. X
  1509. X    /*
  1510. X     * clean up and go home
  1511. X     */
  1512. X    col_close();
  1513. X    if (!pstate_data->developer->length)
  1514. X        project_verbose(pp, "no developers");
  1515. X    project_free(pp);
  1516. X    trace((/*{*/"}\n"));
  1517. X}
  1518. X
  1519. X
  1520. Xvoid
  1521. Xlist_integrators(project_name, change_number)
  1522. X    string_ty    *project_name;
  1523. X    long        change_number;
  1524. X{
  1525. X    pstate        pstate_data;
  1526. X    project_ty    *pp;
  1527. X    int        login_col = 0;
  1528. X    int        name_col = 0;
  1529. X    int        j;
  1530. X    string_ty    *line1;
  1531. X
  1532. X    trace(("list_integrators()\n{\n"/*}*/));
  1533. X    if (change_number)
  1534. X        fatal("inappropriate -Change option");
  1535. X
  1536. X    /*
  1537. X     * locate project data
  1538. X     */
  1539. X    if (!project_name)
  1540. X        project_name = user_default_project();
  1541. X    else
  1542. X        project_name = str_copy(project_name);
  1543. X    pp = project_alloc(project_name);
  1544. X    str_free(project_name);
  1545. X    project_bind_existing(pp);
  1546. X
  1547. X    pstate_data = project_pstate_get(pp);
  1548. X    assert(pstate_data->integrator);
  1549. X
  1550. X    /*
  1551. X     * create the columns
  1552. X     */
  1553. X    col_open((char *)0);
  1554. X    line1 = str_format("Project \"%S\"", project_name);
  1555. X    col_title(line1->str_text, "List of Integrators");
  1556. X    str_free(line1);
  1557. X
  1558. X    login_col = col_create(0, 15);
  1559. X    col_heading(login_col, "User\n------");
  1560. X    if (!option_terse_get())
  1561. X    {
  1562. X        name_col = col_create(16, 0);
  1563. X        col_heading(name_col, "Full Name\n-----------");
  1564. X    }
  1565. X
  1566. X    /*
  1567. X     * list the project's integrators
  1568. X     */
  1569. X    for (j = 0; j < pstate_data->integrator->length; ++j)
  1570. X    {
  1571. X        string_ty    *logname;
  1572. X
  1573. X        logname = pstate_data->integrator->list[j];
  1574. X        col_puts(login_col, logname->str_text);
  1575. X        if (!option_terse_get())
  1576. X            col_puts(name_col, user_full_name(logname));
  1577. X        col_eoln();
  1578. X    }
  1579. X
  1580. X    /*
  1581. X     * clean up and go home
  1582. X     */
  1583. X    col_close();
  1584. X    if (!pstate_data->integrator->length)
  1585. X        project_verbose(pp, "no integrators");
  1586. X    project_free(pp);
  1587. X    trace((/*{*/"}\n"));
  1588. X}
  1589. X
  1590. X
  1591. Xvoid
  1592. Xlist_reviewers(project_name, change_number)
  1593. X    string_ty    *project_name;
  1594. X    long        change_number;
  1595. X{
  1596. X    pstate        pstate_data;
  1597. X    project_ty    *pp;
  1598. X    int        login_col = 0;
  1599. X    int        name_col = 0;
  1600. X    int        j;
  1601. X    string_ty    *line1;
  1602. X
  1603. X    trace(("list_reviewers()\n{\n"/*}*/));
  1604. X    if (change_number)
  1605. X        fatal("inappropriate -Change option");
  1606. X
  1607. X    /*
  1608. X     * locate project data
  1609. X     */
  1610. X    if (!project_name)
  1611. X        project_name = user_default_project();
  1612. X    else
  1613. X        project_name = str_copy(project_name);
  1614. X    pp = project_alloc(project_name);
  1615. X    str_free(project_name);
  1616. X    project_bind_existing(pp);
  1617. X
  1618. X    pstate_data = project_pstate_get(pp);
  1619. X    assert(pstate_data->reviewer);
  1620. X
  1621. X    /*
  1622. X     * create the columns
  1623. X     */
  1624. X    col_open((char *)0);
  1625. X    line1 = str_format("Project \"%S\"", project_name);
  1626. X    col_title(line1->str_text, "List of Reviewers");
  1627. X    str_free(line1);
  1628. X
  1629. X    login_col = col_create(0, 15);
  1630. X    col_heading(login_col, "User\n------");
  1631. X    if (!option_terse_get())
  1632. X    {
  1633. X        name_col = col_create(16, 0);
  1634. X        col_heading(name_col, "Full Name\n-----------");
  1635. X    }
  1636. X
  1637. X    /*
  1638. X     * list the project's reviewers
  1639. X     */
  1640. X    for (j = 0; j < pstate_data->reviewer->length; ++j)
  1641. X    {
  1642. X        string_ty    *logname;
  1643. X
  1644. X        logname = pstate_data->reviewer->list[j];
  1645. X        col_puts(login_col, logname->str_text);
  1646. X        if (!option_terse_get())
  1647. X            col_puts(name_col, user_full_name(logname));
  1648. X        col_eoln();
  1649. X    }
  1650. X
  1651. X    /*
  1652. X     * clean up and go home
  1653. X     */
  1654. X    col_close();
  1655. X    if (!pstate_data->reviewer->length)
  1656. X        project_verbose(pp, "no reviewers");
  1657. X    project_free(pp);
  1658. X    trace((/*{*/"}\n"));
  1659. X}
  1660. X
  1661. X
  1662. Xvoid
  1663. Xlist_project_history(project_name, change_number)
  1664. X    string_ty    *project_name;
  1665. X    long        change_number;
  1666. X{
  1667. X    pstate        pstate_data;
  1668. X    int        delta_col = 0;
  1669. X    int        date_col = 0;
  1670. X    int        change_col = 0;
  1671. X    int        description_col = 0;
  1672. X    int        j;
  1673. X    project_ty    *pp;
  1674. X    string_ty    *line1;
  1675. X
  1676. X    trace(("list_project_history()\n{\n"/*}*/));
  1677. X    if (change_number)
  1678. X        fatal("inappropriate -Change option");
  1679. X
  1680. X    /*
  1681. X     * locate project data
  1682. X     */
  1683. X    if (!project_name)
  1684. X        project_name = user_default_project();
  1685. X    else
  1686. X        project_name = str_copy(project_name);
  1687. X    pp = project_alloc(project_name);
  1688. X    str_free(project_name);
  1689. X    project_bind_existing(pp);
  1690. X
  1691. X    pstate_data = project_pstate_get(pp);
  1692. X
  1693. X    /*
  1694. X     * create the columns
  1695. X     */
  1696. X    col_open((char *)0);
  1697. X    line1 = str_format("Project \"%S\"", project_name);
  1698. X    col_title(line1->str_text, "History");
  1699. X    str_free(line1);
  1700. X
  1701. X    delta_col = col_create(0, 7);
  1702. X    col_heading(delta_col, "Delta\n-------");
  1703. X    if (!option_terse_get())
  1704. X    {
  1705. X        date_col = col_create(8, 23);
  1706. X        change_col = col_create(24, 31);
  1707. X        description_col = col_create(32, 0);
  1708. X        col_heading(date_col, "Date and Time\n---------------");
  1709. X        col_heading(change_col, "Change\n-------");
  1710. X        col_heading(description_col, "Description\n-------------");
  1711. X    }
  1712. X
  1713. X    /*
  1714. X     * list the project's sucessful i9ntegrations
  1715. X     */
  1716. X    for (j = 0; j < pstate_data->history->length; ++j)
  1717. X    {
  1718. X        pstate_history    history_data;
  1719. X
  1720. X        history_data = pstate_data->history->list[j];
  1721. X        col_printf(delta_col, "%4ld", history_data->delta_number);
  1722. X        if (!option_terse_get())
  1723. X        {
  1724. X            cstate        cstate_data;
  1725. X            time_t        t;
  1726. X            change_ty    *cp;
  1727. X
  1728. X            cp = change_alloc(pp, history_data->change_number);
  1729. X            change_bind_existing(cp);
  1730. X            cstate_data = change_cstate_get(cp);
  1731. X            t =
  1732. X                cstate_data->history->list
  1733. X                [
  1734. X                    cstate_data->history->length - 1
  1735. X                ]->when;
  1736. X            col_puts(date_col, ctime(&t));
  1737. X            col_printf
  1738. X            (
  1739. X                change_col,
  1740. X                "%4ld",
  1741. X                history_data->change_number
  1742. X            );
  1743. X            assert(cstate_data->brief_description);
  1744. X            col_puts
  1745. X            (
  1746. X                description_col,
  1747. X                cstate_data->brief_description->str_text
  1748. X            );
  1749. X            change_free(cp);
  1750. X        }
  1751. X        col_eoln();
  1752. X    }
  1753. X
  1754. X    /*
  1755. X     * clean up and go home
  1756. X     */
  1757. X    col_close();
  1758. X    if (!pstate_data->history->length)
  1759. X        project_verbose(pp, "no integrations");
  1760. X    project_free(pp);
  1761. X    trace((/*{*/"}\n"));
  1762. X}
  1763. X
  1764. X
  1765. Xvoid
  1766. Xlist_version(project_name, change_number)
  1767. X    string_ty    *project_name;
  1768. X    long        change_number;
  1769. X{
  1770. X    pstate        pstate_data;
  1771. X    project_ty    *pp;
  1772. X    cstate        cstate_data;
  1773. X    change_ty    *cp;
  1774. X    user_ty        *up;
  1775. X
  1776. X    /*
  1777. X     * locate project data
  1778. X     */
  1779. X    trace(("list_version()\n{\n"/*}*/));
  1780. X    if (!project_name)
  1781. X        project_name = user_default_project();
  1782. X    else
  1783. X        project_name = str_copy(project_name);
  1784. X    pp = project_alloc(project_name);
  1785. X    str_free(project_name);
  1786. X    project_bind_existing(pp);
  1787. X
  1788. X    /*
  1789. X     * locate user data
  1790. X     */
  1791. X    up = user_executing(pp);
  1792. X
  1793. X    /*
  1794. X     * locate change data
  1795. X     */
  1796. X    if (!change_number)
  1797. X        change_number = user_default_change(up);
  1798. X    cp = change_alloc(pp, change_number);
  1799. X    change_bind_existing(cp);
  1800. X
  1801. X    pstate_data = project_pstate_get(pp);
  1802. X    cstate_data = change_cstate_get(cp);
  1803. X    if (option_terse_get())
  1804. X    {
  1805. X        if (cstate_data->state == cstate_state_being_developed)
  1806. X        {
  1807. X            printf
  1808. X            (
  1809. X                "%ld.%ld.C%3.3ld\n",
  1810. X                pstate_data->version_major,
  1811. X                pstate_data->version_minor,
  1812. X                change_number
  1813. X            );
  1814. X        }
  1815. X        else
  1816. X        {
  1817. X            printf
  1818. X            (
  1819. X                "%ld.%ld.D%3.3ld\n",
  1820. X                pstate_data->version_major,
  1821. X                pstate_data->version_minor,
  1822. X                cstate_data->delta_number
  1823. X            );
  1824. X        }
  1825. X    }
  1826. X    else
  1827. X    {
  1828. X        printf("version_major = %ld;\n", pstate_data->version_major);
  1829. X        printf("version_minor = %ld;\n", pstate_data->version_minor);
  1830. X        if (cstate_data->state == cstate_state_being_developed)
  1831. X            printf("change_number = %ld;\n", change_number);
  1832. X        else
  1833. X        {
  1834. X            printf
  1835. X            (
  1836. X                "delta_number = %ld;\n",
  1837. X                cstate_data->delta_number
  1838. X            );
  1839. X        }
  1840. X        if (pstate_data->version_previous)
  1841. X        {
  1842. X            printf
  1843. X            (
  1844. X                "version_previous = \"%s\";\n",
  1845. X                pstate_data->version_previous->str_text
  1846. X            );
  1847. X        }
  1848. X    }
  1849. X    change_free(cp);
  1850. X    project_free(pp);
  1851. X    user_free(up);
  1852. X    trace((/*{*/"}\n"));
  1853. X}
  1854. X
  1855. X
  1856. Xvoid
  1857. Xlist_change_details(project_name, change_number)
  1858. X    string_ty    *project_name;
  1859. X    long        change_number;
  1860. X{
  1861. X    int        j;
  1862. X    int        head_col;
  1863. X    int        body_col;
  1864. X    project_ty    *pp;
  1865. X    change_ty    *cp;
  1866. X    cstate        cstate_data;
  1867. X    user_ty        *up;
  1868. X    string_ty    *line1;
  1869. X
  1870. X    /*
  1871. X     * locate project data
  1872. X     */
  1873. X    trace(("list_change_details()\n{\n"/*}*/));
  1874. X    if (!project_name)
  1875. X        project_name = user_default_project();
  1876. X    else
  1877. X        project_name = str_copy(project_name);
  1878. X    pp = project_alloc(project_name);
  1879. X    str_free(project_name);
  1880. X    project_bind_existing(pp);
  1881. X
  1882. X    /*
  1883. X     * locate user data
  1884. X     */
  1885. X    up = user_executing(pp);
  1886. X
  1887. X    /*
  1888. X     * locate change data
  1889. X     */
  1890. X    if (!change_number)
  1891. X        change_number = user_default_change(up);
  1892. X    cp = change_alloc(pp, change_number);
  1893. X    change_bind_existing(cp);
  1894. X    cstate_data = change_cstate_get(cp);
  1895. X
  1896. X    /*
  1897. X     * identification
  1898. X     */
  1899. X    col_open((char *)0);
  1900. X    line1 = str_format("Project \"%S\", Change %ld", project_name, change_number);
  1901. X    col_title(line1->str_text, "Change Details");
  1902. X    str_free(line1);
  1903. X
  1904. X    head_col = col_create(0, 0);
  1905. X    body_col = col_create(8, 0);
  1906. X    col_puts(head_col, "NAME");
  1907. X    col_eoln();
  1908. X    col_printf(body_col, "Project \"%s\"", project_name->str_text);
  1909. X    if (cstate_data->delta_number)
  1910. X        col_printf(body_col, ", Delta %ld", cstate_data->delta_number);
  1911. X    if (cstate_data->state < cstate_state_completed || option_verbose_get())
  1912. X        col_printf(body_col, ", Change %ld", change_number);
  1913. X    col_puts(body_col, ".");
  1914. X    col_eoln();
  1915. X
  1916. X    /*
  1917. X     * synopsis
  1918. X     */
  1919. X    col_need(5);
  1920. X    col_puts(head_col, "SUMMARY");
  1921. X    col_eoln();
  1922. X    col_puts(body_col, cstate_data->brief_description->str_text);
  1923. X    col_eoln();
  1924. X
  1925. X    /*
  1926. X     * description
  1927. X     */
  1928. X    col_need(5);
  1929. X    col_puts(head_col, "DESCRIPTION");
  1930. X    col_eoln();
  1931. X    col_puts(body_col, cstate_data->description->str_text);
  1932. X    if (cstate_data->test_exempt || cstate_data->test_baseline_exempt)
  1933. X    {
  1934. X        col_bol(body_col);
  1935. X        col_puts(body_col, "\n");
  1936. X        if (!cstate_data->regression_test_exempt)
  1937. X        {
  1938. X            col_puts
  1939. X            (
  1940. X                body_col,
  1941. X                   "This change must pass a full regression test.  "
  1942. X            );
  1943. X        }
  1944. X        if (cstate_data->test_exempt)
  1945. X        {
  1946. X            col_puts
  1947. X            (
  1948. X                body_col,
  1949. X       "This change is exempt from testing against the development directory.  "
  1950. X            );
  1951. X        }
  1952. X        if (cstate_data->test_baseline_exempt)
  1953. X        {
  1954. X            col_puts
  1955. X            (
  1956. X                body_col,
  1957. X              "This change is exempt from testing against the baseline."
  1958. X            );
  1959. X        }
  1960. X    }
  1961. X    col_eoln();
  1962. X
  1963. X    /*
  1964. X     * cause
  1965. X     */
  1966. X    col_need(5);
  1967. X    col_puts(head_col, "CAUSE");
  1968. X    col_eoln();
  1969. X    col_printf
  1970. X    (
  1971. X        body_col,
  1972. X        "This change was caused by %s.",
  1973. X        change_cause_ename(cstate_data->cause)
  1974. X    );
  1975. X    col_eoln();
  1976. X
  1977. X    /*
  1978. X     * state
  1979. X     */
  1980. X    if
  1981. X    (
  1982. X        option_verbose_get()
  1983. X    &&
  1984. X        cstate_data->state != cstate_state_completed
  1985. X    )
  1986. X    {
  1987. X        col_need(5);
  1988. X        col_puts(head_col, "STATE");
  1989. X        col_eoln();
  1990. X        col_printf
  1991. X        (
  1992. X            body_col,
  1993. X            "This change is in '%s' state.",
  1994. X            cstate_state_ename(cstate_data->state)
  1995. X        );
  1996. X        col_eoln();
  1997. X    }
  1998. X
  1999. X    /*
  2000. X     * files
  2001. X     */
  2002. X    col_need(5);
  2003. X    col_puts(head_col, "FILES");
  2004. X    col_eoln();
  2005. X    if (cstate_data->src->length)
  2006. X    {
  2007. X        int    usage_col;
  2008. X        int    action_col;
  2009. X        int    edit_col;
  2010. X        int    file_name_col;
  2011. X
  2012. X        usage_col = col_create(8, 15);
  2013. X        action_col = col_create(16, 23);
  2014. X        edit_col = col_create(24, 31);
  2015. X        file_name_col = col_create(32, 0);
  2016. X        col_heading(usage_col, "Type\n-------");
  2017. X        col_heading(action_col, "Action\n-------");
  2018. X        col_heading(edit_col, "Edit\n-------");
  2019. X        col_heading(file_name_col, "File Name\n-----------");
  2020. X        for (j = 0; j < cstate_data->src->length; ++j)
  2021. X        {
  2022. X            cstate_src    src_data;
  2023. X    
  2024. X            src_data = cstate_data->src->list[j];
  2025. X            assert(src_data->file_name);
  2026. X            col_puts(usage_col, file_usage_ename(src_data->usage));
  2027. X            col_puts
  2028. X            (
  2029. X                action_col,
  2030. X                file_action_ename(src_data->action)
  2031. X            );
  2032. X            if (src_data->edit_number)
  2033. X            {
  2034. X                pstate_src    psrc_data;
  2035. X    
  2036. X                col_puts
  2037. X                (
  2038. X                    edit_col,
  2039. X                    src_data->edit_number->str_text
  2040. X                );
  2041. X                if (cstate_data->state == cstate_state_being_developed)
  2042. X                    psrc_data =
  2043. X                        project_src_find
  2044. X                        (
  2045. X                            pp,
  2046. X                             src_data->file_name
  2047. X                        );
  2048. X                else
  2049. X                    psrc_data = 0;
  2050. X                if
  2051. X                (
  2052. X                    psrc_data
  2053. X                &&
  2054. X                    psrc_data->edit_number
  2055. X                &&
  2056. X                    !str_equal
  2057. X                    (
  2058. X                        src_data->edit_number,
  2059. X                        psrc_data->edit_number
  2060. X                    )
  2061. X                )
  2062. X                {
  2063. X                    col_printf
  2064. X                    (
  2065. X                        edit_col,
  2066. X                        " (%s)",
  2067. X                        psrc_data->edit_number->str_text
  2068. X                    );
  2069. X                }
  2070. X            }
  2071. X            col_puts(file_name_col, src_data->file_name->str_text);
  2072. X            if (src_data->move)
  2073. X            {
  2074. X                col_bol(file_name_col);
  2075. X                col_puts(file_name_col, "Moved ");
  2076. X                if (src_data->action == file_action_create)
  2077. X                    col_puts(file_name_col, "from ");
  2078. X                else
  2079. X                    col_puts(file_name_col, "to ");
  2080. X                col_puts(file_name_col, src_data->move->str_text);
  2081. X            }
  2082. X            col_eoln();
  2083. X        }
  2084. X        col_heading(usage_col, (char *)0);
  2085. X        col_heading(action_col, (char *)0);
  2086. X        col_heading(edit_col, (char *)0);
  2087. X        col_heading(file_name_col, (char *)0);
  2088. X    }
  2089. X    else
  2090. X    {
  2091. X        col_printf(body_col, "This change has no files.");
  2092. X        col_eoln();
  2093. X    }
  2094. X
  2095. X    /*
  2096. X     * history
  2097. X     */
  2098. X    col_need(5);
  2099. X    col_puts(head_col, "HISTORY");
  2100. X    col_eoln();
  2101. X    if (option_verbose_get())
  2102. X    {
  2103. X        int    what_col;
  2104. X        int    when_col;
  2105. X        int    who_col;
  2106. X        int    why_col;
  2107. X
  2108. X        what_col = col_create(8, 23);
  2109. X        when_col = col_create(24, 39);
  2110. X        who_col = col_create(40, 47);
  2111. X        why_col = col_create(48, 0);
  2112. X        col_heading(what_col, "What\n------");
  2113. X        col_heading(when_col, "When\n------");
  2114. X        col_heading(who_col, "Who\n-----");
  2115. X        col_heading(why_col, "Comment\n---------");
  2116. X        for (j = 0; j < cstate_data->history->length; ++j)
  2117. X        {
  2118. X            cstate_history    history_data;
  2119. X            time_t        t;
  2120. X
  2121. X            history_data = cstate_data->history->list[j];
  2122. X            col_puts
  2123. X            (
  2124. X                what_col,
  2125. X                cstate_history_what_ename(history_data->what)
  2126. X            );
  2127. X            t = history_data->when;
  2128. X            col_puts(when_col, ctime(&t));
  2129. X            col_puts(who_col, history_data->who->str_text);
  2130. X            if (history_data->why)
  2131. X                col_puts(why_col, history_data->why->str_text);
  2132. X            if (history_data->what != cstate_history_what_integrate_pass)
  2133. X            {
  2134. X                time_t    finish;
  2135. X
  2136. X                if (j + 1 < cstate_data->history->length)
  2137. X                    finish = cstate_data->history->list[j + 1]->when;
  2138. X                else
  2139. X                    time(&finish);
  2140. X                if (finish - t >= ELAPSED_TIME_THRESHOLD)
  2141. X                {
  2142. X                    col_bol(why_col);
  2143. X                    col_printf
  2144. X                    (
  2145. X                        why_col,
  2146. X                        "Elapsed time: %5.3f days.\n",
  2147. X                        working_days(t, finish)
  2148. X                    );
  2149. X                }
  2150. X            }
  2151. X            col_eoln();
  2152. X        }
  2153. X        col_heading(what_col, (char *)0);
  2154. X        col_heading(when_col, (char *)0);
  2155. X        col_heading(who_col, (char *)0);
  2156. X        col_heading(why_col, (char *)0);
  2157. X    }
  2158. X    else
  2159. X    {
  2160. X        if (cstate_data->state >= cstate_state_being_developed)
  2161. X        {
  2162. X            col_printf
  2163. X            (
  2164. X                body_col,
  2165. X                "Developed by %s.",
  2166. X                change_developer_name(cp)->str_text
  2167. X            );
  2168. X        }
  2169. X        if (cstate_data->state >= cstate_state_awaiting_integration)
  2170. X        {
  2171. X            col_printf
  2172. X            (
  2173. X                body_col,
  2174. X                "  Reviewed by %s.",
  2175. X                change_reviewer_name(cp)->str_text
  2176. X            );
  2177. X        }
  2178. X        if (cstate_data->state >= cstate_state_being_integrated)
  2179. X        {
  2180. X            col_printf
  2181. X            (
  2182. X                body_col,
  2183. X                "  Integrated by %s.",
  2184. X                change_integrator_name(cp)->str_text
  2185. X            );
  2186. X        }
  2187. X        col_eoln();
  2188. X    }
  2189. X
  2190. X    /*
  2191. X     * clean up and go home
  2192. X     */
  2193. X    col_close();
  2194. X    change_free(cp);
  2195. X    project_free(pp);
  2196. X    user_free(up);
  2197. X    trace((/*{*/"}\n"));
  2198. X}
  2199. X
  2200. X
  2201. Xvoid
  2202. Xlist_user_changes(project_name, change_number)
  2203. X    string_ty    *project_name;
  2204. X    long        change_number;
  2205. X{
  2206. X    user_ty        *up;
  2207. X    int        project_col;
  2208. X    int        change_col;
  2209. X    int        state_col;
  2210. X    int        description_col;
  2211. X    string_ty    *s;
  2212. X    wlist        name;
  2213. X    long        j;
  2214. X
  2215. X    trace(("list_user_changes()\n{\n"/*}*/));
  2216. X    if (project_name)
  2217. X        fatal("inappropriate -Project option");
  2218. X    if (change_number)
  2219. X        fatal("inappropriate -Change option");
  2220. X
  2221. X    /*
  2222. X     * get the list of projects
  2223. X     */
  2224. X    gonzo_project_list(&name);
  2225. X    if (!name.wl_nwords)
  2226. X    {
  2227. X        verbose("there are no projects");
  2228. X        goto done;
  2229. X    }
  2230. X
  2231. X    /*
  2232. X     * sort the list so the listing is pretty
  2233. X     */
  2234. X    qsort
  2235. X    (
  2236. X        name.wl_word,
  2237. X        name.wl_nwords,
  2238. X        sizeof(name.wl_word[0]),
  2239. X        name_cmp
  2240. X    );
  2241. X
  2242. X    /*
  2243. X     * open listing
  2244. X     */
  2245. X    col_open((char *)0);
  2246. X    up = user_executing((project_ty *)0);
  2247. X    s = str_format("Owned by %S <%S>", up->full_name, user_name(up));
  2248. X    user_free(up);
  2249. X    col_title("List of Changes", s->str_text);
  2250. X    str_free(s);
  2251. X
  2252. X    /*
  2253. X     * create the columns
  2254. X     */
  2255. X    project_col = col_create(0, 10);
  2256. X    change_col = col_create(11, 17);
  2257. X    state_col = col_create(18, 28);
  2258. X    description_col = col_create(29, 0);
  2259. X    col_heading(project_col, "Project\n----------");
  2260. X    col_heading(change_col, "Change\n------");
  2261. X    col_heading(state_col, "State\n----------");
  2262. X    col_heading(description_col, "Description\n-------------");
  2263. X
  2264. X    /*
  2265. X     * for each project, see if the current user
  2266. X     * is working on any of them.
  2267. X     */
  2268. X    for (j = 0; j < name.wl_nwords; ++j)
  2269. X    {
  2270. X        project_ty    *pp;
  2271. X        int        err;
  2272. X        long        n;
  2273. X
  2274. X        /*
  2275. X         * locate the project,
  2276. X         * and make sure we are allowed to look at it
  2277. X         */
  2278. X        pp = project_alloc(name.wl_word[j]);
  2279. X        project_bind_existing(pp);
  2280. X        os_become_orig();
  2281. X        err = os_readable(project_pstate_path_get(pp));
  2282. X        os_become_undo();
  2283. X        if (err)
  2284. X        {
  2285. X            project_free(pp);
  2286. X            continue;
  2287. X        }
  2288. X
  2289. X        /*
  2290. X         * bind a user to that project
  2291. X         */
  2292. X        up = user_executing(pp);
  2293. X
  2294. X        /*
  2295. X         * for each change within this project the user
  2296. X         * is working on emit a line of information
  2297. X         */
  2298. X        for (n = 0; ; ++n)
  2299. X        {
  2300. X            change_ty    *cp;
  2301. X            cstate        cstate_data;
  2302. X
  2303. X            if (!user_own_nth(up, n, &change_number))
  2304. X                break;
  2305. X            
  2306. X            /*
  2307. X             * locate change data
  2308. X             */
  2309. X            cp = change_alloc(pp, change_number);
  2310. X            change_bind_existing(cp);
  2311. X    
  2312. X            /*
  2313. X             * emit the info
  2314. X             */
  2315. X            col_puts(project_col, project_name_get(pp)->str_text);
  2316. X            col_printf(change_col, "%4ld", change_number);
  2317. X            cstate_data = change_cstate_get(cp);
  2318. X            col_puts
  2319. X            (
  2320. X                state_col,
  2321. X                cstate_state_ename(cstate_data->state)
  2322. X            );
  2323. X            if (cstate_data->brief_description)
  2324. X            {
  2325. X                col_puts
  2326. X                (
  2327. X                    description_col,
  2328. X                    cstate_data->brief_description->str_text
  2329. X                );
  2330. X            }
  2331. X            col_eoln();
  2332. X    
  2333. X            /*
  2334. X             * release change and project
  2335. X             */
  2336. X            change_free(cp);
  2337. X        }
  2338. X
  2339. X        /*
  2340. X         * free user and project
  2341. X         */
  2342. X        user_free(up);
  2343. X        project_free(pp);
  2344. X    }
  2345. X
  2346. X    /*
  2347. X     * clean up and go home
  2348. X     */
  2349. X    col_close();
  2350. X    done:
  2351. X    trace((/*{*/"}\n"));
  2352. X}
  2353. X
  2354. X
  2355. Xstatic int list_locks_name_col;
  2356. Xstatic int list_locks_type_col;
  2357. Xstatic int list_locks_project_col;
  2358. Xstatic int list_locks_change_col;
  2359. Xstatic int list_locks_address_col;
  2360. Xstatic int list_locks_process_col;
  2361. Xstatic wlist list_locks_pnames;
  2362. Xstatic long list_locks_count;
  2363. X
  2364. X
  2365. Xstatic void list_locks_callback _((lock_walk_found *));
  2366. X
  2367. Xstatic void
  2368. Xlist_locks_callback(found)
  2369. X    lock_walk_found *found;
  2370. X{
  2371. X    char        *name_str;
  2372. X    char        *type_str;
  2373. X    char        *project_str;
  2374. X    long        change_number;
  2375. X    long        j;
  2376. X
  2377. X    list_locks_count++;
  2378. X    switch (found->name)
  2379. X    {
  2380. X    case lock_walk_name_master:
  2381. X        name_str = "master";
  2382. X        break;
  2383. X
  2384. X    case lock_walk_name_gstate:
  2385. X        name_str = "gonzo";
  2386. X        break;
  2387. X
  2388. X    case lock_walk_name_pstate:
  2389. X        name_str = "project";
  2390. X        break;
  2391. X
  2392. X    case lock_walk_name_cstate:
  2393. X        name_str = "change";
  2394. X        break;
  2395. X
  2396. X    case lock_walk_name_ustate:
  2397. X        name_str = "user";
  2398. X        break;
  2399. X
  2400. X    case lock_walk_name_build:
  2401. X        name_str = "build";
  2402. X        break;
  2403. X
  2404. X    default:
  2405. X        name_str = "unknown";
  2406. X        break;
  2407. X    }
  2408. X
  2409. X    switch (found->type)
  2410. X    {
  2411. X    case lock_walk_type_shared:
  2412. X        type_str = "shared";
  2413. X        break;
  2414. X
  2415. X    case lock_walk_type_exclusive:
  2416. X        type_str = "exclusive";
  2417. X        break;
  2418. X
  2419. X    default:
  2420. X        type_str = "unknown";
  2421. X        break;
  2422. X    }
  2423. X
  2424. X    project_str = 0;
  2425. X    change_number = 0;
  2426. X    switch (found->name)
  2427. X    {
  2428. X    case lock_walk_name_pstate:
  2429. X    case lock_walk_name_build:
  2430. X        for (j = 0; j < list_locks_pnames.wl_nwords; ++j)
  2431. X        {
  2432. X            string_ty *s;
  2433. X
  2434. X            s = list_locks_pnames.wl_word[j];
  2435. X            if ((s->str_hash & 0xFFFF) == found->subset)
  2436. X            {
  2437. X                project_str = s->str_text;
  2438. X                break;
  2439. X            }
  2440. X        }
  2441. X        if (!project_str)
  2442. X            project_str = "unknown";
  2443. X        break;
  2444. X
  2445. X    case lock_walk_name_cstate:
  2446. X        for (j = 0; j < list_locks_pnames.wl_nwords; ++j)
  2447. X        {
  2448. X            string_ty *s;
  2449. X            long    cn;
  2450. X
  2451. X            /*
  2452. X             * This is very messy, because the change
  2453. X             * number is added to the project name hash.
  2454. X             *
  2455. X             * Work out the change number,
  2456. X             * and the assume it can be more than,
  2457. X             * say, 5000.  We could do better by looking
  2458. X             * in each project, but what the hell.
  2459. X             *
  2460. X             * Use (mod 2**16) arithmetic, that's how its done.
  2461. X             * Should bring this out in lock.h if ever change.
  2462. X             *
  2463. X             * Loop and find the smallest change number.
  2464. X             * Use that as a probable "best" fit.
  2465. X             */
  2466. X            s = list_locks_pnames.wl_word[j];
  2467. X            cn = (found->subset - s->str_hash) & 0xFFFF;
  2468. X            if
  2469. X            (
  2470. X                cn >= 1
  2471. X            &&
  2472. X                cn <= 5000
  2473. X            &&
  2474. X                (!change_number || cn < change_number)
  2475. X            )
  2476. X            {
  2477. X                project_str = s->str_text;
  2478. X                change_number = cn;
  2479. X            }
  2480. X        }
  2481. X        if (!project_str)
  2482. X            project_str = "unknown";
  2483. X        break;
  2484. X
  2485. X    default:
  2486. X        break;
  2487. X    }
  2488. X
  2489. X    /*
  2490. X     * print it all out
  2491. X     */
  2492. X    col_printf(list_locks_name_col, "%s", name_str);
  2493. X    col_printf(list_locks_type_col, "%s", type_str);
  2494. X    if (project_str)
  2495. X        col_printf(list_locks_project_col, "%s", project_str);
  2496. X    if (change_number)
  2497. X        col_printf(list_locks_change_col, "%4ld", change_number);
  2498. X    col_printf(list_locks_address_col, "%8.8lX", found->address);
  2499. X    col_printf(list_locks_process_col, "%5d", found->pid);
  2500. X    if (!found->pid_is_local)
  2501. X        col_printf(list_locks_process_col, " remote");
  2502. X    col_eoln();
  2503. X}
  2504. X
  2505. X
  2506. Xvoid
  2507. Xlist_locks(project_name, change_number)
  2508. X    string_ty    *project_name;
  2509. X    long        change_number;
  2510. X{
  2511. X    /*
  2512. X     * check for silly arguments
  2513. X     */
  2514. X    trace(("list_locks()\n{\n"/*}*/));
  2515. X    if (project_name)
  2516. X        fatal("inappropriate -Project option");
  2517. X    if (change_number)
  2518. X        fatal("inappropriate -Change option");
  2519. X
  2520. X    /*
  2521. X     * get the list of projects
  2522. X     */
  2523. X    gonzo_project_list(&list_locks_pnames);
  2524. X
  2525. X    /*
  2526. X     * open the columns
  2527. X     */
  2528. X    col_open((char *)0);
  2529. X    list_locks_name_col = col_create(0, 8);
  2530. X    list_locks_type_col = col_create(9, 19);
  2531. X    list_locks_project_col = col_create(20, 32);
  2532. X    list_locks_change_col = col_create(33, 40);
  2533. X    list_locks_address_col = col_create(41, 50);
  2534. X    list_locks_process_col = col_create(51, 0);
  2535. X    list_locks_count = 0;
  2536. X
  2537. X    /*
  2538. X     * set the column headings
  2539. X     */
  2540. X    col_title("List of Locks", gonzo_lockpath_get()->str_text);
  2541. X    col_heading(list_locks_name_col, "Type\n------");
  2542. X    col_heading(list_locks_type_col, "Mode\n------");
  2543. X    col_heading(list_locks_project_col, "Project\n---------");
  2544. X    col_heading(list_locks_change_col, "Change\n------");
  2545. X    col_heading(list_locks_address_col, "Address\n--------");
  2546. X    col_heading(list_locks_process_col, "Process\n--------");
  2547. X
  2548. X    /*
  2549. X     * list the locks found
  2550. X     */
  2551. X    lock_walk(list_locks_callback);
  2552. X    wl_free(&list_locks_pnames);
  2553. X    if (list_locks_count == 0)
  2554. X    {
  2555. X        int info = col_create(4, 0);
  2556. X        col_puts(info, "No locks found.");
  2557. X        col_eoln();
  2558. X    }
  2559. X    col_close();
  2560. X    trace((/*{*/"}\n"));
  2561. X}
  2562. X
  2563. X
  2564. Xvoid
  2565. Xlist_default_project(project_name, change_number)
  2566. X    string_ty    *project_name;
  2567. X    long        change_number;
  2568. X{
  2569. X    /*
  2570. X     * check for silly arguments
  2571. X     */
  2572. X    trace(("list_default_project()\n{\n"/*}*/));
  2573. X    if (project_name)
  2574. X        fatal("inappropriate -Project option");
  2575. X    if (change_number)
  2576. X        fatal("inappropriate -Change option");
  2577. X
  2578. X    /*
  2579. X     * Find default project name;
  2580. X     * will generate fatal error if no default.
  2581. X     */
  2582. X    project_name = user_default_project();
  2583. X
  2584. X    /*
  2585. X     * print it out
  2586. X     */
  2587. X    printf("%s\n", project_name->str_text);
  2588. X    trace((/*{*/"}\n"));
  2589. X}
  2590. X
  2591. X
  2592. Xvoid
  2593. Xlist_default_change(project_name, change_number)
  2594. X    string_ty    *project_name;
  2595. X    long        change_number;
  2596. X{
  2597. X    project_ty    *pp;
  2598. X    user_ty        *up;
  2599. X
  2600. X    /*
  2601. X     * check for silly arguments
  2602. X     */
  2603. X    trace(("list_default_change()\n{\n"/*}*/));
  2604. X    if (change_number)
  2605. X        fatal("inappropriate -Change option");
  2606. X
  2607. X    /*
  2608. X     * resolve the project name
  2609. X     */
  2610. X    if (!project_name)
  2611. X        project_name = user_default_project();
  2612. X    else
  2613. X        project_name = str_copy(project_name);
  2614. X    pp = project_alloc(project_name);
  2615. X    str_free(project_name);
  2616. X    project_bind_existing(pp);
  2617. X
  2618. X    /*
  2619. X     * locate user data
  2620. X     */
  2621. X    up = user_executing(pp);
  2622. X
  2623. X    /*
  2624. X     * Find default change number;
  2625. X     * will generate fatal error if no default.
  2626. X     */
  2627. X    change_number = user_default_change(up);
  2628. X
  2629. X    /*
  2630. X     * print it out
  2631. X     */
  2632. X    printf("%ld\n", change_number);
  2633. X
  2634. X    /*
  2635. X     * clean up and go home
  2636. X     */
  2637. X    project_free(pp);
  2638. X    user_free(up);
  2639. X    trace((/*{*/"}\n"));
  2640. X}
  2641. X
  2642. X
  2643. Xvoid
  2644. Xlist_outstanding_changes(project_name, change_number)
  2645. X    string_ty    *project_name;
  2646. X    long        change_number;
  2647. X{
  2648. X    trace(("list_outstanding_changes()\n{\n"/*}*/));
  2649. X    if (change_number)
  2650. X        fatal("inappropriate -Change option");
  2651. X    list_changes_in_state_mask
  2652. X    (
  2653. X        project_name,
  2654. X        ~(1 << cstate_state_completed)
  2655. X    );
  2656. X    trace((/*{*/"}\n"));
  2657. X}
  2658. X
  2659. X
  2660. Xvoid
  2661. Xlist_outstanding_changes_all(project_name, change_number)
  2662. X    string_ty    *project_name;
  2663. X    long        change_number;
  2664. X{
  2665. X    pstate        pstate_data;
  2666. X    int        project_col = 0;
  2667. X    int        number_col = 0;
  2668. X    int        state_col = 0;
  2669. X    int        description_col = 0;
  2670. X    int        j, k;
  2671. X    wlist        name;
  2672. X
  2673. X    trace(("list_outstanding_changes_all()\n{\n"/*}*/));
  2674. X    if (project_name)
  2675. X        fatal("inappropriate -Project option");
  2676. X    if (change_number)
  2677. X        fatal("inappropriate -Change option");
  2678. X
  2679. X    /*
  2680. X     * list the projects
  2681. X     */
  2682. X    gonzo_project_list(&name);
  2683. X    qsort
  2684. X    (
  2685. X        name.wl_word,
  2686. X        name.wl_nwords,
  2687. X        sizeof(name.wl_word[0]),
  2688. X        name_cmp
  2689. X    );
  2690. X
  2691. X    /*
  2692. X     * create the columns
  2693. X     */
  2694. X    col_open((char *)0);
  2695. X    col_title("List of Outstanding Changes", "for all projects");
  2696. X    project_col = col_create(0, 15);
  2697. X    col_heading(project_col, "Project\n---------");
  2698. X    number_col = col_create(16, 23);
  2699. X    col_heading(number_col, "Change\n------");
  2700. X    if (!option_terse_get())
  2701. X    {
  2702. X        state_col = col_create(24, 35);
  2703. X        col_heading(state_col, "State\n-------");
  2704. X        description_col = col_create(36, 0);
  2705. X        col_heading(description_col, "Description\n-------------");
  2706. X    }
  2707. X
  2708. X    /*
  2709. X     * scan each project
  2710. X     */
  2711. X    for (j = 0; j < name.wl_nwords; ++j)
  2712. X    {
  2713. X        project_ty    *pp;
  2714. X        int        err;
  2715. X
  2716. X        pp = project_alloc(name.wl_word[j]);
  2717. X        project_bind_existing(pp);
  2718. X
  2719. X        /*
  2720. X         * make sure we have permission
  2721. X         */
  2722. X        os_become_orig();
  2723. X        err = os_readable(project_pstate_path_get(pp));
  2724. X        os_become_undo();
  2725. X        if (err)
  2726. X        {
  2727. X            project_free(pp);
  2728. X            continue;
  2729. X        }
  2730. X
  2731. X        /*
  2732. X         * list the project's changes
  2733. X         */
  2734. X        pstate_data = project_pstate_get(pp);
  2735. X        for (k = 0; k < pstate_data->change->length; ++k)
  2736. X        {
  2737. X            cstate        cstate_data;
  2738. X            long        change_number;
  2739. X            change_ty    *cp;
  2740. X
  2741. X            /*
  2742. X             * make sure the change is not completed
  2743. X             */
  2744. X            change_number = pstate_data->change->list[k];
  2745. X            cp = change_alloc(pp, change_number);
  2746. X            change_bind_existing(cp);
  2747. X            cstate_data = change_cstate_get(cp);
  2748. X            if (cstate_data->state == cstate_state_completed)
  2749. X            {
  2750. X                change_free(cp);
  2751. X                continue;
  2752. X            }
  2753. X
  2754. X            /*
  2755. X             * print the details
  2756. X             */
  2757. X            col_puts(project_col, project_name_get(pp)->str_text);
  2758. X            col_printf(number_col, "%4ld", change_number);
  2759. X            if (!option_terse_get())
  2760. X            {
  2761. X                col_puts
  2762. X                (
  2763. X                    state_col,
  2764. X                    cstate_state_ename(cstate_data->state)
  2765. X                );
  2766. X                if (cstate_data->brief_description)
  2767. X                {
  2768. X                    col_puts
  2769. X                    (
  2770. X                        description_col,
  2771. X                    cstate_data->brief_description->str_text
  2772. X                    );
  2773. X                }
  2774. X            }
  2775. X            col_eoln();
  2776. X            change_free(cp);
  2777. X        }
  2778. X        project_free(pp);
  2779. X    }
  2780. X
  2781. X    /*
  2782. X     * clean up and go home
  2783. X     */
  2784. X    col_close();
  2785. X    trace((/*{*/"}\n"));
  2786. X}
  2787. END_OF_FILE
  2788. if test 55482 -ne `wc -c <'aegis/ael.c'`; then
  2789.     echo shar: \"'aegis/ael.c'\" unpacked with wrong size!
  2790. fi
  2791. # end of 'aegis/ael.c'
  2792. fi
  2793. if test -f 'aux/CHANGES.1.3' -a "${1}" != "-c" ; then 
  2794.   echo shar: Will not clobber existing file \"'aux/CHANGES.1.3'\"
  2795. else
  2796. echo shar: Extracting \"'aux/CHANGES.1.3'\" \(66004 characters\)
  2797. sed "s/^X//" >'aux/CHANGES.1.3' <<'END_OF_FILE'
  2798. X
  2799. X
  2800. X
  2801. XProject "aegis.1.3"                          Page 1
  2802. XList of Changes                    Thu Jan     7 14:31:46 1993
  2803. X
  2804. XChange    State        Description
  2805. X------- -------        -------------
  2806. X   1    completed    New release derived from aegis.1.2.
  2807. X   2    completed    make more robust for NFS mounted partitions
  2808. X   3    completed    orthoganalize the notification execution
  2809. X            functions
  2810. X   4    completed    change the tests to use RCS
  2811. X   5    completed    improve generated Makefile
  2812. X   6    completed    make aegis work on dgux
  2813. X   7    completed    enhance columns output
  2814. X   8    completed    do not automagically append the program name to
  2815. X            the library path
  2816. X   9    completed    change the build_number field to a delta_number
  2817. X            field
  2818. X  10    completed    fix niggling bugs
  2819. X  11    completed    add default_test_exempt attribute to projects
  2820. X  12    completed    change the way use yacc
  2821. X  13    completed    remove ,D file when remove a file from a change
  2822. X  14    completed    cope with /tmp_mnt/... in the current directory
  2823. X  15    completed    fix bug in -new_project
  2824. X  16    completed    log_open needs to know which user
  2825. X  17    completed    Add the -Delta and -Output options to the -CoPy_
  2826. X            file
  2827. X  18    completed    add more to the documentation
  2828. X  19    completed    more documentation
  2829. X  20    completed    fix problems with distribution
  2830. X  21    completed    more documentation
  2831. X  22    completed    make sure each file as a MANIFEST line
  2832. X  23    completed    make the patch file work
  2833. X  24    completed    fix year in copyright notices issued
  2834. X  25    completed    fix year in more copyright notices
  2835. X  26    completed    fix the generated patch file
  2836. X  27    completed    user cook search list to simplify the cookbook
  2837. X  28    completed    patch file not generated correctly for new files
  2838. X  29    being_        document cook usage
  2839. X    integrated
  2840. X
  2841. X
  2842. X
  2843. XProject "aegis.1.3", Change 1                      Page 1
  2844. XChange Details                    Thu Jan     7 14:31:51 1993
  2845. X
  2846. XNAME
  2847. X    Project "aegis.1.3", Delta 1, Change 1.
  2848. X
  2849. XSUMMARY
  2850. X    New release derived from aegis.1.2.
  2851. X
  2852. XDESCRIPTION
  2853. X    New release derived from aegis.1.2.
  2854. X
  2855. X    This change is exempt from testing.  This change is exempt from
  2856. X    testing against the baseline.
  2857. X
  2858. XCAUSE
  2859. X    This change was caused by internal_enhancement.
  2860. X
  2861. XFILES
  2862. X    Type    Action    Edit    File Name
  2863. X    ------- ------- ------- -----------
  2864. X    source    create    1    CHANGES.sh
  2865. X    source    create    1    COPYING
  2866. X    source    create    1    Howto.cook
  2867. X    source    create    1    Makefile.awk
  2868. X    source    create    1    Makefile.sh
  2869. X    source    create    1    aegis/administ.c
  2870. X    source    create    1    aegis/administ.h
  2871. X    source    create    1    aegis/archaeol.c
  2872. X    source    create    1    aegis/archaeol.h
  2873. X    source    create    1    aegis/arglex2.h
  2874. X    source    create    1    aegis/build.c
  2875. X    source    create    1    aegis/build.h
  2876. X    source    create    1    aegis/cattr.def
  2877. X    source    create    1    aegis/cattr_ed.c
  2878. X    source    create    1    aegis/cattr_ed.h
  2879. X    source    create    1    aegis/change.c
  2880. X    source    create    1    aegis/change.h
  2881. X    source    create    1    aegis/chdir.c
  2882. X    source    create    1    aegis/chdir.h
  2883. X    source    create    1    aegis/col.c
  2884. X    source    create    1    aegis/col.h
  2885. X    source    create    1    aegis/commit.c
  2886. X    source    create    1    aegis/commit.h
  2887. X    source    create    1    aegis/common.def
  2888. X    source    create    1    aegis/copyfile.c
  2889. X    source    create    1    aegis/copyfile.h
  2890. X    source    create    1    aegis/cstate.def
  2891. X    source    create    1    aegis/develop1.c
  2892. X    source    create    1    aegis/develop1.h
  2893. X    source    create    1    aegis/develop2.c
  2894. X    source    create    1    aegis/develop2.h
  2895. X    source    create    1    aegis/diff.c
  2896. X    source    create    1    aegis/diff.h
  2897. X    source    create    1    aegis/dir.c
  2898. X    source    create    1    aegis/dir.h
  2899. X    source    create    1    aegis/file.c
  2900. X    source    create    1    aegis/file.h
  2901. X    source    create    1    aegis/gate.h
  2902. X    source    create    1    aegis/gonzo.c
  2903. X
  2904. X
  2905. X
  2906. XProject "aegis.1.3", Change 1                      Page 2
  2907. XChange Details                    Thu Jan     7 14:31:51 1993
  2908. X
  2909. X    Type    Action    Edit    File Name
  2910. X    ------- ------- ------- -----------
  2911. X    source    create    1    aegis/gonzo.h
  2912. X    source    create    1    aegis/gram.y
  2913. X    source    create    1    aegis/gstate.def
  2914. X    source    create    1    aegis/help.c
  2915. X    source    create    1    aegis/help.h
  2916. X    source    create    1    aegis/integra1.c
  2917. X    source    create    1    aegis/integra1.h
  2918. X    source    create    1    aegis/integra2.c
  2919. X    source    create    1    aegis/integra2.h
  2920. X    source    create    1    aegis/io.c
  2921. X    source    create    1    aegis/io.h
  2922. X    source    create    1    aegis/lex.c
  2923. X    source    create    1    aegis/lex.h
  2924. X    source    create    1    aegis/list.c
  2925. X    source    create    1    aegis/list.h
  2926. X    source    create    1    aegis/lock.c
  2927. X    source    create    1    aegis/lock.h
  2928. X    source    create    1    aegis/log.c
  2929. X    source    create    1    aegis/log.h
  2930. X    source    create    1    aegis/main.c
  2931. X    source    create    1    aegis/new_chan.c
  2932. X    source    create    1    aegis/new_chan.h
  2933. X    source    create    1    aegis/new_file.c
  2934. X    source    create    1    aegis/new_file.h
  2935. X    source    create    1    aegis/new_proj.c
  2936. X    source    create    1    aegis/new_proj.h
  2937. X    source    create    1    aegis/new_rele.c
  2938. X    source    create    1    aegis/new_rele.h
  2939. X    source    create    1    aegis/new_test.c
  2940. X    source    create    1    aegis/new_test.h
  2941. X    source    create    1    aegis/os.c
  2942. X    source    create    1    aegis/os.h
  2943. X    source    create    1    aegis/parse.c
  2944. X    source    create    1    aegis/parse.h
  2945. X    source    create    1    aegis/pattr.def
  2946. X    source    create    1    aegis/pattr_ed.c
  2947. X    source    create    1    aegis/pattr_ed.h
  2948. X    source    create    1    aegis/pconf.def
  2949. X    source    create    1    aegis/project.c
  2950. X    source    create    1    aegis/project.h
  2951. X    source    create    1    aegis/pstate.def
  2952. X    source    create    1    aegis/rem_file.c
  2953. X    source    create    1    aegis/rem_file.h
  2954. X    source    create    1    aegis/review.c
  2955. X    source    create    1    aegis/review.h
  2956. X    source    create    1    aegis/reviewer.c
  2957. X    source    create    1    aegis/reviewer.h
  2958. X    source    create    1    aegis/sub.c
  2959. X    source    create    1    aegis/sub.h
  2960. X    source    create    1    aegis/test.c
  2961. X    source    create    1    aegis/test.h
  2962. X    source    create    1    aegis/tree.c
  2963. X    source    create    1    aegis/tree.h
  2964. X    source    create    1    aegis/type.c
  2965. X    source    create    1    aegis/type.h
  2966. X
  2967. X
  2968. X
  2969. XProject "aegis.1.3", Change 1                      Page 3
  2970. XChange Details                    Thu Jan     7 14:31:51 1993
  2971. X
  2972. X    Type    Action    Edit    File Name
  2973. X    ------- ------- ------- -----------
  2974. X    source    create    1    aegis/uconf.def
  2975. X    source    create    1    aegis/undo.c
  2976. X    source    create    1    aegis/undo.h
  2977. X    source    create    1    aegis/user.c
  2978. X    source    create    1    aegis/user.h
  2979. X    source    create    1    aegis/ustate.def
  2980. X    source    create    1    aegis/version.c
  2981. X    source    create    1    aegis/version.h
  2982. X    source    create    1    common/ansi.c
  2983. X    source    create    1    common/arglex.c
  2984. X    source    create    1    common/arglex.h
  2985. X    source    create    1    common/error.c
  2986. X    source    create    1    common/error.h
  2987. X    source    create    1    common/indent.c
  2988. X    source    create    1    common/indent.h
  2989. X    source    create    1    common/main.h
  2990. X    source    create    1    common/mem.c
  2991. X    source    create    1    common/mem.h
  2992. X    source    create    1    common/option.c
  2993. X    source    create    1    common/option.h
  2994. X    source    create    1    common/str.c
  2995. X    source    create    1    common/str.h
  2996. X    source    create    1    common/trace.c
  2997. X    source    create    1    common/trace.h
  2998. X    source    create    1    common/word.c
  2999. X    source    create    1    common/word.h
  3000. X    source    create    1    conf/ConvexOS-10
  3001. X    source    create    1    conf/SunOS-4.1.2
  3002. X    source    create    1    conf/SysV-4.0
  3003. X    source    create    1    config
  3004. X    source    create    1    doc/ALPHA.man
  3005. X    source    create    1    doc/BUILDING.man
  3006. X    source    create    1    doc/README.man
  3007. X    source    create    1    doc/aegis.ms
  3008. X    source    create    1    doc/c1.0.so
  3009. X    source    create    1    doc/c1.1.so
  3010. X    source    create    1    doc/c1.2.so
  3011. X    source    create    1    doc/c1.3.so
  3012. X    source    create    1    doc/c1.4.so
  3013. X    source    create    1    doc/c2.0.so
  3014. X    source    create    1    doc/c2.1.so
  3015. X    source    create    1    doc/c2.2.so
  3016. X    source    create    1    doc/c2.3.so
  3017. X    source    create    1    doc/c2.4.so
  3018. X    source    create    1    doc/c3.0.so
  3019. X    source    create    1    doc/c3.1.so
  3020. X    source    create    1    doc/c3.2.so
  3021. X    source    create    1    doc/c3.3.so
  3022. X    source    create    1    doc/c4.0.so
  3023. X    source    create    1    doc/c5.0.so
  3024. X    source    create    1    doc/c6.0.so
  3025. X    source    create    1    doc/c7.0.so
  3026. X    source    create    1    doc/c7.1.so
  3027. X    source    create    1    doc/c7.2.so
  3028. X    source    create    1    doc/cA.0.so
  3029. X
  3030. X
  3031. X
  3032. XProject "aegis.1.3", Change 1                      Page 4
  3033. XChange Details                    Thu Jan     7 14:31:51 1993
  3034. X
  3035. X    Type    Action    Edit    File Name
  3036. X    ------- ------- ------- -----------
  3037. X    source    create    1    dot.cshrc
  3038. X    source    create    1    dot.profile
  3039. X    source    create    1    fmtgen/id.c
  3040. X    source    create    1    fmtgen/id.h
  3041. X    source    create    1    fmtgen/lex.c
  3042. X    source    create    1    fmtgen/lex.h
  3043. X    source    create    1    fmtgen/main.c
  3044. X    source    create    1    fmtgen/parse.y
  3045. X    source    create    1    fmtgen/type.c
  3046. X    source    create    1    fmtgen/type.h
  3047. X    source    create    1    fmtgen/type_enum.c
  3048. X    source    create    1    fmtgen/type_integ.c
  3049. X    source    create    1    fmtgen/type_list.c
  3050. X    source    create    1    fmtgen/type_ref.c
  3051. X    source    create    1    fmtgen/type_strin.c
  3052. X    source    create    1    fmtgen/type_struc.c
  3053. X    source    create    1    h/stdarg.h-min
  3054. X    source    create    1    h/stddef.h
  3055. X    source    create    1    h/stdlib.h
  3056. X    source    create    1    man1/aea.1
  3057. X    source    create    1    man1/aeb.1
  3058. X    source    create    1    man1/aeca.1
  3059. X    source    create    1    man1/aecd.1
  3060. X    source    create    1    man1/aecp.1
  3061. X    source    create    1    man1/aecpu.1
  3062. X    source    create    1    man1/aed.1
  3063. X    source    create    1    man1/aedb.1
  3064. X    source    create    1    man1/aedbu.1
  3065. X    source    create    1    man1/aede.1
  3066. X    source    create    1    man1/aedeu.1
  3067. X    source    create    1    man1/aegis.1
  3068. X    source    create    1    man1/aeib.1
  3069. X    source    create    1    man1/aeibu.1
  3070. X    source    create    1    man1/aeif.1
  3071. X    source    create    1    man1/aeip.1
  3072. X    source    create    1    man1/ael.1
  3073. X    source    create    1    man1/aena.1
  3074. X    source    create    1    man1/aenc.1
  3075. X    source    create    1    man1/aencu.1
  3076. X    source    create    1    man1/aend.1
  3077. X    source    create    1    man1/aenf.1
  3078. X    source    create    1    man1/aenfu.1
  3079. X    source    create    1    man1/aeni.1
  3080. X    source    create    1    man1/aenpr.1
  3081. X    source    create    1    man1/aenrls.1
  3082. X    source    create    1    man1/aenrv.1
  3083. X    source    create    1    man1/aent.1
  3084. X    source    create    1    man1/aentu.1
  3085. X    source    create    1    man1/aepa.1
  3086. X    source    create    1    man1/aera.1
  3087. X    source    create    1    man1/aerd.1
  3088. X    source    create    1    man1/aerf.1
  3089. X    source    create    1    man1/aeri.1
  3090. X    source    create    1    man1/aerm.1
  3091. X    source    create    1    man1/aermu.1
  3092. X
  3093. X
  3094. X
  3095. XProject "aegis.1.3", Change 1                      Page 5
  3096. XChange Details                    Thu Jan     7 14:31:51 1993
  3097. X
  3098. X    Type    Action    Edit    File Name
  3099. X    ------- ------- ------- -----------
  3100. X    source    create    1    man1/aerp.1
  3101. X    source    create    1    man1/aerpr.1
  3102. X    source    create    1    man1/aerpu.1
  3103. X    source    create    1    man1/aerrv.1
  3104. X    source    create    1    man1/aet.1
  3105. X    source    create    1    man1/aev.1
  3106. X    source    create    1    man1/install.sh
  3107. X    source    create    1    man1/o__rules.so
  3108. X    source    create    1    man1/o_anticip.so
  3109. X    source    create    1    man1/o_auto.so
  3110. X    source    create    1    man1/o_baselin.so
  3111. X    source    create    1    man1/o_change.so
  3112. X    source    create    1    man1/o_devdir.so
  3113. X    source    create    1    man1/o_dir.so
  3114. X    source    create    1    man1/o_help.so
  3115. X    source    create    1    man1/o_indep.so
  3116. X    source    create    1    man1/o_keep.so
  3117. X    source    create    1    man1/o_lib.so
  3118. X    source    create    1    man1/o_list.so
  3119. X    source    create    1    man1/o_major.so
  3120. X    source    create    1    man1/o_manual.so
  3121. X    source    create    1    man1/o_min.so
  3122. X    source    create    1    man1/o_minor.so
  3123. X    source    create    1    man1/o_nolog.so
  3124. X    source    create    1    man1/o_overw.so
  3125. X    source    create    1    man1/o_page.so
  3126. X    source    create    1    man1/o_project.so
  3127. X    source    create    1    man1/o_terse.so
  3128. X    source    create    1    man1/o_verbose.so
  3129. X    source    create    1    man1/z_cr.so
  3130. X    source    create    1    man1/z_exit.so
  3131. X    source    create    1    man1/z_intuit.so
  3132. X    source    create    1    man1/z_name.so
  3133. X    source    create    1    man5/aecattr.5
  3134. X    source    create    1    man5/aecstate.5
  3135. X    source    create    1    man5/aedir.5
  3136. X    source    create    1    man5/aegis.5
  3137. X    source    create    1    man5/aegstate.5
  3138. X    source    create    1    man5/aepattr.5
  3139. X    source    create    1    man5/aepconf.5
  3140. X    source    create    1    man5/aepstate.5
  3141. X    source    create    1    man5/aeuconf.5
  3142. X    source    create    1    man5/aeustate.5
  3143. X    source    create    1    man5/install.sh
  3144. X    source    create    1    man5/z_cr.so
  3145. X    source    create    1    man5/z_name.so
  3146. X    source    create    1    notify/de.sh
  3147. X    source    create    1    notify/deu.sh
  3148. X    source    create    1    notify/if.sh
  3149. X    source    create    1    notify/ip.sh
  3150. X    source    create    1    notify/rf.sh
  3151. X    source    create    1    notify/rp.sh
  3152. X    source    create    1    notify/rpu.sh
  3153. X    test    create    1    test/00/t0001a.sh
  3154. X    test    create    1    test/00/t0002a.sh
  3155. X
  3156. X
  3157. X
  3158. XProject "aegis.1.3", Change 1                      Page 6
  3159. XChange Details                    Thu Jan     7 14:31:51 1993
  3160. X
  3161. X    Type    Action    Edit    File Name
  3162. X    ------- ------- ------- -----------
  3163. X    test    create    1    test/00/t0003a.sh
  3164. X    test    create    1    test/00/t0004a.sh
  3165. X    test    create    1    test/00/t0005a.sh
  3166. X    test    create    1    test/00/t0006a.sh
  3167. X    test    create    1    test/00/t0007a.sh
  3168. X    test    create    1    test/00/t0008a.sh
  3169. X    test    create    1    test/00/t0009a.sh
  3170. X    test    create    1    test/00/t0010a.sh
  3171. X    test    create    1    test/00/t0011a.sh
  3172. X
  3173. XHISTORY
  3174. X    What        When        Who    Comment
  3175. X    ------        ------        -----    ---------
  3176. X    new_change    Mon Jul 20    pmiller
  3177. X            12:51:15 1992
  3178. X    develop_begin    Mon Jul 20    pmiller
  3179. X            12:51:15 1992
  3180. X    develop_end    Mon Jul 20    pmiller
  3181. X            12:51:15 1992
  3182. X    review_pass    Mon Jul 20    pmiller
  3183. X            12:51:15 1992
  3184. X    integrate_begin Mon Jul 20    pmiller
  3185. X            12:51:15 1992
  3186. X    integrate_pass    Mon Jul 20    pmiller
  3187. X            13:01:05 1992
  3188. X
  3189. X
  3190. X
  3191. XProject "aegis.1.3", Change 2                      Page 1
  3192. XChange Details                    Thu Jan     7 14:31:52 1993
  3193. X
  3194. XNAME
  3195. X    Project "aegis.1.3", Delta 2, Change 2.
  3196. X
  3197. XSUMMARY
  3198. X    make more robust for NFS mounted partitions
  3199. X
  3200. XDESCRIPTION
  3201. X    Most sites do not mount NFS partitions with root permissions,
  3202. X    and thus aegis does not work at all.
  3203. X    My thanks to Esa K Viitala <esa@tollpost-globe.no>, and Andy
  3204. X    Whitcroft <andy@cs.city.ac.uk> for raising this problem.
  3205. X
  3206. X    Locking sometimes does not work correctly.
  3207. X    My thanks to Jesse Perry <jesse@franklin.com> for raising this
  3208. X    problem.
  3209. X
  3210. X    1. store aegis' global files as user 'sys' (configurable)
  3211. X    2. bracket most open and creat and mkdir and unlink calls with
  3212. X    suitable seteuid calls.
  3213. X    3. this means aegis will no longer link on systems without
  3214. X    seteuid (e.g. SCO 3.2, but SYSV and BSD are still capable).
  3215. X    4. Made the locking code diagnostics more complete, and made
  3216. X    the locking itself more paranoid.  Avoided inconsistent fcntl-
  3217. X    isms which happen on some systems.
  3218. X    5. made aeca more secure.
  3219. X    6. database files now contain human-readable time equivalents
  3220. X    as comments
  3221. X
  3222. X    This change is exempt from testing against the baseline.
  3223. X
  3224. XCAUSE
  3225. X    This change was caused by external_bug.
  3226. X
  3227. XFILES
  3228. X    Type    Action    Edit    File Name
  3229. X    ------- ------- ------- -----------
  3230. X    source    modify    2    Howto.cook
  3231. X    source    modify    2    aegis/build.c
  3232. X    source    modify    2    aegis/cattr_ed.c
  3233. X    source    modify    2    aegis/change.c
  3234. X    source    modify    2    aegis/change.h
  3235. X    source    modify    2    aegis/chdir.c
  3236. X    source    modify    2    aegis/col.c
  3237. X    source    modify    2    aegis/commit.c
  3238. X    source    modify    2    aegis/commit.h
  3239. X    source    modify    2    aegis/copyfile.c
  3240. X    source    modify    2    aegis/cstate.def
  3241. X    source    modify    2    aegis/develop2.c
  3242. X    source    modify    2    aegis/diff.c
  3243. X    source    modify    2    aegis/file.c
  3244. X    source    modify    2    aegis/file.h
  3245. X    source    modify    2    aegis/gate.h
  3246. X    source    modify    2    aegis/gonzo.c
  3247. X    source    modify    2    aegis/gonzo.h
  3248. X    source    modify    2    aegis/gram.y
  3249. X    source    modify    2    aegis/help.c
  3250. X    source    modify    2    aegis/integra2.c
  3251. X
  3252. X
  3253. X
  3254. XProject "aegis.1.3", Change 2                      Page 2
  3255. XChange Details                    Thu Jan     7 14:31:52 1993
  3256. X
  3257. X    Type    Action    Edit    File Name
  3258. X    ------- ------- ------- -----------
  3259. X    source    modify    2    aegis/io.c
  3260. X    source    modify    2    aegis/lex.c
  3261. X    source    modify    2    aegis/list.c
  3262. X    source    modify    2    aegis/lock.c
  3263. X    source    modify    2    aegis/log.c
  3264. X    source    modify    2    aegis/main.c
  3265. X    source    modify    2    aegis/new_chan.c
  3266. X    source    modify    2    aegis/new_file.c
  3267. X    source    modify    2    aegis/new_proj.c
  3268. X    source    modify    2    aegis/new_rele.c
  3269. X    source    modify    2    aegis/new_test.c
  3270. X    source    modify    2    aegis/os.c
  3271. X    source    modify    2    aegis/os.h
  3272. X    source    modify    2    aegis/pattr.def
  3273. X    source    modify    2    aegis/pattr_ed.c
  3274. X    source    modify    2    aegis/project.c
  3275. X    source    modify    2    aegis/project.h
  3276. X    source    modify    2    aegis/rem_file.c
  3277. X    source    modify    2    aegis/review.c
  3278. X    source    modify    2    aegis/sub.c
  3279. X    source    modify    2    aegis/test.c
  3280. X    source    remove    1    aegis/tree.c
  3281. X    source    remove    1    aegis/tree.h
  3282. X    source    modify    2    aegis/type.c
  3283. X    source    modify    2    aegis/type.h
  3284. X    source    modify    2    aegis/undo.c
  3285. X    source    modify    2    aegis/undo.h
  3286. X    source    modify    2    aegis/user.c
  3287. X    source    modify    2    aegis/user.h
  3288. X    source    modify    2    common/error.c
  3289. X    source    modify    2    common/main.h
  3290. X    source    modify    2    conf/ConvexOS-10
  3291. X    source    modify    2    conf/SunOS-4.1.2
  3292. X    source    modify    2    conf/SysV-4.0
  3293. X    source    modify    2    doc/BUILDING.man
  3294. X    source    modify    2    doc/README.man
  3295. X    source    modify    2    fmtgen/parse.y
  3296. X    source    modify    2    man5/aecstate.5
  3297. X    test    modify    2    test/00/t0002a.sh
  3298. X    test    modify    2    test/00/t0004a.sh
  3299. X    test    modify    2    test/00/t0005a.sh
  3300. X    test    modify    2    test/00/t0006a.sh
  3301. X    test    modify    2    test/00/t0007a.sh
  3302. X    test    modify    2    test/00/t0008a.sh
  3303. X    test    modify    2    test/00/t0009a.sh
  3304. X    test    modify    2    test/00/t0010a.sh
  3305. X    test    modify    2    test/00/t0011a.sh
  3306. X
  3307. XHISTORY
  3308. X    What        When        Who    Comment
  3309. X    ------        ------        -----    ---------
  3310. X    new_change    Sun Aug     2    pmiller
  3311. X            21:55:14 1992
  3312. X    develop_begin    Sun Aug     2    pmiller Elapsed time: 52.937
  3313. X            21:55:42 1992        days.
  3314. X
  3315. X
  3316. X
  3317. XProject "aegis.1.3", Change 2                      Page 3
  3318. XChange Details                    Thu Jan     7 14:31:52 1993
  3319. X
  3320. X    What        When        Who    Comment
  3321. X    ------        ------        -----    ---------
  3322. X    develop_end    Thu Oct 15    pmiller
  3323. X            13:57:28 1992
  3324. X    review_pass    Thu Oct 15    pmiller
  3325. X            13:58:18 1992
  3326. X    integrate_begin Thu Oct 15    pmiller Elapsed time: 0.285
  3327. X            13:59:34 1992        days.
  3328. X    integrate_pass    Thu Oct 15    pmiller
  3329. X            16:07:45 1992
  3330. X
  3331. X
  3332. X
  3333. XProject "aegis.1.3", Change 3                      Page 1
  3334. XChange Details                    Thu Jan     7 14:31:53 1993
  3335. X
  3336. XNAME
  3337. X    Project "aegis.1.3", Delta 3, Change 3.
  3338. X
  3339. XSUMMARY
  3340. X    orthoganalize the notification execution functions
  3341. X
  3342. XDESCRIPTION
  3343. X    Round up all of the notification commands and place them into
  3344. X    aegis/change.c for consistency.
  3345. X
  3346. X    This change is exempt from testing.  This change is exempt from
  3347. X    testing against the baseline.
  3348. X
  3349. XCAUSE
  3350. X    This change was caused by internal_enhancement.
  3351. X
  3352. XFILES
  3353. X    Type    Action    Edit    File Name
  3354. X    ------- ------- ------- -----------
  3355. X    source    modify    3    aegis/build.c
  3356. X    source    modify    3    aegis/cattr_ed.c
  3357. X    source    modify    3    aegis/change.c
  3358. X    source    modify    3    aegis/change.h
  3359. X    source    modify    3    aegis/develop2.c
  3360. X    source    modify    3    aegis/integra2.c
  3361. X    source    modify    3    aegis/review.c
  3362. X
  3363. XHISTORY
  3364. X    What        When        Who    Comment
  3365. X    ------        ------        -----    ---------
  3366. X    new_change    Thu Oct 15    pmiller
  3367. X            16:13:34 1992
  3368. X    develop_begin    Thu Oct 15    pmiller Elapsed time: 0.429
  3369. X            16:13:44 1992        days.
  3370. X    develop_end    Fri Oct 16    pmiller
  3371. X            11:56:54 1992
  3372. X    review_pass    Fri Oct 16    pmiller
  3373. X            11:57:04 1992
  3374. X    integrate_begin Fri Oct 16    pmiller Elapsed time: 0.169
  3375. X            11:57:50 1992        days.
  3376. X    integrate_pass    Fri Oct 16    pmiller
  3377. X            13:13:52 1992
  3378. X
  3379. X
  3380. X
  3381. XProject "aegis.1.3", Change 4                      Page 1
  3382. XChange Details                    Thu Jan     7 14:31:54 1993
  3383. X
  3384. XNAME
  3385. X    Project "aegis.1.3", Delta 4, Change 4.
  3386. X
  3387. XSUMMARY
  3388. X    change the tests to use RCS
  3389. X
  3390. XDESCRIPTION
  3391. X    Not all sites have SCCS bundled with their system, and so they
  3392. X    must fork out real money for it. RCS is available from the GNU
  3393. X    folks, and so is a far better choice.
  3394. X
  3395. X    This change is exempt from testing against the baseline.
  3396. X
  3397. XCAUSE
  3398. X    This change was caused by internal_enhancement.
  3399. X
  3400. XFILES
  3401. X    Type    Action    Edit    File Name
  3402. X    ------- ------- ------- -----------
  3403. X    source    modify    3    Howto.cook
  3404. X    source    modify    3    doc/BUILDING.man
  3405. X    test    modify    3    test/00/t0002a.sh
  3406. X    test    modify    3    test/00/t0004a.sh
  3407. X    test    modify    3    test/00/t0005a.sh
  3408. X    test    modify    3    test/00/t0006a.sh
  3409. X    test    modify    3    test/00/t0007a.sh
  3410. X    test    modify    3    test/00/t0008a.sh
  3411. X    test    modify    3    test/00/t0009a.sh
  3412. X    test    modify    3    test/00/t0010a.sh
  3413. X    test    modify    3    test/00/t0011a.sh
  3414. X
  3415. XHISTORY
  3416. X    What        When        Who    Comment
  3417. X    ------        ------        -----    ---------
  3418. X    new_change    Fri Oct 16    pmiller
  3419. X            13:16:54 1992
  3420. X    develop_begin    Fri Oct 16    pmiller Elapsed time: 0.111
  3421. X            13:17:04 1992        days.
  3422. X    develop_end    Fri Oct 16    pmiller
  3423. X            14:07:08 1992
  3424. X    review_pass    Fri Oct 16    pmiller
  3425. X            14:09:08 1992
  3426. X    integrate_begin Fri Oct 16    pmiller Elapsed time: 0.105
  3427. X            14:09:55 1992        days.
  3428. X    integrate_pass    Fri Oct 16    pmiller
  3429. X            14:57:08 1992
  3430. X
  3431. X
  3432. X
  3433. XProject "aegis.1.3", Change 5                      Page 1
  3434. XChange Details                    Thu Jan     7 14:31:55 1993
  3435. X
  3436. XNAME
  3437. X    Project "aegis.1.3", Delta 5, Change 5.
  3438. X
  3439. XSUMMARY
  3440. X    improve generated Makefile
  3441. X
  3442. XDESCRIPTION
  3443. X    Improve the Makefile generated to include clean, realclean and
  3444. X    clobber targets. My thanks to Raphael Manfredi <ram@eiffel.com>
  3445. X    for this suggestion.
  3446. X
  3447. X    Improve the Makefile generated to use a define for YACC,
  3448. X    allowing sites to use their own.  My thanks to Jesse Perry
  3449. X    <jesse@franklin.com> for this suggestion.
  3450. X
  3451. X    This change is exempt from testing.  This change is exempt from
  3452. X    testing against the baseline.
  3453. X
  3454. XCAUSE
  3455. X    This change was caused by external_enhancement.
  3456. X
  3457. XFILES
  3458. X    Type    Action    Edit    File Name
  3459. X    ------- ------- ------- -----------
  3460. X    source    modify    2    Makefile.sh
  3461. X
  3462. XHISTORY
  3463. X    What        When        Who    Comment
  3464. X    ------        ------        -----    ---------
  3465. X    new_change    Fri Oct 16    pmiller
  3466. X            15:03:51 1992
  3467. X    develop_begin    Fri Oct 16    pmiller Elapsed time: 0.136
  3468. X            15:05:54 1992        days.
  3469. X    develop_end    Fri Oct 16    pmiller
  3470. X            16:07:13 1992
  3471. X    review_pass    Fri Oct 16    pmiller
  3472. X            16:07:21 1992
  3473. X    integrate_begin Fri Oct 16    pmiller Elapsed time: 0.028
  3474. X            16:08:03 1992        days.
  3475. X    integrate_pass    Fri Oct 16    pmiller
  3476. X            16:20:52 1992
  3477. X
  3478. X
  3479. X
  3480. XProject "aegis.1.3", Change 6                      Page 1
  3481. XChange Details                    Thu Jan     7 14:31:57 1993
  3482. X
  3483. XNAME
  3484. X    Project "aegis.1.3", Delta 8, Change 6.
  3485. X
  3486. XSUMMARY
  3487. X    make aegis work on dgux
  3488. X
  3489. XDESCRIPTION
  3490. X    1. Change it so that it will compile on dgux.  The DG is one of
  3491. X    those rare machines where jmp_buf is a structure and not an
  3492. X    array, and this arguments of type va_list can't be passed as
  3493. X    pointers (they never should have, of course, but when does one
  3494. X    write truly portable code except when forced?
  3495. X    2. fix a bug concerning templates which stopped new_file and
  3496. X    new_test from working correctly.
  3497. X    3. remove the last of the '#pragma once' directives from the
  3498. X    include files.    My thanks to Peter Chubb
  3499. X    <peterc@suite.sw.oz.au> and Jesse Perry <jesse@franklin.com>
  3500. X    for raising this problem.
  3501. X    4. There was a problem with tests 6, 8 and 9: they did not
  3502. X    correctly unlink files during builds.
  3503. X    5. There was a problem with integrate_fail: it tried to chmod
  3504. X    files which did not belong to the user.
  3505. X
  3506. X    This change is exempt from testing.  This change is exempt from
  3507. X    testing against the baseline.
  3508. X
  3509. XCAUSE
  3510. X    This change was caused by internal_enhancement.
  3511. X
  3512. XFILES
  3513. X    Type    Action    Edit    File Name
  3514. X    ------- ------- ------- -----------
  3515. X    source    modify    3    Makefile.sh
  3516. X    source    modify    2    aegis/administ.h
  3517. X    source    modify    2    aegis/archaeol.h
  3518. X    source    modify    2    aegis/build.h
  3519. X    source    modify    2    aegis/cattr_ed.h
  3520. X    source    modify    4    aegis/change.c
  3521. X    source    modify    2    aegis/chdir.h
  3522. X    source    modify    3    aegis/col.c
  3523. X    source    modify    2    aegis/col.h
  3524. X    source    modify    2    aegis/copyfile.h
  3525. X    source    modify    2    aegis/develop1.h
  3526. X    source    modify    2    aegis/develop2.h
  3527. X    source    modify    3    aegis/diff.c
  3528. X    source    modify    2    aegis/diff.h
  3529. X    source    modify    2    aegis/dir.c
  3530. X    source    modify    2    aegis/dir.h
  3531. X    source    remove    2    aegis/gate.h
  3532. X    source    modify    2    aegis/help.h
  3533. X    source    modify    2    aegis/integra1.h
  3534. X    source    modify    4    aegis/integra2.c
  3535. X    source    modify    2    aegis/integra2.h
  3536. X    source    modify    2    aegis/io.h
  3537. X    source    modify    3    aegis/lex.c
  3538. X    source    modify    2    aegis/lex.h
  3539. X    source    modify    2    aegis/list.h
  3540. X
  3541. X
  3542. X
  3543. XProject "aegis.1.3", Change 6                      Page 2
  3544. XChange Details                    Thu Jan     7 14:31:57 1993
  3545. X
  3546. X    Type    Action    Edit    File Name
  3547. X    ------- ------- ------- -----------
  3548. X    source    modify    3    aegis/lock.c
  3549. X    source    modify    2    aegis/lock.h
  3550. X    source    modify    2    aegis/log.h
  3551. X    source    modify    3    aegis/main.c
  3552. X    source    modify    2    aegis/new_chan.h
  3553. X    source    modify    3    aegis/new_file.c
  3554. X    source    modify    2    aegis/new_file.h
  3555. X    source    modify    2    aegis/new_proj.h
  3556. X    source    modify    2    aegis/new_rele.h
  3557. X    source    modify    3    aegis/new_test.c
  3558. X    source    modify    2    aegis/new_test.h
  3559. X    source    modify    3    aegis/os.c
  3560. X    source    modify    2    aegis/parse.c
  3561. X    source    modify    2    aegis/parse.h
  3562. X    source    modify    2    aegis/pattr_ed.h
  3563. X    source    modify    3    aegis/project.c
  3564. X    source    modify    2    aegis/rem_file.h
  3565. X    source    modify    2    aegis/review.h
  3566. X    source    modify    2    aegis/reviewer.h
  3567. X    source    modify    3    aegis/sub.c
  3568. X    source    modify    2    aegis/sub.h
  3569. X    source    modify    2    aegis/test.h
  3570. X    source    modify    2    aegis/version.h
  3571. X    source    modify    2    common/arglex.h
  3572. X    source    modify    3    common/error.c
  3573. X    source    modify    2    common/error.h
  3574. X    source    modify    2    common/indent.c
  3575. X    source    modify    2    common/indent.h
  3576. X    source    modify    3    common/main.h
  3577. X    source    modify    2    common/mem.h
  3578. X    source    modify    2    common/option.h
  3579. X    source    create    1    common/s-v-arg.h
  3580. X    source    modify    2    common/str.c
  3581. X    source    modify    2    common/str.h
  3582. X    source    modify    2    common/trace.c
  3583. X    source    modify    2    common/trace.h
  3584. X    source    modify    2    common/word.h
  3585. X    source    create    1    conf/dgux-5.4.1
  3586. X    source    modify    2    config
  3587. X    source    modify    2    fmtgen/id.h
  3588. X    source    modify    2    fmtgen/lex.c
  3589. X    source    modify    2    fmtgen/lex.h
  3590. X    source    modify    2    fmtgen/type.h
  3591. X    test    modify    4    test/00/t0002a.sh
  3592. X    test    modify    4    test/00/t0004a.sh
  3593. X    test    modify    4    test/00/t0005a.sh
  3594. X    test    modify    4    test/00/t0006a.sh
  3595. X    test    modify    4    test/00/t0007a.sh
  3596. X    test    modify    4    test/00/t0008a.sh
  3597. X    test    modify    4    test/00/t0009a.sh
  3598. X    test    modify    4    test/00/t0010a.sh
  3599. X
  3600. X
  3601. X
  3602. XProject "aegis.1.3", Change 6                      Page 3
  3603. XChange Details                    Thu Jan     7 14:31:57 1993
  3604. X
  3605. XHISTORY
  3606. X    What        When        Who    Comment
  3607. X    ------        ------        -----    ---------
  3608. X    new_change    Fri Oct 16    pmiller
  3609. X            16:21:58 1992
  3610. X    develop_begin    Fri Oct 16    pmiller Elapsed time: 0.591
  3611. X            16:22:07 1992        days.
  3612. X    develop_end    Mon Oct 19    pmiller
  3613. X            13:18:10 1992
  3614. X    review_pass    Mon Oct 19    pmiller
  3615. X            13:18:25 1992
  3616. X    integrate_begin Mon Oct 19    pmiller Elapsed time: 0.177
  3617. X            13:19:13 1992        days.
  3618. X    integrate_fail    Mon Oct 19    pmiller 1. The file gate.h
  3619. X            14:39:00 1992        needs more constants in
  3620. X                        it.
  3621. X                        2. the use of lock_t in
  3622. X                        aegis/lock.c needs to
  3623. X                        be changed.
  3624. X                        Elapsed time: 0.267
  3625. X                        days.
  3626. X    develop_end    Mon Oct 19    pmiller
  3627. X            16:39:06 1992
  3628. X    review_pass    Mon Oct 19    pmiller
  3629. X            16:39:45 1992
  3630. X    integrate_begin Mon Oct 19    pmiller Elapsed time: 1.702
  3631. X            16:41:29 1992        days.
  3632. X    integrate_fail    Tue Oct 20    pmiller 1. tests 6, 8, 9 fail
  3633. X            21:57:36 1992        on the DG because of
  3634. X                        ld(1) semantics
  3635. X                        2. problem with -intfail
  3636. X                        Elapsed time: 0.000
  3637. X                        days.
  3638. X    develop_end    Wed Oct 21    pmiller
  3639. X            09:31:53 1992
  3640. X    review_pass    Wed Oct 21    pmiller
  3641. X            09:32:05 1992
  3642. X    integrate_begin Wed Oct 21    pmiller Elapsed time: 0.111
  3643. X            09:32:37 1992        days.
  3644. X    integrate_pass    Wed Oct 21    pmiller
  3645. X            10:22:45 1992
  3646. X
  3647. X
  3648. X
  3649. XProject "aegis.1.3", Change 7                      Page 1
  3650. XChange Details                    Thu Jan     7 14:31:58 1993
  3651. X
  3652. XNAME
  3653. X    Project "aegis.1.3", Delta 9, Change 7.
  3654. X
  3655. XSUMMARY
  3656. X    enhance columns output
  3657. X
  3658. XDESCRIPTION
  3659. X    enhance columns output
  3660. X
  3661. X    This change is exempt from testing.  This change is exempt from
  3662. X    testing against the baseline.
  3663. X
  3664. XCAUSE
  3665. X    This change was caused by internal_enhancement.
  3666. X
  3667. XFILES
  3668. X    Type    Action    Edit    File Name
  3669. X    ------- ------- ------- -----------
  3670. X    source    modify    2    CHANGES.sh
  3671. X    source    modify    2    aegis/arglex2.h
  3672. X    source    modify    4    aegis/col.c
  3673. X    source    modify    3    aegis/col.h
  3674. X    source    modify    3    aegis/help.c
  3675. X    source    modify    3    aegis/list.c
  3676. X    source    modify    3    aegis/log.c
  3677. X    source    modify    4    aegis/main.c
  3678. X    source    modify    4    aegis/os.c
  3679. X    source    modify    3    aegis/os.h
  3680. X    source    create    1    aegis/pager.c
  3681. X    source    create    1    aegis/pager.h
  3682. X    source    modify    4    common/main.h
  3683. X    source    modify    2    common/option.c
  3684. X    source    modify    3    common/option.h
  3685. X    source    modify    2    man1/aegis.1
  3686. X    source    modify    2    man1/o_page.so
  3687. X
  3688. XHISTORY
  3689. X    What        When        Who    Comment
  3690. X    ------        ------        -----    ---------
  3691. X    new_change    Wed Oct 21    pmiller
  3692. X            10:29:04 1992
  3693. X    develop_begin    Wed Oct 21    pmiller Elapsed time: 1.061
  3694. X            10:29:21 1992        days.
  3695. X    develop_end    Thu Oct 22    pmiller
  3696. X            10:56:37 1992
  3697. X    review_pass    Thu Oct 22    pmiller
  3698. X            10:57:14 1992
  3699. X    integrate_begin Thu Oct 22    pmiller Elapsed time: 0.235
  3700. X            10:57:57 1992        days.
  3701. X    integrate_pass    Thu Oct 22    pmiller
  3702. X            12:43:40 1992
  3703. X
  3704. X
  3705. X
  3706. XProject "aegis.1.3", Change 8                      Page 1
  3707. XChange Details                    Thu Jan     7 14:31:59 1993
  3708. X
  3709. XNAME
  3710. X    Project "aegis.1.3", Delta 10, Change 8.
  3711. X
  3712. XSUMMARY
  3713. X    do not automagically append the program name to the library path
  3714. X
  3715. XDESCRIPTION
  3716. X    Do not automagically append the program name to the library
  3717. X    path, as this makes it difficult for some sites to customize
  3718. X    the location.
  3719. X
  3720. X    My thanks to Andy Whitcroft <andy@cs.city.ac.uk> for this
  3721. X    suggestion.
  3722. X
  3723. X    This change is exempt from testing.  This change is exempt from
  3724. X    testing against the baseline.
  3725. X
  3726. XCAUSE
  3727. X    This change was caused by external_enhancement.
  3728. X
  3729. XFILES
  3730. X    Type    Action    Edit    File Name
  3731. X    ------- ------- ------- -----------
  3732. X    source    modify    4    Howto.cook
  3733. X    source    modify    4    Makefile.sh
  3734. X    source    modify    3    aegis/gonzo.c
  3735. X    source    modify    3    common/option.c
  3736. X    source    modify    2    common/s-v-arg.h
  3737. X    source    create    1    conf/SunOS-4.1.1
  3738. X
  3739. XHISTORY
  3740. X    What        When        Who    Comment
  3741. X    ------        ------        -----    ---------
  3742. X    new_change    Sat Oct 24    pmiller
  3743. X            23:51:45 1992
  3744. X    develop_begin    Sat Oct 24    pmiller Elapsed time: 0.605
  3745. X            23:51:52 1992        days.
  3746. X    develop_end    Sun Oct 25    pmiller
  3747. X            21:53:55 1992
  3748. X    review_pass    Sun Oct 25    pmiller
  3749. X            21:56:55 1992
  3750. X    integrate_begin Sun Oct 25    pmiller Elapsed time: 0.952
  3751. X            21:57:46 1992        days.
  3752. X    integrate_pass    Mon Oct 26    pmiller
  3753. X            21:36:01 1992
  3754. X
  3755. X
  3756. X
  3757. XProject "aegis.1.3", Change 9                      Page 1
  3758. XChange Details                    Thu Jan     7 14:32:00 1993
  3759. X
  3760. XNAME
  3761. X    Project "aegis.1.3", Delta 11, Change 9.
  3762. X
  3763. XSUMMARY
  3764. X    change the build_number field to a delta_number field
  3765. X
  3766. XDESCRIPTION
  3767. X    1. The use of 'build' is ambiguous.  Use delta instead.     It
  3768. X    also makes the 'D' in the version number make more sense.
  3769. X    2. remove long-standing build problem w.r.t. common/conf.h.
  3770. X    3. make test 2 quieter.
  3771. X    4. make column code more capable, and exploit this in the
  3772. X    listings.
  3773. X    5. note the incompatibility of this version of aegis with
  3774. X    earlier versions in the ALPGHA file.
  3775. X    6. testing exemptions cancelled when tests added to a change.
  3776. X
  3777. X    This change is exempt from testing.  This change is exempt from
  3778. X    testing against the baseline.
  3779. X
  3780. XCAUSE
  3781. X    This change was caused by internal_enhancement.
  3782. X
  3783. XFILES
  3784. X    Type    Action    Edit    File Name
  3785. X    ------- ------- ------- -----------
  3786. X    source    modify    5    Howto.cook
  3787. X    source    modify    4    aegis/build.c
  3788. X    source    modify    5    aegis/col.c
  3789. X    source    modify    4    aegis/col.h
  3790. X    source    modify    3    aegis/copyfile.c
  3791. X    source    modify    3    aegis/cstate.def
  3792. X    source    modify    5    aegis/integra2.c
  3793. X    source    modify    4    aegis/list.c
  3794. X    source    modify    3    aegis/new_proj.c
  3795. X    source    modify    3    aegis/new_rele.c
  3796. X    source    modify    4    aegis/new_test.c
  3797. X    source    modify    4    aegis/project.c
  3798. X    source    modify    2    aegis/pstate.def
  3799. X    source    modify    5    common/main.h
  3800. X    source    modify    2    doc/ALPHA.man
  3801. X    source    modify    4    doc/BUILDING.man
  3802. X    source    modify    2    man1/aeib.1
  3803. X    source    modify    3    man5/aecstate.5
  3804. X    source    modify    2    man5/aepstate.5
  3805. X    test    modify    5    test/00/t0002a.sh
  3806. X
  3807. XHISTORY
  3808. X    What        When        Who    Comment
  3809. X    ------        ------        -----    ---------
  3810. X    new_change    Mon Oct 26    pmiller
  3811. X            21:40:38 1992
  3812. X    develop_begin    Mon Oct 26    pmiller Elapsed time: 4.939
  3813. X            21:40:50 1992        days.
  3814. X    develop_end    Sat Oct 31    pmiller Elapsed time: 0.051
  3815. X            21:13:32 1992        days.
  3816. X    review_pass    Sat Oct 31    pmiller
  3817. X
  3818. X
  3819. X
  3820. XProject "aegis.1.3", Change 9                      Page 2
  3821. XChange Details                    Thu Jan     7 14:32:00 1993
  3822. X
  3823. X    What        When        Who    Comment
  3824. X    ------        ------        -----    ---------
  3825. X            21:36:20 1992
  3826. X    integrate_begin Sat Oct 31    pmiller Elapsed time: 0.110
  3827. X            21:37:13 1992        days.
  3828. X    integrate_pass    Sat Oct 31    pmiller
  3829. X            22:26:45 1992
  3830. X
  3831. X
  3832. X
  3833. XProject "aegis.1.3", Change 10                      Page 1
  3834. XChange Details                    Thu Jan     7 14:32:02 1993
  3835. X
  3836. XNAME
  3837. X    Project "aegis.1.3", Delta 12, Change 10.
  3838. X
  3839. XSUMMARY
  3840. X    fix niggling bugs
  3841. X
  3842. XDESCRIPTION
  3843. X    1. Check state=complete implies delta_number set.
  3844. X    2. build_number should be set on new_release.
  3845. X    3. CHANGES.sh needs improving.
  3846. X    4. quit needs to close pager.
  3847. X    5. when field in history needs human-readable comment.
  3848. X
  3849. X    This change is exempt from testing.  This change is exempt from
  3850. X    testing against the baseline.
  3851. X
  3852. XCAUSE
  3853. X    This change was caused by internal_bug.
  3854. X
  3855. XFILES
  3856. X    Type    Action    Edit    File Name
  3857. X    ------- ------- ------- -----------
  3858. X    source    modify    3    CHANGES.sh
  3859. X    source    modify    5    aegis/change.c
  3860. X    source    modify    6    aegis/col.c
  3861. X    source    modify    3    aegis/io.c
  3862. X    source    modify    5    aegis/list.c
  3863. X    source    modify    4    aegis/new_rele.c
  3864. X    source    modify    2    aegis/pager.c
  3865. X
  3866. XHISTORY
  3867. X    What        When        Who    Comment
  3868. X    ------        ------        -----    ---------
  3869. X    new_change    Sat Oct 31    pmiller
  3870. X            23:21:05 1992
  3871. X    develop_begin    Sat Oct 31    pmiller Elapsed time: 0.941
  3872. X            23:21:16 1992        days.
  3873. X    develop_end    Sun Nov     1    pmiller
  3874. X            22:54:34 1992
  3875. X    review_pass    Sun Nov     1    pmiller
  3876. X            22:54:42 1992
  3877. X    integrate_begin Sun Nov     1    pmiller Elapsed time: 0.000
  3878. X            22:55:21 1992        days.
  3879. X    integrate_pass    Mon Nov     2    pmiller
  3880. X            08:33:33 1992
  3881. X
  3882. X
  3883. X
  3884. XProject "aegis.1.3", Change 11                      Page 1
  3885. XChange Details                    Thu Jan     7 14:32:04 1993
  3886. X
  3887. XNAME
  3888. X    Project "aegis.1.3", Delta 13, Change 11.
  3889. X
  3890. XSUMMARY
  3891. X    add default_test_exempt attribute to projects
  3892. X
  3893. XDESCRIPTION
  3894. X    1. Add a setting mask to structures so that we can determine
  3895. X    that a given field has been set.
  3896. X    2. Use this information to rationalize some of the validation
  3897. X    code.
  3898. X    3. Add a default_test_exemption field to project attributes.
  3899. X
  3900. X    This change is exempt from testing.  This change is exempt from
  3901. X    testing against the baseline.
  3902. X
  3903. XCAUSE
  3904. X    This change was caused by internal_enhancement.
  3905. X
  3906. XFILES
  3907. X    Type    Action    Edit    File Name
  3908. X    ------- ------- ------- -----------
  3909. X    source    modify    4    aegis/cattr_ed.c
  3910. X    source    modify    2    aegis/common.def
  3911. X    source    modify    3    aegis/new_chan.c
  3912. X    source    modify    3    aegis/parse.c
  3913. X    source    modify    3    aegis/pattr.def
  3914. X    source    modify    3    aegis/pattr_ed.c
  3915. X    source    modify    3    aegis/type.h
  3916. X    source    modify    2    fmtgen/type_struc.c
  3917. X    source    modify    2    man5/aepattr.5
  3918. X    source    modify    3    man5/aepstate.5
  3919. X
  3920. XHISTORY
  3921. X    What        When        Who    Comment
  3922. X    ------        ------        -----    ---------
  3923. X    new_change    Sun Nov     1    pmiller Elapsed time: 0.000
  3924. X            22:49:37 1992        days.
  3925. X    develop_begin    Mon Nov     2    pmiller Elapsed time: 0.000
  3926. X            08:36:00 1992        days.
  3927. X    develop_end    Mon Nov     2    pmiller
  3928. X            16:38:21 1992
  3929. X    review_pass    Mon Nov     2    pmiller
  3930. X            16:40:48 1992
  3931. X    integrate_begin Mon Nov     2    pmiller Elapsed time: 0.656
  3932. X            16:41:42 1992        days.
  3933. X    integrate_pass    Mon Nov     2    pmiller
  3934. X            21:36:49 1992
  3935. X
  3936. X
  3937. X
  3938. XProject "aegis.1.3", Change 12                      Page 1
  3939. XChange Details                    Thu Jan     7 14:32:05 1993
  3940. X
  3941. XNAME
  3942. X    Project "aegis.1.3", Delta 14, Change 12.
  3943. X
  3944. XSUMMARY
  3945. X    change the way use yacc
  3946. X
  3947. XDESCRIPTION
  3948. X    Have yacc produce *.gen.[ch] files, so can have true .h
  3949. X    interface definition file for yacc sources.
  3950. X
  3951. X    This change is exempt from testing.  This change is exempt from
  3952. X    testing against the baseline.
  3953. X
  3954. XCAUSE
  3955. X    This change was caused by internal_enhancement.
  3956. X
  3957. XFILES
  3958. X    Type    Action    Edit    File Name
  3959. X    ------- ------- ------- -----------
  3960. X    source    modify    6    Howto.cook
  3961. X    source    modify    5    Makefile.sh
  3962. X    source    modify    4    aegis/develop2.c
  3963. X    source    create    1    aegis/gram.h
  3964. X    source    modify    3    aegis/gram.y
  3965. X    source    modify    4    aegis/lex.c
  3966. X    source    modify    3    aegis/lex.h
  3967. X    source    modify    4    aegis/parse.c
  3968. X    source    modify    3    fmtgen/lex.c
  3969. X    source    modify    3    fmtgen/lex.h
  3970. X    source    modify    2    fmtgen/main.c
  3971. X    source    create    1    fmtgen/parse.h
  3972. X    source    modify    3    fmtgen/parse.y
  3973. X    source    modify    3    fmtgen/type_struc.c
  3974. X
  3975. XHISTORY
  3976. X    What        When        Who    Comment
  3977. X    ------        ------        -----    ---------
  3978. X    new_change    Sun Nov     1    pmiller Elapsed time: 0.844
  3979. X            22:51:07 1992        days.
  3980. X    develop_begin    Mon Nov     2    pmiller Elapsed time: 0.245
  3981. X            21:41:02 1992        days.
  3982. X    develop_end    Tue Nov     3    pmiller
  3983. X            16:01:23 1992
  3984. X    review_pass    Tue Nov     3    pmiller
  3985. X            16:01:37 1992
  3986. X    integrate_begin Tue Nov     3    pmiller Elapsed time: 0.072
  3987. X            16:02:18 1992        days.
  3988. X    integrate_pass    Tue Nov     3    pmiller
  3989. X            16:34:48 1992
  3990. X
  3991. X
  3992. X
  3993. XProject "aegis.1.3", Change 13                      Page 1
  3994. XChange Details                    Thu Jan     7 14:32:06 1993
  3995. X
  3996. XNAME
  3997. X    Project "aegis.1.3", Delta 15, Change 13.
  3998. X
  3999. XSUMMARY
  4000. X    remove ,D file when remove a file from a change
  4001. X
  4002. XDESCRIPTION
  4003. X    The aecpu, aenfu, aermu, aentu commands should remove any ,D
  4004. X    file if it exists.
  4005. X
  4006. X    This change is exempt from testing.  This change is exempt from
  4007. X    testing against the baseline.
  4008. X
  4009. XCAUSE
  4010. X    This change was caused by internal_enhancement.
  4011. X
  4012. XFILES
  4013. X    Type    Action    Edit    File Name
  4014. X    ------- ------- ------- -----------
  4015. X    source    modify    4    aegis/copyfile.c
  4016. X    source    modify    4    aegis/new_file.c
  4017. X    source    modify    5    aegis/new_test.c
  4018. X    source    modify    5    aegis/os.c
  4019. X    source    modify    3    aegis/rem_file.c
  4020. X
  4021. XHISTORY
  4022. X    What        When        Who    Comment
  4023. X    ------        ------        -----    ---------
  4024. X    new_change    Sun Nov     1    pmiller Elapsed time: 1.169
  4025. X            22:52:07 1992        days.
  4026. X    develop_begin    Tue Nov     3    pmiller Elapsed time: 0.121
  4027. X            16:38:00 1992        days.
  4028. X    develop_end    Wed Nov     4    pmiller
  4029. X            10:02:23 1992
  4030. X    review_pass    Wed Nov     4    pmiller
  4031. X            10:02:31 1992
  4032. X    integrate_begin Wed Nov     4    pmiller Elapsed time: 0.054
  4033. X            10:03:13 1992        days.
  4034. X    integrate_pass    Wed Nov     4    pmiller
  4035. X            10:27:35 1992
  4036. X
  4037. X
  4038. X
  4039. XProject "aegis.1.3", Change 14                      Page 1
  4040. XChange Details                    Thu Jan     7 14:32:07 1993
  4041. X
  4042. XNAME
  4043. X    Project "aegis.1.3", Delta 16, Change 14.
  4044. X
  4045. XSUMMARY
  4046. X    cope with /tmp_mnt/... in the current directory
  4047. X
  4048. XDESCRIPTION
  4049. X    There are many facets to coping with the auto-mounter.    The
  4050. X    current directory may actually be an auto-mounter directory,
  4051. X    and the auto-mounter part needs to be ignored.
  4052. X
  4053. X    This change is exempt from testing.  This change is exempt from
  4054. X    testing against the baseline.
  4055. X
  4056. XCAUSE
  4057. X    This change was caused by internal_enhancement.
  4058. X
  4059. XFILES
  4060. X    Type    Action    Edit    File Name
  4061. X    ------- ------- ------- -----------
  4062. X    source    modify    6    aegis/os.c
  4063. X
  4064. XHISTORY
  4065. X    What        When        Who    Comment
  4066. X    ------        ------        -----    ---------
  4067. X    new_change    Wed Nov     4    pmiller
  4068. X            22:02:56 1992
  4069. X    develop_begin    Wed Nov     4    pmiller Elapsed time: 0.124
  4070. X            22:03:12 1992        days.
  4071. X    develop_end    Wed Nov     4    pmiller
  4072. X            22:58:48 1992
  4073. X    review_pass    Wed Nov     4    pmiller
  4074. X            22:58:58 1992
  4075. X    integrate_begin Wed Nov     4    pmiller Elapsed time: 0.025
  4076. X            22:59:41 1992        days.
  4077. X    integrate_pass    Wed Nov     4    pmiller
  4078. X            23:10:46 1992
  4079. X
  4080. X
  4081. X
  4082. XProject "aegis.1.3", Change 15                      Page 1
  4083. XChange Details                    Thu Jan     7 14:32:08 1993
  4084. X
  4085. XNAME
  4086. X    Project "aegis.1.3", Delta 17, Change 15.
  4087. X
  4088. XSUMMARY
  4089. X    fix bug in -new_project
  4090. X
  4091. XDESCRIPTION
  4092. X    When creating a new project, and -DIRectory not specified, the
  4093. X    code in user.c to determine the default place dod not correctly
  4094. X    set the euid.
  4095. X
  4096. X    This change is exempt from testing.  This change is exempt from
  4097. X    testing against the baseline.
  4098. X
  4099. XCAUSE
  4100. X    This change was caused by internal_bug.
  4101. X
  4102. XFILES
  4103. X    Type    Action    Edit    File Name
  4104. X    ------- ------- ------- -----------
  4105. X    source    modify    6    aegis/change.c
  4106. X    source    modify    4    aegis/change.h
  4107. X    source    modify    4    aegis/gonzo.c
  4108. X    source    modify    3    aegis/gonzo.h
  4109. X    source    modify    4    aegis/lock.c
  4110. X    source    modify    4    aegis/new_proj.c
  4111. X    source    modify    7    aegis/os.c
  4112. X    source    modify    5    aegis/project.c
  4113. X    source    modify    3    aegis/project.h
  4114. X    source    modify    3    aegis/user.c
  4115. X    source    modify    3    aegis/user.h
  4116. X
  4117. XHISTORY
  4118. X    What        When        Who    Comment
  4119. X    ------        ------        -----    ---------
  4120. X    new_change    Mon Nov 16    pmiller
  4121. X            09:36:11 1992
  4122. X    develop_begin    Mon Nov 16    pmiller Elapsed time: 1.759
  4123. X            09:36:23 1992        days.
  4124. X    develop_end    Tue Nov 17    pmiller
  4125. X            15:18:03 1992
  4126. X    review_pass    Tue Nov 17    pmiller
  4127. X            15:26:25 1992
  4128. X    integrate_begin Tue Nov 17    pmiller Elapsed time: 0.042
  4129. X            15:27:10 1992        days.
  4130. X    integrate_pass    Tue Nov 17    pmiller
  4131. X            15:46:04 1992
  4132. X
  4133. X
  4134. X
  4135. XProject "aegis.1.3", Change 16                      Page 1
  4136. XChange Details                    Thu Jan     7 14:32:09 1993
  4137. X
  4138. XNAME
  4139. X    Project "aegis.1.3", Delta 18, Change 16.
  4140. X
  4141. XSUMMARY
  4142. X    log_open needs to know which user
  4143. X
  4144. XDESCRIPTION
  4145. X    log_open needs to know which user
  4146. X
  4147. X    This change is exempt from testing.  This change is exempt from
  4148. X    testing against the baseline.
  4149. X
  4150. XCAUSE
  4151. X    This change was caused by internal_bug.
  4152. X
  4153. XFILES
  4154. X    Type    Action    Edit    File Name
  4155. X    ------- ------- ------- -----------
  4156. X    source    modify    5    aegis/build.c
  4157. X    source    modify    5    aegis/copyfile.c
  4158. X    source    modify    4    aegis/diff.c
  4159. X    source    modify    6    aegis/integra2.c
  4160. X    source    modify    4    aegis/log.c
  4161. X    source    modify    3    aegis/log.h
  4162. X    source    modify    5    aegis/new_file.c
  4163. X    source    modify    5    aegis/new_rele.c
  4164. X    source    modify    6    aegis/project.c
  4165. X    source    modify    4    aegis/project.h
  4166. X    source    modify    4    aegis/rem_file.c
  4167. X    source    modify    3    aegis/test.c
  4168. X    source    modify    4    aegis/user.c
  4169. X    source    modify    4    aegis/user.h
  4170. X
  4171. XHISTORY
  4172. X    What        When        Who    Comment
  4173. X    ------        ------        -----    ---------
  4174. X    new_change    Tue Nov 17    pmiller
  4175. X            15:49:04 1992
  4176. X    develop_begin    Tue Nov 17    pmiller Elapsed time: 0.959
  4177. X            15:49:17 1992        days.
  4178. X    develop_end    Tue Nov 17    pmiller
  4179. X            23:00:58 1992
  4180. X    review_pass    Tue Nov 17    pmiller
  4181. X            23:01:09 1992
  4182. X    integrate_begin Tue Nov 17    pmiller Elapsed time: 0.000
  4183. X            23:01:52 1992        days.
  4184. X    integrate_pass    Wed Nov 18    pmiller
  4185. X            10:08:00 1992
  4186. X
  4187. X
  4188. X
  4189. XProject "aegis.1.3", Change 17                      Page 1
  4190. XChange Details                    Thu Jan     7 14:32:10 1993
  4191. X
  4192. XNAME
  4193. X    Project "aegis.1.3", Delta 19, Change 17.
  4194. X
  4195. XSUMMARY
  4196. X    Add the -Delta and -Output options to the -CoPy_file
  4197. X
  4198. XDESCRIPTION
  4199. X    1. Add the -Delta and -Output options to the -CoPy_file, so can
  4200. X    start generating patch files.
  4201. X    2. Start using the strict prototype warnings of gcc, and
  4202. X    correct the errors so revealed.     (yaccpar sux)
  4203. X    3. Add a shell script to generate a patchfile in the
  4204. X    integration build.
  4205. X    4. move auxilliary files used by integration build out of the
  4206. X    main directory and into the 'aux' subdirectory.
  4207. X
  4208. X    This change is exempt from testing.  This change is exempt from
  4209. X    testing against the baseline.
  4210. X
  4211. XCAUSE
  4212. X    This change was caused by internal_enhancement.
  4213. X
  4214. XFILES
  4215. X    Type    Action    Edit    File Name
  4216. X    ------- ------- ------- -----------
  4217. X    source    remove    3    CHANGES.sh
  4218. X    source    remove    6    Howto.cook
  4219. X    source    remove    1    Makefile.awk
  4220. X    source    remove    5    Makefile.sh
  4221. X    source    remove    1    aegis/archaeol.c
  4222. X    source    remove    2    aegis/archaeol.h
  4223. X    source    modify    3    aegis/arglex2.h
  4224. X    source    modify    7    aegis/change.c
  4225. X    source    modify    5    aegis/change.h
  4226. X    source    modify    6    aegis/copyfile.c
  4227. X    source    modify    5    aegis/diff.c
  4228. X    source    modify    3    aegis/file.c
  4229. X    source    modify    5    aegis/gonzo.c
  4230. X    source    modify    6    aegis/list.c
  4231. X    source    modify    5    aegis/main.c
  4232. X    source    modify    8    aegis/os.c
  4233. X    source    modify    7    aegis/project.c
  4234. X    source    modify    5    aegis/project.h
  4235. X    source    modify    4    aegis/review.c
  4236. X    source    modify    3    aegis/sub.h
  4237. X    source    modify    2    aegis/version.c
  4238. X    source    create    1    aux/CHANGES.sh
  4239. X    source    create    1    aux/Howto.cook
  4240. X    source    create    1    aux/MANIFEST.awk
  4241. X    source    create    1    aux/MANIFEST.sh
  4242. X    source    create    1    aux/Makefile.awk
  4243. X    source    create    1    aux/Makefile.sh
  4244. X    source    create    1    aux/patches.sh
  4245. X    source    modify    2    common/arglex.c
  4246. X    source    modify    3    common/error.h
  4247. X    source    modify    3    common/str.c
  4248. X    source    modify    3    common/trace.c
  4249. X
  4250. X
  4251. X
  4252. XProject "aegis.1.3", Change 17                      Page 2
  4253. XChange Details                    Thu Jan     7 14:32:10 1993
  4254. X
  4255. X    Type    Action    Edit    File Name
  4256. X    ------- ------- ------- -----------
  4257. X    source    modify    3    common/trace.h
  4258. X    source    modify    3    config
  4259. X    source    modify    3    doc/README.man
  4260. X    source    modify    2    fmtgen/id.c
  4261. X    source    modify    4    fmtgen/lex.c
  4262. X    source    modify    3    fmtgen/main.c
  4263. X    source    modify    2    fmtgen/type_enum.c
  4264. X    source    modify    2    fmtgen/type_list.c
  4265. X    source    modify    4    fmtgen/type_struc.c
  4266. X    source    remove    1    man1/aea.1
  4267. X    source    modify    2    man1/aecp.1
  4268. X    source    modify    3    man1/aegis.1
  4269. X
  4270. XHISTORY
  4271. X    What        When        Who    Comment
  4272. X    ------        ------        -----    ---------
  4273. X    new_change    Fri Nov 27    pmiller
  4274. X            21:38:43 1992
  4275. X    develop_begin    Fri Nov 27    pmiller Elapsed time: 6.093
  4276. X            21:38:54 1992        days.
  4277. X    develop_end    Mon Dec     7    pmiller
  4278. X            22:20:56 1992
  4279. X    review_pass    Mon Dec     7    pmiller
  4280. X            22:24:07 1992
  4281. X    integrate_begin Mon Dec     7    pmiller Elapsed time: 0.080
  4282. X            22:25:37 1992        days.
  4283. X    integrate_pass    Mon Dec     7    pmiller
  4284. X            23:01:27 1992
  4285. X
  4286. X
  4287. X
  4288. XProject "aegis.1.3", Change 18                      Page 1
  4289. XChange Details                    Thu Jan     7 14:32:12 1993
  4290. X
  4291. XNAME
  4292. X    Project "aegis.1.3", Delta 21, Change 18.
  4293. X
  4294. XSUMMARY
  4295. X    add more to the documentation
  4296. X
  4297. XDESCRIPTION
  4298. X    1. add more to the documentation
  4299. X    2. fix a bug with the test log file not bewing opened as the
  4300. X    correct user.
  4301. X    3. fix an infinite loop bug in gonzo.
  4302. X    4. move the top-level info files soauces to aux.
  4303. X    5. fixed test 2, faster processors trip on the build time.
  4304. X    6. externded test 11 to include addinitional documentation.
  4305. X    7. fixed a few typos in the notify scripts
  4306. X    8. created next rev conf file
  4307. X
  4308. X    This change is exempt from testing against the baseline.
  4309. X
  4310. XCAUSE
  4311. X    This change was caused by internal_enhancement.
  4312. X
  4313. XFILES
  4314. X    Type    Action    Edit    File Name
  4315. X    ------- ------- ------- -----------
  4316. X    source    modify    6    aegis/gonzo.c
  4317. X    source    modify    9    aegis/os.c
  4318. X    source    modify    4    aegis/test.c
  4319. X    source    create    1    aux/ALPHA.man
  4320. X    source    create    1    aux/BUILDING.man
  4321. X    source    modify    2    aux/Howto.cook
  4322. X    source    create    1    aux/README.man
  4323. X    source    modify    2    aux/patches.sh
  4324. X    source    create    1    conf/SunOS-4.1.3
  4325. X    source    remove    2    doc/ALPHA.man
  4326. X    source    remove    4    doc/BUILDING.man
  4327. X    source    remove    3    doc/README.man
  4328. X    source    modify    2    doc/aegis.ms
  4329. X    source    modify    2    doc/c1.0.so
  4330. X    source    modify    2    doc/c1.1.so
  4331. X    source    modify    2    doc/c1.2.so
  4332. X    source    modify    2    doc/c1.3.so
  4333. X    source    modify    2    doc/c1.4.so
  4334. X    source    modify    2    doc/c2.0.so
  4335. X    source    modify    2    doc/c2.1.so
  4336. X    source    modify    2    doc/c2.2.so
  4337. X    source    modify    2    doc/c2.3.so
  4338. X    source    modify    2    doc/c2.4.so
  4339. X    source    modify    2    doc/c3.0.so
  4340. X    source    modify    2    doc/c3.1.so
  4341. X    source    modify    2    doc/c3.2.so
  4342. X    source    modify    2    doc/c3.3.so
  4343. X    source    modify    2    doc/c4.0.so
  4344. X    source    modify    2    doc/c5.0.so
  4345. X    source    modify    2    doc/c6.0.so
  4346. X    source    modify    2    doc/c7.0.so
  4347. X    source    modify    2    doc/c7.1.so
  4348. X
  4349. X
  4350. X
  4351. XProject "aegis.1.3", Change 18                      Page 2
  4352. XChange Details                    Thu Jan     7 14:32:12 1993
  4353. X
  4354. X    Type    Action    Edit    File Name
  4355. X    ------- ------- ------- -----------
  4356. X    source    modify    2    doc/c7.2.so
  4357. X    source    create    1    doc/c7.4.so
  4358. X    source    modify    2    doc/cA.0.so
  4359. X    source    create    1    doc/cB.0.so
  4360. X    source    modify    2    notify/de.sh
  4361. X    source    modify    2    notify/deu.sh
  4362. X    source    modify    2    notify/if.sh
  4363. X    source    modify    2    notify/ip.sh
  4364. X    source    modify    2    notify/rf.sh
  4365. X    source    modify    2    notify/rp.sh
  4366. X    source    modify    2    notify/rpu.sh
  4367. X    test    modify    6    test/00/t0002a.sh
  4368. X    test    modify    4    test/00/t0011a.sh
  4369. X
  4370. XHISTORY
  4371. X    What        When        Who    Comment
  4372. X    ------        ------        -----    ---------
  4373. X    new_change    Mon Dec     7    pmiller Elapsed time: 0.030
  4374. X            22:51:18 1992        days.
  4375. X    develop_begin    Mon Dec     7    pmiller Elapsed time: 4.907
  4376. X            23:04:59 1992        days.
  4377. X    develop_end    Mon Dec 14    pmiller Elapsed time: 0.036
  4378. X            22:23:09 1992        days.
  4379. X    review_pass    Mon Dec 14    pmiller
  4380. X            22:39:22 1992
  4381. X    integrate_begin Mon Dec 14    pmiller
  4382. X            22:41:04 1992
  4383. X    integrate_fail    Mon Dec 14    pmiller need conf/SunOS-4.1.3
  4384. X            22:45:19 1992
  4385. X    develop_end    Mon Dec 14    pmiller
  4386. X            22:53:46 1992
  4387. X    review_pass    Mon Dec 14    pmiller
  4388. X            22:53:57 1992
  4389. X    integrate_begin Mon Dec 14    pmiller Elapsed time: 0.000
  4390. X            22:54:56 1992        days.
  4391. X    integrate_pass    Tue Dec 15    pmiller
  4392. X            09:45:35 1992
  4393. X
  4394. X
  4395. X
  4396. XProject "aegis.1.3", Change 19                      Page 1
  4397. XChange Details                    Thu Jan     7 14:32:13 1993
  4398. X
  4399. XNAME
  4400. X    Project "aegis.1.3", Delta 22, Change 19.
  4401. X
  4402. XSUMMARY
  4403. X    more documentation
  4404. X
  4405. XDESCRIPTION
  4406. X    1. more documentation
  4407. X    2. fix aux/patches.sh to not bomb after the first file, and to
  4408. X    emit a Prereq line.
  4409. X    3. change interagte pass to use the correct user for log file,
  4410. X    and change integrate_begin to leave non-source files writable
  4411. X    by project owner.
  4412. X
  4413. X    This change is exempt from testing against the baseline.
  4414. X
  4415. XCAUSE
  4416. X    This change was caused by internal_enhancement.
  4417. X
  4418. XFILES
  4419. X    Type    Action    Edit    File Name
  4420. X    ------- ------- ------- -----------
  4421. X    source    modify    7    aegis/integra2.c
  4422. X    source    modify    3    aux/patches.sh
  4423. X    source    modify    3    doc/aegis.ms
  4424. X    source    modify    3    doc/c1.0.so
  4425. X    source    modify    3    doc/c1.3.so
  4426. X    source    modify    3    doc/c2.1.so
  4427. X    source    modify    3    doc/c2.2.so
  4428. X    source    modify    3    doc/c2.3.so
  4429. X    source    modify    3    doc/c2.4.so
  4430. X    source    modify    3    doc/c3.0.so
  4431. X    source    modify    3    doc/c3.1.so
  4432. X    source    modify    3    doc/c3.2.so
  4433. X    source    modify    3    doc/c3.3.so
  4434. X    source    modify    3    doc/c4.0.so
  4435. X    source    modify    3    doc/c5.0.so
  4436. X    source    modify    3    doc/c6.0.so
  4437. X    source    modify    3    doc/c7.1.so
  4438. X    source    modify    3    doc/c7.2.so
  4439. X    source    modify    3    doc/cA.0.so
  4440. X    source    modify    2    doc/cB.0.so
  4441. X    test    modify    5    test/00/t0011a.sh
  4442. X
  4443. XHISTORY
  4444. X    What        When        Who    Comment
  4445. X    ------        ------        -----    ---------
  4446. X    new_change    Tue Dec 15    pmiller
  4447. X            09:49:17 1992
  4448. X    develop_begin    Tue Dec 15    pmiller Elapsed time: 2.177
  4449. X            09:49:29 1992        days.
  4450. X    develop_end    Thu Dec 17    pmiller
  4451. X            11:09:02 1992
  4452. X    review_pass    Thu Dec 17    pmiller
  4453. X            11:09:30 1992
  4454. X    integrate_begin Thu Dec 17    pmiller Elapsed time: 0.136
  4455. X            11:10:34 1992        days.
  4456. X
  4457. X
  4458. X
  4459. XProject "aegis.1.3", Change 19                      Page 2
  4460. XChange Details                    Thu Jan     7 14:32:13 1993
  4461. X
  4462. X    What        When        Who    Comment
  4463. X    ------        ------        -----    ---------
  4464. X    integrate_pass    Thu Dec 17    pmiller
  4465. X            12:11:45 1992
  4466. X
  4467. X
  4468. X
  4469. XProject "aegis.1.3", Change 20                      Page 1
  4470. XChange Details                    Thu Jan     7 14:32:14 1993
  4471. X
  4472. XNAME
  4473. X    Project "aegis.1.3", Delta 23, Change 20.
  4474. X
  4475. XSUMMARY
  4476. X    fix problems with distribution
  4477. X
  4478. XDESCRIPTION
  4479. X    1. change aux/Howto.cook to remove doc/aegis.txt target before
  4480. X    producing it.
  4481. X    2. aecp should allow -o to be used in any state, not just being_
  4482. X    developed state.
  4483. X    3. Set the Makefile to use H=nothing as the default.
  4484. X    4. fmtgen emitting prototypes without the _ macro.
  4485. X
  4486. X    This change is exempt from testing.  This change is exempt from
  4487. X    testing against the baseline.
  4488. X
  4489. XCAUSE
  4490. X    This change was caused by internal_bug.
  4491. X
  4492. XFILES
  4493. X    Type    Action    Edit    File Name
  4494. X    ------- ------- ------- -----------
  4495. X    source    modify    7    aegis/copyfile.c
  4496. X    source    modify    3    aux/Howto.cook
  4497. X    source    modify    2    aux/Makefile.sh
  4498. X    source    modify    3    fmtgen/type_list.c
  4499. X    source    modify    5    fmtgen/type_struc.c
  4500. X
  4501. XHISTORY
  4502. X    What        When        Who    Comment
  4503. X    ------        ------        -----    ---------
  4504. X    new_change    Thu Dec 17    pmiller
  4505. X            12:30:04 1992
  4506. X    develop_begin    Thu Dec 17    pmiller Elapsed time: 0.081
  4507. X            12:30:12 1992        days.
  4508. X    develop_end    Thu Dec 17    pmiller
  4509. X            13:06:33 1992
  4510. X    review_pass    Thu Dec 17    pmiller
  4511. X            13:06:47 1992
  4512. X    integrate_begin Thu Dec 17    pmiller Elapsed time: 0.478
  4513. X            13:08:03 1992        days.
  4514. X    integrate_pass    Thu Dec 17    pmiller
  4515. X            16:43:03 1992
  4516. X
  4517. X
  4518. X
  4519. XProject "aegis.1.3", Change 21                      Page 1
  4520. XChange Details                    Thu Jan     7 14:32:15 1993
  4521. X
  4522. XNAME
  4523. X    Project "aegis.1.3", Delta 25, Change 21.
  4524. X
  4525. XSUMMARY
  4526. X    more documentation
  4527. X
  4528. XDESCRIPTION
  4529. X    1. add a little more documentation, and fix a number of typos.
  4530. X    2. allow aecp -o to work in the being_inrtegrated state, for
  4531. X    patch file generation.
  4532. X    3. fix fmtgen for enumerated types
  4533. X
  4534. X    This change is exempt from testing.  This change is exempt from
  4535. X    testing against the baseline.
  4536. X
  4537. XCAUSE
  4538. X    This change was caused by internal_enhancement.
  4539. X
  4540. XFILES
  4541. X    Type    Action    Edit    File Name
  4542. X    ------- ------- ------- -----------
  4543. X    source    modify    8    aegis/copyfile.c
  4544. X    source    modify    4    doc/c1.3.so
  4545. X    source    modify    3    doc/c2.0.so
  4546. X    source    modify    4    doc/c2.1.so
  4547. X    source    modify    4    doc/c2.2.so
  4548. X    source    modify    4    doc/c2.3.so
  4549. X    source    modify    4    doc/c2.4.so
  4550. X    source    modify    4    doc/c3.0.so
  4551. X    source    modify    4    doc/c3.1.so
  4552. X    source    modify    4    doc/c4.0.so
  4553. X    source    modify    4    doc/c5.0.so
  4554. X    source    modify    4    doc/c6.0.so
  4555. X    source    modify    3    doc/c7.0.so
  4556. X    source    modify    4    doc/c7.1.so
  4557. X    source    modify    4    doc/c7.2.so
  4558. X    source    modify    2    doc/c7.4.so
  4559. X    source    create    1    doc/c7.5.so
  4560. X    source    modify    4    doc/cA.0.so
  4561. X    source    modify    3    doc/cB.0.so
  4562. X    source    modify    3    fmtgen/type_enum.c
  4563. X
  4564. XHISTORY
  4565. X    What        When        Who    Comment
  4566. X    ------        ------        -----    ---------
  4567. X    new_change    Thu Dec 17    pmiller
  4568. X            16:47:28 1992
  4569. X    develop_begin    Thu Dec 17    pmiller Elapsed time: 0.990
  4570. X            16:47:53 1992        days.
  4571. X    develop_end    Fri Dec 18    pmiller
  4572. X            00:13:34 1992
  4573. X    review_pass    Fri Dec 18    pmiller
  4574. X            00:14:09 1992
  4575. X    integrate_begin Fri Dec 18    pmiller Elapsed time: 0.000
  4576. X            00:15:34 1992        days.
  4577. X    integrate_fail    Fri Dec 18    pmiller the copyfile changes
  4578. X            08:47:57 1992        can't cope with the
  4579. X
  4580. X
  4581. X
  4582. XProject "aegis.1.3", Change 21                      Page 2
  4583. XChange Details                    Thu Jan     7 14:32:15 1993
  4584. X
  4585. X    What        When        Who    Comment
  4586. X    ------        ------        -----    ---------
  4587. X                        int.dir
  4588. X                        Elapsed time: 0.000
  4589. X                        days.
  4590. X    develop_end    Fri Dec 18    pmiller
  4591. X            16:56:27 1992
  4592. X    review_pass    Fri Dec 18    pmiller
  4593. X            16:56:57 1992
  4594. X    integrate_begin Fri Dec 18    pmiller Elapsed time: 0.793
  4595. X            16:57:55 1992        days.
  4596. X    integrate_pass    Fri Dec 18    pmiller
  4597. X            22:54:36 1992
  4598. X
  4599. X
  4600. X
  4601. XProject "aegis.1.3", Change 22                      Page 1
  4602. XChange Details                    Thu Jan     7 14:32:16 1993
  4603. X
  4604. XNAME
  4605. X    Project "aegis.1.3", Delta 26, Change 22.
  4606. X
  4607. XSUMMARY
  4608. X    make sure each file as a MANIFEST line
  4609. X
  4610. XDESCRIPTION
  4611. X    sundry cosmetic things
  4612. X    1. make sure each file has a MANIFEST line.
  4613. X    2. make sure the copyright dates are correct in each file.
  4614. X    3. correct typos in document and manual pages, correct3ed
  4615. X    mirrors of man pages in code.
  4616. X
  4617. X    This change is exempt from testing against the baseline.
  4618. X
  4619. XCAUSE
  4620. X    This change was caused by internal_enhancement.
  4621. X
  4622. XFILES
  4623. X    Type    Action    Edit    File Name
  4624. X    ------- ------- ------- -----------
  4625. X    source    modify    2    aegis/administ.c
  4626. X    source    modify    3    aegis/administ.h
  4627. X    source    modify    6    aegis/build.c
  4628. X    source    modify    3    aegis/build.h
  4629. X    source    modify    2    aegis/cattr.def
  4630. X    source    modify    5    aegis/cattr_ed.c
  4631. X    source    modify    3    aegis/cattr_ed.h
  4632. X    source    modify    3    aegis/chdir.c
  4633. X    source    modify    3    aegis/chdir.h
  4634. X    source    modify    7    aegis/col.c
  4635. X    source    modify    5    aegis/col.h
  4636. X    source    modify    3    aegis/commit.c
  4637. X    source    modify    3    aegis/commit.h
  4638. X    source    modify    3    aegis/common.def
  4639. X    source    modify    3    aegis/copyfile.h
  4640. X    source    modify    4    aegis/cstate.def
  4641. X    source    modify    2    aegis/develop1.c
  4642. X    source    modify    3    aegis/develop1.h
  4643. X    source    modify    5    aegis/develop2.c
  4644. X    source    modify    3    aegis/develop2.h
  4645. X    source    modify    3    aegis/diff.h
  4646. X    source    modify    3    aegis/dir.c
  4647. X    source    modify    3    aegis/dir.h
  4648. X    source    modify    3    aegis/file.h
  4649. X    source    modify    4    aegis/gonzo.h
  4650. X    source    modify    2    aegis/gram.h
  4651. X    source    modify    4    aegis/gram.y
  4652. X    source    modify    2    aegis/gstate.def
  4653. X    source    modify    4    aegis/help.c
  4654. X    source    modify    3    aegis/help.h
  4655. X    source    modify    2    aegis/integra1.c
  4656. X    source    modify    3    aegis/integra1.h
  4657. X    source    modify    8    aegis/integra2.c
  4658. X    source    modify    3    aegis/integra2.h
  4659. X    source    modify    4    aegis/io.c
  4660. X    source    modify    3    aegis/io.h
  4661. X
  4662. X
  4663. X
  4664. XProject "aegis.1.3", Change 22                      Page 2
  4665. XChange Details                    Thu Jan     7 14:32:16 1993
  4666. X
  4667. X    Type    Action    Edit    File Name
  4668. X    ------- ------- ------- -----------
  4669. X    source    modify    5    aegis/lex.c
  4670. X    source    modify    4    aegis/lex.h
  4671. X    source    modify    3    aegis/list.h
  4672. X    source    modify    5    aegis/lock.c
  4673. X    source    modify    3    aegis/lock.h
  4674. X    source    modify    5    aegis/log.c
  4675. X    source    modify    4    aegis/log.h
  4676. X    source    modify    4    aegis/new_chan.c
  4677. X    source    modify    3    aegis/new_chan.h
  4678. X    source    modify    6    aegis/new_file.c
  4679. X    source    modify    3    aegis/new_file.h
  4680. X    source    modify    5    aegis/new_proj.c
  4681. X    source    modify    3    aegis/new_proj.h
  4682. X    source    modify    6    aegis/new_rele.c
  4683. X    source    modify    3    aegis/new_rele.h
  4684. X    source    modify    6    aegis/new_test.c
  4685. X    source    modify    3    aegis/new_test.h
  4686. X    source    modify    4    aegis/os.h
  4687. X    source    modify    3    aegis/pager.c
  4688. X    source    modify    2    aegis/pager.h
  4689. X    source    modify    5    aegis/parse.c
  4690. X    source    modify    3    aegis/parse.h
  4691. X    source    modify    4    aegis/pattr.def
  4692. X    source    modify    4    aegis/pattr_ed.c
  4693. X    source    modify    3    aegis/pattr_ed.h
  4694. X    source    modify    2    aegis/pconf.def
  4695. X    source    modify    3    aegis/pstate.def
  4696. X    source    modify    5    aegis/rem_file.c
  4697. X    source    modify    3    aegis/rem_file.h
  4698. X    source    modify    5    aegis/review.c
  4699. X    source    modify    3    aegis/review.h
  4700. X    source    modify    2    aegis/reviewer.c
  4701. X    source    modify    3    aegis/reviewer.h
  4702. X    source    modify    4    aegis/sub.c
  4703. X    source    modify    3    aegis/test.h
  4704. X    source    modify    3    aegis/type.c
  4705. X    source    modify    4    aegis/type.h
  4706. X    source    modify    2    aegis/uconf.def
  4707. X    source    modify    3    aegis/undo.c
  4708. X    source    modify    3    aegis/undo.h
  4709. X    source    modify    5    aegis/user.c
  4710. X    source    modify    5    aegis/user.h
  4711. X    source    modify    2    aegis/ustate.def
  4712. X    source    modify    3    aegis/version.h
  4713. X    source    modify    4    aux/Howto.cook
  4714. X    source    remove    1    aux/MANIFEST.awk
  4715. X    source    modify    2    aux/MANIFEST.sh
  4716. X    source    modify    2    common/ansi.c
  4717. X    source    modify    3    common/arglex.h
  4718. X    source    modify    4    common/error.c
  4719. X    source    modify    3    common/indent.c
  4720. X    source    modify    3    common/indent.h
  4721. X    source    modify    6    common/main.h
  4722. X    source    modify    2    common/mem.c
  4723. X    source    modify    3    common/mem.h
  4724. X
  4725. X
  4726. X
  4727. XProject "aegis.1.3", Change 22                      Page 3
  4728. XChange Details                    Thu Jan     7 14:32:16 1993
  4729. X
  4730. X    Type    Action    Edit    File Name
  4731. X    ------- ------- ------- -----------
  4732. X    source    modify    4    common/option.c
  4733. X    source    modify    4    common/option.h
  4734. X    source    modify    3    common/s-v-arg.h
  4735. X    source    modify    3    common/str.h
  4736. X    source    modify    2    common/word.c
  4737. X    source    modify    3    common/word.h
  4738. X    source    modify    3    conf/ConvexOS-10
  4739. X    source    modify    2    conf/SunOS-4.1.1
  4740. X    source    modify    3    conf/SunOS-4.1.2
  4741. X    source    modify    2    conf/SunOS-4.1.3
  4742. X    source    modify    3    conf/SysV-4.0
  4743. X    source    modify    2    conf/dgux-5.4.1
  4744. X    source    modify    4    config
  4745. X    source    modify    4    doc/aegis.ms
  4746. X    source    modify    4    doc/c1.0.so
  4747. X    source    modify    3    doc/c1.4.so
  4748. X    source    modify    4    doc/c7.0.so
  4749. X    source    modify    5    doc/c7.1.so
  4750. X    source    modify    2    dot.cshrc
  4751. X    source    modify    2    dot.profile
  4752. X    source    modify    3    fmtgen/id.h
  4753. X    source    modify    4    fmtgen/lex.h
  4754. X    source    modify    2    fmtgen/parse.h
  4755. X    source    modify    4    fmtgen/parse.y
  4756. X    source    modify    2    fmtgen/type.c
  4757. X    source    modify    3    fmtgen/type.h
  4758. X    source    modify    2    fmtgen/type_integ.c
  4759. X    source    modify    2    fmtgen/type_ref.c
  4760. X    source    modify    2    fmtgen/type_strin.c
  4761. X    source    modify    2    h/stdarg.h-min
  4762. X    source    modify    2    h/stddef.h
  4763. X    source    modify    2    h/stdlib.h
  4764. X    source    modify    2    man1/aeb.1
  4765. X    source    modify    2    man1/aeca.1
  4766. X    source    modify    2    man1/aecd.1
  4767. X    source    modify    2    man1/aecpu.1
  4768. X    source    modify    2    man1/aed.1
  4769. X    source    modify    2    man1/aedb.1
  4770. X    source    modify    2    man1/aedbu.1
  4771. X    source    modify    2    man1/aede.1
  4772. X    source    modify    2    man1/aedeu.1
  4773. X    source    modify    3    man1/aeib.1
  4774. X    source    modify    2    man1/aeibu.1
  4775. X    source    modify    2    man1/aeif.1
  4776. X    source    modify    2    man1/aeip.1
  4777. X    source    modify    2    man1/ael.1
  4778. X    source    modify    2    man1/aena.1
  4779. X    source    modify    2    man1/aenc.1
  4780. X    source    modify    2    man1/aencu.1
  4781. X    source    modify    2    man1/aend.1
  4782. X    source    modify    2    man1/aenf.1
  4783. X    source    modify    2    man1/aenfu.1
  4784. X    source    modify    2    man1/aeni.1
  4785. X    source    modify    2    man1/aenpr.1
  4786. X    source    modify    2    man1/aenrls.1
  4787. X
  4788. X
  4789. X
  4790. XProject "aegis.1.3", Change 22                      Page 4
  4791. XChange Details                    Thu Jan     7 14:32:16 1993
  4792. X
  4793. X    Type    Action    Edit    File Name
  4794. X    ------- ------- ------- -----------
  4795. X    source    modify    2    man1/aenrv.1
  4796. X    source    modify    2    man1/aent.1
  4797. X    source    modify    2    man1/aentu.1
  4798. X    source    modify    2    man1/aepa.1
  4799. X    source    modify    2    man1/aera.1
  4800. X    source    modify    2    man1/aerd.1
  4801. X    source    modify    2    man1/aerf.1
  4802. X    source    modify    2    man1/aeri.1
  4803. X    source    modify    2    man1/aerm.1
  4804. X    source    modify    2    man1/aermu.1
  4805. X    source    modify    2    man1/aerp.1
  4806. X    source    modify    2    man1/aerpr.1
  4807. X    source    modify    2    man1/aerpu.1
  4808. X    source    modify    2    man1/aerrv.1
  4809. X    source    modify    2    man1/aet.1
  4810. X    source    modify    2    man1/aev.1
  4811. X    source    modify    2    man1/install.sh
  4812. X    source    modify    2    man1/o__rules.so
  4813. X    source    modify    2    man1/o_anticip.so
  4814. X    source    modify    2    man1/o_auto.so
  4815. X    source    modify    2    man1/o_baselin.so
  4816. X    source    modify    2    man1/o_change.so
  4817. X    source    modify    2    man1/o_devdir.so
  4818. X    source    modify    2    man1/o_dir.so
  4819. X    source    modify    2    man1/o_help.so
  4820. X    source    modify    2    man1/o_indep.so
  4821. X    source    modify    2    man1/o_keep.so
  4822. X    source    modify    2    man1/o_lib.so
  4823. X    source    modify    2    man1/o_list.so
  4824. X    source    modify    2    man1/o_major.so
  4825. X    source    modify    2    man1/o_manual.so
  4826. X    source    modify    2    man1/o_min.so
  4827. X    source    modify    2    man1/o_minor.so
  4828. X    source    modify    2    man1/o_nolog.so
  4829. X    source    modify    2    man1/o_overw.so
  4830. X    source    modify    3    man1/o_page.so
  4831. X    source    modify    2    man1/o_project.so
  4832. X    source    modify    2    man1/o_terse.so
  4833. X    source    modify    2    man1/o_verbose.so
  4834. X    source    modify    2    man1/z_cr.so
  4835. X    source    modify    2    man1/z_exit.so
  4836. X    source    modify    2    man1/z_intuit.so
  4837. X    source    modify    2    man1/z_name.so
  4838. X    source    modify    2    man5/aecattr.5
  4839. X    source    modify    4    man5/aecstate.5
  4840. X    source    modify    2    man5/aedir.5
  4841. X    source    modify    2    man5/aegis.5
  4842. X    source    modify    2    man5/aegstate.5
  4843. X    source    modify    3    man5/aepattr.5
  4844. X    source    modify    2    man5/aepconf.5
  4845. X    source    modify    4    man5/aepstate.5
  4846. X    source    modify    2    man5/aeuconf.5
  4847. X    source    modify    2    man5/aeustate.5
  4848. X    source    modify    2    man5/install.sh
  4849. X    source    modify    2    man5/z_cr.so
  4850. X
  4851. X
  4852. X
  4853. XProject "aegis.1.3", Change 22                      Page 5
  4854. XChange Details                    Thu Jan     7 14:32:16 1993
  4855. X
  4856. X    Type    Action    Edit    File Name
  4857. X    ------- ------- ------- -----------
  4858. X    source    modify    2    man5/z_name.so
  4859. X    test    modify    2    test/00/t0001a.sh
  4860. X    test    modify    7    test/00/t0002a.sh
  4861. X    test    modify    2    test/00/t0003a.sh
  4862. X    test    modify    5    test/00/t0004a.sh
  4863. X    test    modify    5    test/00/t0005a.sh
  4864. X    test    modify    5    test/00/t0006a.sh
  4865. X    test    modify    5    test/00/t0007a.sh
  4866. X    test    modify    5    test/00/t0008a.sh
  4867. X    test    modify    5    test/00/t0009a.sh
  4868. X    test    modify    5    test/00/t0010a.sh
  4869. X
  4870. XHISTORY
  4871. X    What        When        Who    Comment
  4872. X    ------        ------        -----    ---------
  4873. X    new_change    Tue Dec 29    pmiller
  4874. X            21:37:15 1992
  4875. X    develop_begin    Tue Dec 29    pmiller Elapsed time: 2.145
  4876. X            21:38:12 1992        days.
  4877. X    develop_end    Thu Dec 31    pmiller
  4878. X            22:43:23 1992
  4879. X    review_pass    Thu Dec 31    pmiller
  4880. X            22:43:41 1992
  4881. X    integrate_begin Thu Dec 31    pmiller Elapsed time: 0.073
  4882. X            22:44:40 1992        days.
  4883. X    integrate_pass    Thu Dec 31    pmiller
  4884. X            23:17:39 1992
  4885. X
  4886. X
  4887. X
  4888. XProject "aegis.1.3", Change 23                      Page 1
  4889. XChange Details                    Thu Jan     7 14:32:17 1993
  4890. X
  4891. XNAME
  4892. X    Project "aegis.1.3", Delta 29, Change 23.
  4893. X
  4894. XSUMMARY
  4895. X    make the patch file work
  4896. X
  4897. XDESCRIPTION
  4898. X    1. make the patch file work, don't take the lock is aecp -o is
  4899. X    used.
  4900. X    2. fix bug in generated Makefile
  4901. X
  4902. X    This change is exempt from testing.  This change is exempt from
  4903. X    testing against the baseline.
  4904. X
  4905. XCAUSE
  4906. X    This change was caused by internal_bug.
  4907. X
  4908. XFILES
  4909. X    Type    Action    Edit    File Name
  4910. X    ------- ------- ------- -----------
  4911. X    source    modify    9    aegis/copyfile.c
  4912. X    source    modify    3    aux/Makefile.sh
  4913. X    source    modify    4    aux/patches.sh
  4914. X    source    modify    3    man1/aecp.1
  4915. X
  4916. XHISTORY
  4917. X    What        When        Who    Comment
  4918. X    ------        ------        -----    ---------
  4919. X    new_change    Thu Dec 31    pmiller
  4920. X            23:31:35 1992
  4921. X    develop_begin    Thu Dec 31    pmiller Elapsed time: 0.117
  4922. X            23:31:45 1992        days.
  4923. X    develop_end    Fri Jan     1    pmiller
  4924. X            00:24:15 1993
  4925. X    review_pass    Fri Jan     1    pmiller
  4926. X            00:24:26 1993
  4927. X    integrate_begin Fri Jan     1    pmiller Elapsed time: 0.059
  4928. X            00:25:20 1993        days.
  4929. X    integrate_fail    Fri Jan     1    pmiller don't take lock for -
  4930. X            00:51:49 1993        output form of aecp
  4931. X                        Elapsed time: 0.035
  4932. X                        days.
  4933. X    develop_end    Fri Jan     1    pmiller
  4934. X            01:07:30 1993
  4935. X    develop_end_    Fri Jan     1    pmiller
  4936. X    undo        01:10:05 1993
  4937. X    develop_end    Fri Jan     1    pmiller
  4938. X            01:16:43 1993
  4939. X    review_pass    Fri Jan     1    pmiller
  4940. X            01:16:55 1993
  4941. X    integrate_begin Fri Jan     1    pmiller Elapsed time: 0.088
  4942. X            01:17:49 1993        days.
  4943. X    integrate_fail    Fri Jan     1    pmiller don't create
  4944. X            01:57:38 1993        directories for output
  4945. X                        when use -Output
  4946. X                        Elapsed time: 0.350
  4947. X                        days.
  4948. X
  4949. X
  4950. X
  4951. XProject "aegis.1.3", Change 23                      Page 2
  4952. XChange Details                    Thu Jan     7 14:32:17 1993
  4953. X
  4954. X    What        When        Who    Comment
  4955. X    ------        ------        -----    ---------
  4956. X    develop_end    Fri Jan     1    pmiller
  4957. X            21:05:03 1993
  4958. X    review_pass    Fri Jan     1    pmiller
  4959. X            21:05:15 1993
  4960. X    integrate_begin Fri Jan     1    pmiller Elapsed time: 0.135
  4961. X            21:06:23 1993        days.
  4962. X    integrate_pass    Fri Jan     1    pmiller
  4963. X            22:07:21 1993
  4964. X
  4965. X
  4966. X
  4967. XProject "aegis.1.3", Change 24                      Page 1
  4968. XChange Details                    Thu Jan     7 14:32:18 1993
  4969. X
  4970. XNAME
  4971. X    Project "aegis.1.3", Delta 30, Change 24.
  4972. X
  4973. XSUMMARY
  4974. X    fix year in copyright notices issued
  4975. X
  4976. XDESCRIPTION
  4977. X    1. fix year in copyright notices issued
  4978. X    2. add copyright notice to the document
  4979. X    3. fix minor inconsistency in code-shadow of aegis(1) manual
  4980. X    entry.
  4981. X    4. fix typo in deu notify script
  4982. X    5. fix year in new file templates
  4983. X
  4984. X    This change is exempt from testing.  This change is exempt from
  4985. X    testing against the baseline.
  4986. X
  4987. XCAUSE
  4988. X    This change was caused by internal_enhancement.
  4989. X
  4990. XFILES
  4991. X    Type    Action    Edit    File Name
  4992. X    ------- ------- ------- -----------
  4993. X    source    modify    5    aegis/help.c
  4994. X    source    modify    6    aegis/main.c
  4995. X    source    modify    5    config
  4996. X    source    modify    5    doc/c1.0.so
  4997. X    source    modify    3    man1/z_cr.so
  4998. X    source    modify    3    man5/z_cr.so
  4999. X    source    modify    3    notify/deu.sh
  5000. X
  5001. XHISTORY
  5002. X    What        When        Who    Comment
  5003. X    ------        ------        -----    ---------
  5004. X    new_change    Fri Jan     1    pmiller
  5005. X            22:11:32 1993
  5006. X    develop_begin    Fri Jan     1    pmiller Elapsed time: 0.066
  5007. X            22:11:41 1993        days.
  5008. X    develop_end    Fri Jan     1    pmiller
  5009. X            22:41:34 1993
  5010. X    develop_end_    Fri Jan     1    pmiller Elapsed time: 0.076
  5011. X    undo        22:44:29 1993        days.
  5012. X    develop_end    Fri Jan     1    pmiller
  5013. X            23:18:35 1993
  5014. X    review_pass    Fri Jan     1    pmiller
  5015. X            23:19:06 1993
  5016. X    integrate_begin Fri Jan     1    pmiller Elapsed time: 0.048
  5017. X            23:20:03 1993        days.
  5018. X    integrate_pass    Fri Jan     1    pmiller
  5019. X            23:41:41 1993
  5020. X
  5021. X
  5022. X
  5023. XProject "aegis.1.3", Change 25                      Page 1
  5024. XChange Details                    Thu Jan     7 14:32:19 1993
  5025. X
  5026. XNAME
  5027. X    Project "aegis.1.3", Delta 31, Change 25.
  5028. X
  5029. XSUMMARY
  5030. X    fix year in more copyright notices
  5031. X
  5032. XDESCRIPTION
  5033. X    fix year in more copyright notices
  5034. X
  5035. X    This change is exempt from testing.  This change is exempt from
  5036. X    testing against the baseline.
  5037. X
  5038. XCAUSE
  5039. X    This change was caused by chain.
  5040. X
  5041. XFILES
  5042. X    Type    Action    Edit    File Name
  5043. X    ------- ------- ------- -----------
  5044. X    source    modify    2    aux/ALPHA.man
  5045. X    source    modify    2    aux/BUILDING.man
  5046. X    source    modify    2    aux/README.man
  5047. X
  5048. XHISTORY
  5049. X    What        When        Who    Comment
  5050. X    ------        ------        -----    ---------
  5051. X    new_change    Fri Jan     1    pmiller
  5052. X            23:44:10 1993
  5053. X    develop_begin    Fri Jan     1    pmiller Elapsed time: 0.050
  5054. X            23:44:18 1993        days.
  5055. X    develop_end    Sat Jan     2    pmiller
  5056. X            00:06:40 1993
  5057. X    review_pass    Sat Jan     2    pmiller
  5058. X            00:09:29 1993
  5059. X    integrate_begin Sat Jan     2    pmiller Elapsed time: 0.667
  5060. X            00:10:26 1993        days.
  5061. X    integrate_pass    Sat Jan     2    pmiller
  5062. X            21:40:39 1993
  5063. X
  5064. X
  5065. X
  5066. XProject "aegis.1.3", Change 26                      Page 1
  5067. XChange Details                    Thu Jan     7 14:32:20 1993
  5068. X
  5069. XNAME
  5070. X    Project "aegis.1.3", Delta 32, Change 26.
  5071. X
  5072. XSUMMARY
  5073. X    fix the generated patch file
  5074. X
  5075. XDESCRIPTION
  5076. X    fix the generated patch file
  5077. X    1. to remove the file names generated by 'diff -c' to force the
  5078. X    Index line to be used,
  5079. X    2. to put quotes around the version in the Prereq line,
  5080. X    3. to get rid of the verbose output from the history_get_command
  5081. X
  5082. X    This change is exempt from testing.  This change is exempt from
  5083. X    testing against the baseline.
  5084. X
  5085. XCAUSE
  5086. X    This change was caused by chain.
  5087. X
  5088. XFILES
  5089. X    Type    Action    Edit    File Name
  5090. X    ------- ------- ------- -----------
  5091. X    source    modify    5    aux/patches.sh
  5092. X    source    modify    6    config
  5093. X
  5094. XHISTORY
  5095. X    What        When        Who    Comment
  5096. X    ------        ------        -----    ---------
  5097. X    new_change    Sat Jan     2    pmiller
  5098. X            22:20:32 1993
  5099. X    develop_begin    Sat Jan     2    pmiller Elapsed time: 0.035
  5100. X            22:20:39 1993        days.
  5101. X    develop_end    Sat Jan     2    pmiller
  5102. X            22:36:18 1993
  5103. X    review_pass    Sat Jan     2    pmiller
  5104. X            22:37:12 1993
  5105. X    integrate_begin Sat Jan     2    pmiller Elapsed time: 0.064
  5106. X            22:38:07 1993        days.
  5107. X    integrate_pass    Sat Jan     2    pmiller
  5108. X            23:06:51 1993
  5109. X
  5110. X
  5111. X
  5112. XProject "aegis.1.3", Change 27                      Page 1
  5113. XChange Details                    Thu Jan     7 14:32:26 1993
  5114. X
  5115. XNAME
  5116. X    Project "aegis.1.3", Delta 33, Change 27.
  5117. X
  5118. XSUMMARY
  5119. X    user cook search list to simplify the cookbook
  5120. X
  5121. XDESCRIPTION
  5122. X    user cook search list to simplify the cookbook
  5123. X
  5124. X    This change is exempt from testing.  This change is exempt from
  5125. X    testing against the baseline.
  5126. X
  5127. XCAUSE
  5128. X    This change was caused by internal_enhancement.
  5129. X
  5130. XFILES
  5131. X    Type    Action    Edit    File Name
  5132. X    ------- ------- ------- -----------
  5133. X    source    modify    5    aux/Howto.cook
  5134. X
  5135. XHISTORY
  5136. X    What        When        Who    Comment
  5137. X    ------        ------        -----    ---------
  5138. X    new_change    Tue Jan     5    pmiller
  5139. X            16:19:26 1993
  5140. X    develop_begin    Tue Jan     5    pmiller Elapsed time: 0.307
  5141. X            16:19:42 1993        days.
  5142. X    develop_end    Wed Jan     6    pmiller
  5143. X            11:07:42 1993
  5144. X    review_pass    Wed Jan     6    pmiller
  5145. X            11:07:55 1993
  5146. X    integrate_begin Wed Jan     6    pmiller Elapsed time: 0.168
  5147. X            11:08:52 1993        days.
  5148. X    integrate_pass    Wed Jan     6    pmiller
  5149. X            12:24:28 1993
  5150. X
  5151. X
  5152. X
  5153. XProject "aegis.1.3", Change 28                      Page 1
  5154. XChange Details                    Thu Jan     7 14:32:27 1993
  5155. X
  5156. XNAME
  5157. X    Project "aegis.1.3", Delta 34, Change 28.
  5158. X
  5159. XSUMMARY
  5160. X    patch file not generated correctly for new files
  5161. X
  5162. XDESCRIPTION
  5163. X    patch file not generated correctly for new files
  5164. X
  5165. X    This change is exempt from testing.  This change is exempt from
  5166. X    testing against the baseline.
  5167. X
  5168. XCAUSE
  5169. X    This change was caused by chain.
  5170. X
  5171. XFILES
  5172. X    Type    Action    Edit    File Name
  5173. X    ------- ------- ------- -----------
  5174. X    source    modify    10    aegis/copyfile.c
  5175. X
  5176. XHISTORY
  5177. X    What        When        Who    Comment
  5178. X    ------        ------        -----    ---------
  5179. X    new_change    Wed Jan     6    pmiller
  5180. X            13:43:17 1993
  5181. X    develop_begin    Wed Jan     6    pmiller Elapsed time: 0.356
  5182. X            13:43:27 1993        days.
  5183. X    develop_end    Wed Jan     6    pmiller
  5184. X            16:23:30 1993
  5185. X    review_pass    Wed Jan     6    pmiller
  5186. X            16:25:14 1993
  5187. X    integrate_begin Wed Jan     6    pmiller Elapsed time: 0.677
  5188. X            16:26:18 1993        days.
  5189. X    integrate_pass    Wed Jan     6    pmiller
  5190. X            21:30:52 1993
  5191. X
  5192. X
  5193. X
  5194. XProject "aegis.1.3", Change 29                      Page 1
  5195. XChange Details                    Thu Jan     7 14:32:29 1993
  5196. X
  5197. XNAME
  5198. X    Project "aegis.1.3", Delta 35, Change 29.
  5199. X
  5200. XSUMMARY
  5201. X    document cook usage
  5202. X
  5203. XDESCRIPTION
  5204. X    document cook usage
  5205. X
  5206. X    This change is exempt from testing against the baseline.
  5207. X
  5208. XCAUSE
  5209. X    This change was caused by internal_enhancement.
  5210. X
  5211. XSTATE
  5212. X    This change is in 'being_integrated' state.
  5213. X
  5214. XFILES
  5215. X    Type    Action    Edit    File Name
  5216. X    ------- ------- ------- -----------
  5217. X    source    modify    4    doc/aegis.ms
  5218. X    source    modify    5    doc/c1.0.so
  5219. X    source    modify    4    doc/c2.1.so
  5220. X    source    modify    4    doc/c2.2.so
  5221. X    source    modify    4    doc/c4.0.so
  5222. X    source    create        doc/c4.1.so
  5223. X    source    create        doc/c4.2.so
  5224. X    source    create        doc/c4.3.so
  5225. X    source    modify    4    doc/c6.0.so
  5226. X    source    modify    5    doc/c7.1.so
  5227. X    source    modify    4    doc/cA.0.so
  5228. X    source    modify    3    doc/cB.0.so
  5229. X    source    modify    2    dot.cshrc
  5230. X    source    modify    2    dot.profile
  5231. X    test    modify    5    test/00/t0011a.sh
  5232. X
  5233. XHISTORY
  5234. X    What        When        Who    Comment
  5235. X    ------        ------        -----    ---------
  5236. X    new_change    Wed Jan     6    pmiller
  5237. X            21:33:23 1993
  5238. X    develop_begin    Wed Jan     6    pmiller Elapsed time: 0.041
  5239. X            21:36:57 1993        days.
  5240. X    develop_end    Thu Jan     7    pmiller
  5241. X            14:25:13 1993
  5242. X    review_pass    Thu Jan     7    pmiller
  5243. X            14:26:41 1993
  5244. X    integrate_begin Thu Jan     7    pmiller
  5245. X            14:27:43 1993
  5246. END_OF_FILE
  5247. if test 66004 -ne `wc -c <'aux/CHANGES.1.3'`; then
  5248.     echo shar: \"'aux/CHANGES.1.3'\" unpacked with wrong size!
  5249. fi
  5250. # end of 'aux/CHANGES.1.3'
  5251. fi
  5252. echo shar: End of archive 17 \(of 19\).
  5253. cp /dev/null ark17isdone
  5254. MISSING=""
  5255. for I in 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 ; do
  5256.     if test ! -f ark${I}isdone ; then
  5257.     MISSING="${MISSING} ${I}"
  5258.     fi
  5259. done
  5260. if test "${MISSING}" = "" ; then
  5261.     echo You have unpacked all 19 archives.
  5262.     rm -f ark[1-9]isdone ark[1-9][0-9]isdone
  5263. else
  5264.     echo You still need to unpack the following archives:
  5265.     echo "        " ${MISSING}
  5266. fi
  5267. ##  End of shell archive.
  5268. exit 0
  5269.