/[CvsGraph]/cvsgraph/rcs.h
ViewVC logotype

Annotate of /cvsgraph/rcs.h

Parent Directory Parent Directory | Revision Log Revision Log | View Revision Graph Revision Graph


Revision 1.9 - (hide annotations)
Thu Jul 15 15:12:07 2004 UTC (13 years, 5 months ago) by bertho
Branch: MAIN
CVS Tags: REL_1_4_1
Changes since 1.8: +1 -0 lines
File MIME type: text/plain
Fix the author recognition for CVSNT with broken rcsfile(5) format.
This might not be a total remedy, but should fix some.
1 bertho 1.1 /*
2     * CvsGraph graphical representation generator of brances and revisions
3     * of a file in cvs/rcs.
4     *
5     * Copyright (C) 2001 B. Stultiens
6     *
7     * This program is free software; you can redistribute it and/or modify
8     * it under the terms of the GNU General Public License as published by
9     * the Free Software Foundation; either version 2 of the License, or
10     * (at your option) any later version.
11     *
12     * This program is distributed in the hope that it will be useful,
13     * but WITHOUT ANY WARRANTY; without even the implied warranty of
14     * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
15     * GNU General Public License for more details.
16     *
17     * You should have received a copy of the GNU General Public License
18     * along with this program; if not, write to the Free Software
19     * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
20     */
21     #ifndef __RCS_H
22     #define __RCS_H
23    
24 bertho 1.6 struct __revision_t; /* Forward */
25    
26 bertho 1.1 typedef struct __rev_t
27     {
28     char *branch;
29     char *rev;
30     int isbranch;
31     } rev_t;
32    
33     typedef struct __revs_t
34     {
35     rev_t **revs;
36     int nrevs;
37     } revs_t;
38    
39     typedef struct __tag_t
40     {
41 bertho 1.6 char *tag;
42     rev_t *rev;
43     struct __revision_t *logrev; /* backpointer to logical revision */
44 bertho 1.7 int yofs; /* Internal drawing offset to center of the tag */
45 bertho 1.1 } tag_t;
46    
47     typedef struct __tags_t
48     {
49     tag_t **tags;
50     int ntags;
51     } tags_t;
52    
53 bertho 1.6 typedef struct __merge_t
54     {
55     tag_t *to; /* This tag is destination of a merge */
56     tag_t *from; /* This tag is origin of a merge */
57     } merge_t;
58    
59 bertho 1.1 typedef struct __idrev_t
60     {
61     char *id;
62     rev_t *rev;
63     } idrev_t;
64    
65     typedef struct __idrevs_t
66     {
67     idrev_t **idrevs;
68     int nidrevs;
69     } idrevs_t;
70    
71     typedef struct __ids_t
72     {
73     char **ids;
74     int nids;
75     } ids_t;
76    
77     typedef struct __dtext_t
78     {
79     rev_t *rev; /* Diff/log revision */
80     char *log; /* The log entry */
81     char *text; /* Diff text (only set if lexer send it) */
82     } dtext_t;
83    
84     typedef struct __dtexts_t
85     {
86     dtext_t **dtexts;
87     int ndtexts;
88     } dtexts_t;
89    
90     typedef struct __delta_t
91     {
92     rev_t *rev; /* Delta revision */
93     char *date;
94     char *author;
95     char *state;
96     revs_t *branches;
97     rev_t *next; /* Next delta in this branch */
98     int flag; /* Set if assigned a branch to prevent infinite recursion */
99     } delta_t;
100    
101     typedef struct __deltas_t
102     {
103     delta_t **deltas;
104     int ndeltas;
105     } deltas_t;
106    
107     typedef struct __branch_t /* Logical branch structure */
108     {
109     struct __revision_t **revs;
110     int nrevs;
111     struct __revision_t *branchpoint; /* Backlink to revision that spawned the branch */
112 bertho 1.8 rev_t *branch; /* Branch id */
113     tag_t **tags; /* Symbolic tags */
114 bertho 1.1 int ntags;
115 bertho 1.8 int folded; /* Set if this branch is folded in another box */
116     struct __branch_t **folds; /* List of other branches folded into this one */
117     int nfolds;
118     int fw; /* Max width of the branch number if folds present */
119     int w, h; /* BBox width/height */
120     int cx, y; /* BBox center-top position */
121     int tw, th; /* Total BBox width/height */
122 bertho 1.1 } branch_t;
123    
124     typedef struct __revision_t /* Logical revision structure */
125     {
126     delta_t *delta;
127     dtext_t *dtext;
128     rev_t *rev; /* Shortcut to delta->rev */
129 bertho 1.2 char *revtext; /* Expanded text to draw */
130 bertho 1.1 branch_t *branch; /* The branch this revision belongs to */
131     branch_t **branches; /* Branches from this revision */
132     int nbranches;
133     tag_t **tags; /* Symbolic tags */
134     int ntags;
135     int w, h; /* BBox width/height */
136     int cx, y; /* BBox center-top position */
137 bertho 1.3 int stripped; /* Set if we jumped revisions due to strip_untagged */
138 bertho 1.1 } revision_t;
139    
140     typedef struct __rcsfile_t
141     {
142     char *root; /* The CVS root directory */
143     char *module; /* The CVS module */
144     char *file; /* The CVS filename */
145     rev_t *head; /* Head revision */
146     rev_t *branch; /* Active branch (NULL if main trunk) */
147     ids_t *access; /* Access identifier(s) (NULL if none) */
148     tags_t *tags; /* Symbolic tags (NULL if none) */
149     idrevs_t *locks; /* Locks revisions (NULL if no locks) */
150     int strict; /* Locking strategy */
151     char *comment; /* File comment (NULL if none) */
152     char *expand; /* Keyword substitution (NULL if none, i.e. -kv) */
153     deltas_t *deltas; /* Delta admin */
154     char *desc; /* Eh... description of file? */
155     dtexts_t *dtexts; /* Diffs and logs */
156    
157     /* Logical structure */
158     delta_t **sdelta; /* Sorted delta on revision */
159     int nsdelta;
160     dtext_t **sdtext; /* Sorted dtext on revision */
161     int nsdtext;
162     revision_t **srev; /* Sorted list of all revisions */
163     int nsrev;
164     branch_t **branches; /* List of branches */
165     branch_t *active; /* The active branch (translated branch of admin) */
166     int nbranches;
167 bertho 1.6 merge_t *merges; /* Merge tags from->to description */
168     int nmerges;
169 bertho 1.1 int tw, th; /* Total BBox width/height */
170     } rcsfile_t;
171    
172     void set_id(void); /* Next scan is for an id */
173 bertho 1.9 void set_author(void); /* Next scan is for an author */
174 bertho 1.1 void set_sym(void); /* Next scan is for a symbol */
175     void set_skip(void); /* Everyting until ';' dropped */
176     void set_skipstr(void); /* Next string must be dropped */
177    
178     int rcslex(void);
179     int rcsparse(void);
180    
181     extern FILE *rcsin;
182     extern rcsfile_t *rcsfile;
183    
184     #endif

  ViewVC Help
Powered by ViewVC 1.1.0 with CvsGraph 1.7.0