Package: cxref / 1.6e-1

debian-changes-1.6c-1 Patch series | download
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
225
226
227
228
229
230
231
232
233
234
235
236
237
238
239
240
241
242
243
244
245
246
247
248
249
250
251
252
253
254
255
256
257
258
259
260
261
262
263
264
265
266
267
268
269
270
271
272
273
274
275
276
277
278
279
280
281
282
283
284
285
286
287
288
289
290
291
292
293
294
295
296
297
298
299
300
301
302
303
304
305
306
307
308
309
310
311
312
313
314
315
316
317
318
319
320
321
322
323
324
325
326
327
328
329
330
331
332
333
334
335
336
337
338
339
340
341
342
343
344
345
346
347
348
349
350
351
352
353
354
355
356
357
358
359
360
361
362
363
364
365
366
367
368
369
370
371
372
373
374
375
376
377
378
379
380
381
382
383
384
385
386
387
388
389
390
391
392
393
394
395
396
397
398
399
400
401
402
403
404
405
406
407
408
409
410
411
412
413
414
415
416
417
418
419
420
421
422
423
424
425
426
427
428
429
430
431
432
433
434
435
436
437
438
439
440
441
442
443
444
445
446
447
448
449
450
451
452
453
454
455
456
457
458
459
460
461
462
463
464
465
466
467
468
469
470
471
472
473
474
475
476
477
478
479
480
481
482
483
484
485
486
487
488
489
490
491
492
493
494
495
496
497
498
499
500
501
502
503
504
505
506
507
508
509
510
511
512
513
514
515
516
517
518
519
520
521
522
523
524
525
526
527
528
529
530
531
532
533
534
535
536
537
538
539
540
541
542
543
544
545
546
547
548
549
550
551
552
553
554
555
556
557
558
559
560
561
562
563
564
565
566
567
568
569
570
571
572
573
574
575
576
577
578
579
580
581
582
583
584
585
586
587
588
589
590
591
592
593
594
595
596
597
598
599
600
601
602
603
604
605
606
607
608
609
610
611
612
613
614
615
Description: Upstream changes introduced in version 1.6c-1
 This patch has been created by dpkg-source during the package build.
 Here's the last changelog entry, hopefully it gives details on why
 those changes were made:
 .
 cxref (1.6c-1) unstable; urgency=low
 .
   * New upstream release
 .
 The person named in the Author field signed this changelog entry.
Author: Camm Maguire <camm@debian.org>

---
The information above should follow the Patch Tagging Guidelines, please
checkout http://dep.debian.net/deps/dep3/ to learn about the format. Here
are templates for supplementary fields that you might want to add:

Origin: <vendor|upstream|other>, <url of original patch>
Bug: <url in upstream bugtracker>
Bug-Debian: http://bugs.debian.org/<bugnumber>
Bug-Ubuntu: https://launchpad.net/bugs/<bugnumber>
Forwarded: <no|not-needed|url proving that it has been forwarded>
Reviewed-By: <name and email of someone who approved the patch>
Last-Update: <YYYY-MM-DD>

Index: cxref-1.6e/README-1.html
===================================================================
--- /dev/null
+++ cxref-1.6e/README-1.html
@@ -0,0 +1,376 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 3.2 Final//EN">
+<HTML>
+<HEAD>
+ <META NAME="GENERATOR" CONTENT="LinuxDoc-Tools 0.9.21">
+ <TITLE>C Cross Referencing &amp; Documenting tool. Version 1.5.: C Cross Referencing &amp; Documenting tool. Version 1.5 - cxref</TITLE>
+
+ <LINK HREF="README.html#toc1" REL=contents>
+</HEAD>
+<BODY>
+Next
+Previous
+<A HREF="README.html#toc1">Contents</A>
+<HR>
+<H2><A NAME="s1">1.</A> <A HREF="README.html#toc1">C Cross Referencing &amp; Documenting tool. Version 1.5 - cxref</A></H2>
+
+<P>A program that can automatically generate documentation and cross references for
+a C program.<BR>
+The input is any C program with appropriate comments and the output is LaTeX,
+HTML, RTF or SGML files.</P>
+
+<H2><A NAME="ss1.1">1.1</A> <A HREF="README.html#toc1.1">Program Options</A>
+</H2>
+
+<P>The name of the program is cxref.</P>
+<P>
+<BLOCKQUOTE><CODE>
+<PRE>
+Usage: cxref filename [ ... filename]
+             [-Odirname] [-Nbasename] [-Rdirname]
+             [-all-comments] [-no-comments]
+             [-verbatim-comments] [-block-comments]
+             [-xref[-all][-file][-func][-var][-type]]
+             [-warn[-all][-comment][-xref]]
+             [-index[-all][-file][-func][-var][-type]]
+             [-raw]
+             [-latex209|-latex2e]
+             [-html20|-html32][-src]
+             [-rtf]
+             [-sgml]
+             [-Idirname] [-Ddefine] [-Udefine]
+             [-CPP cpp_program] [-- cpp_arg [ ... cpp_arg]]
+
+Usage: cxref filename [ ... filename] -delete
+             [-Odirname] [-Nbasename] [-Rdirname]
+</PRE>
+</CODE></BLOCKQUOTE>
+</P>
+<P>
+<DL>
+<DT><B><CODE>filename</CODE></B><DD><P>The name of the file to document, any number of files may be
+documented at a time.</P>
+<DT><B><CODE>-delete</CODE></B><DD><P>The files named are to be deleted from the output directory and
+their entries in the cross reference database and main output
+files are to be removed.</P>
+<DT><B><CODE>-Odirname</CODE></B><DD><P>The name of a directory to use for the output latex files and
+the location of the cross reference files that are created.</P>
+<DT><B><CODE>-Nbasename</CODE></B><DD><P>The name to use for the first part of the output and cross
+reference files instead of cxref, the file extensions remain
+the same.</P>
+<DT><B><CODE>-Rdirname</CODE></B><DD><P>When the source files are in more than one directory, set
+dirname to the name of the root directory of the source tree
+(use relative path if easier e.g. `-R../..').  This will then
+run cxref from that root directory and the `-Odirname' must be
+relative to that directory.</P>
+<DT><B><CODE>-all-comments</CODE></B><DD><P>In case you think that the existing comments might work,
+(see below for description of special comments).<BR>
+<I>[Danger! This option can produce weird results.]</I></P>
+<DT><B><CODE>-no-comments</CODE></B><DD><P>Ignores all comments, useful if you just want the cross
+references and not the documentation.</P>
+<DT><B><CODE>-verbatim-comments</CODE></B><DD><P>When the comments that you have in the code are formatted
+in a predetermined style that you want to preserve on the
+output, this option will force them not to be reformatted.<BR>
+<I>[Note, this is for file and function comments only.]</I></P>
+<DT><B><CODE>-block-comments</CODE></B><DD><P>When the comments in the program are formatted in the `block'
+style (with a leading `*' character on every line), this option
+will remove that character from the output.<BR>
+<I>[Works for a single `*', `+', `|' or `:' on each line.]</I></P>
+<DT><B><CODE>-xref</CODE></B><DD><P>Produce cross referencing information (see below).
+<DL>
+<DT><B><CODE>-all</CODE></B><DD><P>All cross references.</P>
+<DT><B><CODE>-file</CODE></B><DD><P>Cross references for files.</P>
+<DT><B><CODE>-func</CODE></B><DD><P>Cross references for functions.</P>
+<DT><B><CODE>-var</CODE></B><DD><P>Cross references for variables.</P>
+<DT><B><CODE>-type</CODE></B><DD><P>Cross references for types.</P>
+</DL>
+</P>
+<DT><B><CODE>-warn</CODE></B><DD><P>Produce warnings, the options must be concatenated together:
+<DL>
+<DT><B><CODE>-all</CODE></B><DD><P>All warnings.</P>
+<DT><B><CODE>-comment</CODE></B><DD><P>Warn of missing comments.</P>
+<DT><B><CODE>-xref</CODE></B><DD><P>Warn of missing cross references.</P>
+</DL>
+</P>
+<DT><B><CODE>-index</CODE></B><DD><P>Produce a cross reference index, the options must be
+concatenated together:
+<DL>
+<DT><B><CODE>-all</CODE></B><DD><P>All indexes.</P>
+<DT><B><CODE>-file</CODE></B><DD><P>Index of files.</P>
+<DT><B><CODE>-func</CODE></B><DD><P>Index of functions.</P>
+<DT><B><CODE>-var</CODE></B><DD><P>Index of variables.</P>
+<DT><B><CODE>-type</CODE></B><DD><P>Index of types.</P>
+</DL>
+</P>
+<DT><B><CODE>-raw</CODE></B><DD><P>Produce a raw form of output, not really of much use except
+with -warn.</P>
+<DT><B><CODE>-latex209</CODE></B><DD><P>Produce a LaTeX file to document each of the source files and
+also an extra file that includes each of these files.  (Using
+the LaTeX version 2.09 format.)</P>
+<DT><B><CODE>-latex2e</CODE></B><DD><P>Produce the LaTeX file described above for use with the
+LaTeX2e version of LaTeX.</P>
+<DT><B><CODE>-html20</CODE></B><DD><P>Produce an HTML file to document each of the source files and
+a main file to reference each of these files.  (using the HTML
+2.0 standard, no tables).</P>
+<DT><B><CODE>-html32</CODE></B><DD><P>Produce the HTML file described above but using HTML 3.2.</P>
+<DT><B><CODE>-rtf</CODE></B><DD><P>Produce a Rich Text Format (RTF) file to document the source
+file.</P>
+<DT><B><CODE>-html20-src</CODE></B><DD><P>Produce the HTML v2.0 output and a HTML version of the source
+file with links into it.</P>
+<DT><B><CODE>-html32-src</CODE></B><DD><P>Produce the HTML v3.2 output and a HTML version of the source
+file with links into it.</P>
+<DT><B><CODE>-sgml</CODE></B><DD><P>Produce an SGML file to document the source file.  (Using the
+LinuxDoc DTD).</P>
+<DT><B><CODE>-Idirname</CODE></B><DD><P>GCC option to specify the path for include files.</P>
+<DT><B><CODE>-Ddefine</CODE></B><DD><P>GCC option to define a pre-processor symbol.</P>
+<DT><B><CODE>-Udefine</CODE></B><DD><P>GCC option to undefine a pre-processor symbol.</P>
+<DT><B><CODE>-CPP program</CODE></B><DD><P>The name of the program to use instead of the compile time
+default.  The program must be able to perform all of the actions
+that `gcc -E -C -dD' does to work. If the program takes
+arguments then the whole thing needs to be in quotes so that it
+is interpreted as a single argument to cxref.</P>
+<DT><B><CODE>-- arg ... arg</CODE></B><DD><P>Extra arguments to be passed to the pre-processor can be placed
+after the `--' separator.</P>
+</DL>
+</P>
+
+<H2><A NAME="ss1.2">1.2</A> <A HREF="README.html#toc1.2">C Compiler Replacement cxref-cc</A>
+</H2>
+
+<P>To simplify using cxref on existing source code, there is now a shell script
+that will call the C compiler and then call cxref to process the source file.
+This means that it can be used as a drop in replacement for CC in Makefiles and
+the like.</P>
+<P>
+<BLOCKQUOTE><CODE>
+<PRE>
+Usage: cxref-cc [usual cc options]
+</PRE>
+</CODE></BLOCKQUOTE>
+</P>
+<P>The name of the source file is extracted from the list of options as well as the
+`-D*', `-I*', `-U*' flags and when the C compiler exits succesfully cxref will
+be called.  The name of the C compiler to use is controlled by the CXREFCC
+environment variable, or if this is not set then the CC environment variable, or
+failing this just gcc.</P>
+<P>Using this script requires the use of a `.cxref' configuration file to contain
+the options since there is nowhere to put the options on the command line for
+the C compiler.</P>
+<P>This will only cross-reference and document the C source files since they are
+the only ones that are compiled, but it will make sure that they are
+cross-referenced with the correct options etc.</P>
+
+<H2><A NAME="ss1.3">1.3</A> <A HREF="README.html#toc1.3">Cxref configuration File</A>
+</H2>
+
+<P>These command line arguments can also be put into a file named `.cxref' instead
+of on the command line.  When cxref is run the arguments to the program are
+interpreted in the following order.</P>
+<P>
+<OL>
+<LI>Those on the command line.</LI>
+<LI>Those in the `.cxref' file in the current directory.</LI>
+<LI>Those in the `.cxref' file in the source tree root specified by `-R'.</LI>
+</OL>
+</P>
+<P>This means that in a multi-directory source tree, each sub-directory can have a
+`.cxref' file containing just the line `-R..' or appropriate.  The main
+directory can have a `.cxref' file containing the remainder of the options.
+This removes completely the need to have any options on the command line apart
+from the source file names.</P>
+<P>The format of the `.cxref' file is any number of lines, each one containing a
+single command line argument (equivalent to one of the argv).  The only options
+that cannot be used are the names of source files themselves and the `-delete'
+option.  Blank lines are ignored and lines starting with a '#' are comments.</P>
+
+<H2><A NAME="ss1.4">1.4</A> <A HREF="README.html#toc1.4">Program Documentation Comments</A>
+</H2>
+
+<P>The documentation for the program is produced from comments in the code that are
+appropriately formatted.  The cross referencing comes from the code itself and
+requires no extra work.<BR>
+The special comments are `/**** ****/' (for a file) and `/*++++ ++++*/' (for a
+data object) any number of `*' or `+' can be used inside of the standard `/*'
+and `*/' comment delimiters in the comments, they are ignored.<BR>
+If a comment line starts with whitespace and is followed by `+html+' then the
+rest of the line is included only in the HTML output, and is not processed so it
+can include HTML markup, `-html-' means that the rest of the line is included in
+all except the HTML output.  The same also applies to the other output formats,
+`+none+' can be used for lines not to appear in any output.  The exception to
+this is that the raw output does not do any checking and will output all lines.<BR>
+In any situation where a comment follows a `,', `;' or `)' separated only by
+spaces and tabs, the comment is pushed to before the punctuation to apply to
+object there.<BR>
+The program is implemented using a full ANSI C grammar parser with some GCC
+extensions, this means that the style of the code is unimportant, only the
+content and comments.</P>
+
+<H2><A NAME="ss1.5">1.5</A> <A HREF="README.html#toc1.5">Automated Comment Insertion</A>
+</H2>
+
+<P>To simplify the insertion of comments that will be parsed by cxref, the file
+<CODE>cxref.el</CODE> provides a number of Emacs lisp functions.  To use them add the line
+<CODE>(load "cxref")</CODE> to your `.emacs' file or type <CODE>M-x load-file cxref.el</CODE> from
+within Emacs.</P>
+<P>The functions and key bindings are:
+<DL>
+<DT><B><I>Control-C Control-X Control-F</I></B><DD><P>Adds file comments, a /** **/ header at the top of the
+file and if it is a .h file then it also adds a #ifndef,
+#define at the beginning and #endif at the end to stop
+multiple inclusions.</P>
+<DT><B><I>Control-C Control-X f</I></B><DD><P>Adds comments to a function, the cursor must be on the
+line containing the start of the function definition when
+this function is called.  The /*+ ... +*/ comment that is
+added is of the header type (see the examples) not inline.</P>
+<DT><B><I>Control-C Control-X v</I></B><DD><P>Adds a leading comment to the variable or other definition
+on the current line.</P>
+<DT><B><I>Control-C Control-X e</I></B><DD><P>Adds a trailing comment at the end of the line.</P>
+<DT><B><I>Control-C Control-X i</I></B><DD><P>Adds an inline comment that is ignored by cxref.</P>
+</DL>
+</P>
+
+<H2><A NAME="ss1.6">1.6</A> <A HREF="README.html#toc1.6">C Preprocessor</A>
+</H2>
+
+<P>To improve the output that is available a modified version of the GNU CPP V2.7.2
+is supplied (named cxref-cpp).<BR>
+This modified C preprocessor allows for a finer control over some features of
+the preprocessing that are not important for a compiler.  In a standard
+preprocessor, the preprocessor directives are intended for use only by the
+preprocessor, so passing the information through is not important.<BR>
+With cxref-cpp, there are two features that are different to the standard GNU
+CPP:
+<OL>
+<LI>The #include directives from the file are output in the same way as the
+#defines are output.  An extra flag has been added to cpp to do this, '-dI',
+it works in the same way as the existing '-dD' flag for #defines.</LI>
+<LI>Comments trailing a #include or a #define are dropped with GNU CPP even if -C
+is used. This is not important while compiling but is useful for documenting.</LI>
+</OL>
+</P>
+
+<H2><A NAME="ss1.7">1.7</A> <A HREF="README.html#toc1.7">Cross Referencing</A>
+</H2>
+
+<P>The cross referencing is performed for the following items
+<DL>
+<DT><B>Files</B><DD><P>
+<UL>
+<LI>The files that the current file is included in
+<I>(even when included via other files).</I></LI>
+</UL>
+</P>
+<DT><B>#includes</B><DD><P>
+<UL>
+<LI>Files included in the current file.</LI>
+<LI>Files included by these files etc.</LI>
+</UL>
+</P>
+<DT><B>Variables</B><DD><P>
+<UL>
+<LI>The location of the definition of external variables.</LI>
+<LI>The files that have visibility of global variables.</LI>
+<LI>The files / functions that use the variable.</LI>
+</UL>
+</P>
+<DT><B>Functions</B><DD><P>
+<UL>
+<LI>The file that the function is prototyped in.</LI>
+<LI>The functions that the function calls.</LI>
+<LI>The functions that call the function.</LI>
+<LI>The files and functions that reference the function.</LI>
+<LI>The variables that are used in the function.</LI>
+</UL>
+</P>
+</DL>
+
+Each of these items is cross referenced in the output.<BR>
+The cross referencing uses files `cxref.variable', `cxref.function',
+`cxref.include' and `cxref.typedef' in the output directory.<BR>
+These are a complete list of the function and variable usage in the program and
+could be used to generate a function call hierarchy or variable usage diagram
+for example.<BR>
+Two cxref passes of each file is needed, the first to build up the cross
+referencing files and the second to use them.<BR>
+<I>(The file names are different if the `-N' option is used.)</I></P>
+
+<H2><A NAME="ss1.8">1.8</A> <A HREF="README.html#toc1.8">LaTeX Output</A>
+</H2>
+
+<P>The default LaTeX output is a file for each of the source files with one extra
+file `cxref.tex' that includes each of the other files.  This is to allow a
+makefile to only update the changed files (although the references may require
+all of the files to be checked again).  When the cxref.tex file has been written
+it can be modified by the user, any new files that are added are added at the
+end of the source code section, the rest of the file being unchanged.<BR>
+The index is written to a file called `cxref.apdx.tex' and cxref.tex is updated
+to refer to it.<BR>
+Also written out are three LaTeX style files `page.sty', `fonts.sty' and
+`cxref.sty'.  These set up the page to use a smaller margin and smaller fonts to
+allow more to appear on a page and also define the new commands for typesetting
+the cxref output.<BR>
+<I>(The file names `cxref.tex' and `cxref.apdx.tex' are different if the `-N'
+option is used.)</I><BR>
+The two different forms of LaTeX output are selected by using the <I>-latex209</I> or
+the <I>-latex2e</I> options.  These select between two sets of output that can be used
+with those two different versions of LaTeX.</P>
+
+<H2><A NAME="ss1.9">1.9</A> <A HREF="README.html#toc1.9">HTML Output</A>
+</H2>
+
+<P>The default HTML output is a file for each of the source files with one extra
+file `cxref.html' that includes each of the other files.  This is to allow a
+makefile to only update the changed files (although the references may require
+all of the files to be checked again).  When the cxref.html file has been
+written it can be modified by the user, any new files that are added are added
+at the end before the table of contents, the rest of the file being unchanged.<BR>
+The index is written to a file called `cxref.apdx.html' and cxref.html is
+updated to refer to it.<BR>
+<I>(The file names `cxref.html' and `cxref.apdx.html' are different if the `-N'
+option is used.)</I><BR>
+The two different forms of HTML output are selected by using the <I>-html20</I> or the
+<I>-html32</I> options.  These select between two sets of output that comply with the
+HTML 2.0 and 3.2 definitions, they differ in their use of tables.</P>
+
+<H2><A NAME="ss1.10">1.10</A> <A HREF="README.html#toc1.10">RTF Output</A>
+</H2>
+
+<P>Rich Text Format is a fairly low level page description format devised by
+Microsoft.  It is not a well defined and easy to understand standard as are the
+other formats, but it is popular for document exchange.<BR>
+There is a single output file for each of the source files and an index file.</P>
+
+<H2><A NAME="ss1.11">1.11</A> <A HREF="README.html#toc1.11">SGML Output</A>
+</H2>
+
+<P>Since SGML is a meta-language it is necessary to define the layout elements as
+well as provide the information.  The cxref output uses the LinuxDoc document
+format and is designed for use with the SGMLtools programs
+(http://www.sgmltools.org/).<BR>
+There is a single output file for each of the source files and an index file.</P>
+
+<H2><A NAME="ss1.12">1.12</A> <A HREF="README.html#toc1.12">Further Information</A>
+</H2>
+
+<P>There is a list of frequently asked questions and their answers for the cxref
+program in the FAQ file.  A list of improvements planned for future versions of
+the program are listed in the file TODO.</P>
+<P>More up-to-date information can be found on the World Wide Web at the cxref
+homepage, reached via the author's homepage http://www.gedanken.demon.co.uk/.</P>
+<P>If you wish to submit bug reports or other comments about the program then email
+the author amb@gedanken.demon.co.uk and put cxref in the subject line.</P>
+
+<H2><A NAME="ss1.13">1.13</A> <A HREF="README.html#toc1.13">Author and Copyright</A>
+</H2>
+
+<P>The cxref program was written by Andrew M. Bishop in 1995,96,97,98,99.<BR>
+The cxref program is copyright Andrew M. Bishop 1995,96,97,98,99.<BR>
+The cxref-cpp program is copyright Free Software Foundation, Inc.<BR>
+The cxref and cxref-cpp programs can be freely distributed according to the
+terms of the GNU General Public License (see the file `COPYING').</P>
+
+<HR>
+Next
+Previous
+<A HREF="README.html#toc1">Contents</A>
+</BODY>
+</HTML>
Index: cxref-1.6e/cpp/cccp.c
===================================================================
--- cxref-1.6e.orig/cpp/cccp.c
+++ cxref-1.6e/cpp/cccp.c
@@ -1029,6 +1029,16 @@ static void pipe_closed PROTO((int)) ATT
 
 static void memory_full PROTO((void)) ATTRIBUTE_NORETURN;
 static void print_help PROTO((void));
+
+/* Missing prototypes below break these functions on 64 bit machines
+   where sizeof(PTR)!=sizeof(default return=int) (amd64,ia64).  No gcc
+   warning as always invoked with a cast.  CM 20041101*/
+
+PTR xmalloc PROTO((size_t));
+PTR xrealloc PROTO((PTR,size_t));
+PTR xcalloc PROTO((size_t,size_t));
+char * xstrdup PROTO((const char *));
+
 
 /* Read LEN bytes at PTR from descriptor DESC, for file FILENAME,
    retrying if necessary.  If MAX_READ_LEN is defined, read at most
Index: cxref-1.6e/cpp/prefix.c
===================================================================
--- cxref-1.6e.orig/cpp/prefix.c
+++ cxref-1.6e/cpp/prefix.c
@@ -94,6 +94,8 @@ static HKEY reg_key = (HKEY) INVALID_HAN
 
 char * concat PROTO((const char *, ...)); /* Need prototype to remove compile warning - AMB */
 
+char *concat(const char *first, ...);
+
 /* Given KEY, as above, return its value.  */
 
 static const char *
Index: cxref-1.6e/doc/README.tex
===================================================================
--- cxref-1.6e.orig/doc/README.tex
+++ cxref-1.6e/doc/README.tex
@@ -220,22 +220,22 @@ within Emacs.
 
 The functions and key bindings are:
 \begin{list}{}{\leftmargin=1.3in \labelwidth=2.5in}
-\item[{\it Control-C Control-F}]
+\item[{\it Control-C Control-X Control-F}]
 Adds file comments, a /** **/ header at the top of the
 file and if it is a .h file then it also adds a \#ifndef,
 \#define at the beginning and \#endif at the end to stop
 multiple inclusions.
-\item[{\it Control-C f}]
+\item[{\it Control-C Control-X f}]
 Adds comments to a function, the cursor must be on the
 line containing the start of the function definition when
 this function is called.  The /*+ ... +*/ comment that is
 added is of the header type (see the examples) not inline.
-\item[{\it Control-C v}]
+\item[{\it Control-C Control-X v}]
 Adds a leading comment to the variable or other definition
 on the current line.
-\item[{\it Control-C e}]
+\item[{\it Control-C Control-X e}]
 Adds a trailing comment at the end of the line.
-\item[{\it Control-C i}]
+\item[{\it Control-C Control-X i}]
 Adds an inline comment that is ignored by cxref.
 \end{list}
 
Index: cxref-1.6e/doc/README.sgml
===================================================================
--- cxref-1.6e.orig/doc/README.sgml
+++ cxref-1.6e/doc/README.sgml
@@ -224,22 +224,22 @@ within Emacs.
 <p>
 The functions and key bindings are:
 <descrip>
-<tag><it>Control-C Control-F</it></tag>
+<tag><it>Control-C Control-X Control-F</it></tag>
 Adds file comments, a /** **/ header at the top of the
 file and if it is a .h file then it also adds a #ifndef,
 #define at the beginning and #endif at the end to stop
 multiple inclusions.
-<tag><it>Control-C f</it></tag>
+<tag><it>Control-C Control-X f</it></tag>
 Adds comments to a function, the cursor must be on the
 line containing the start of the function definition when
 this function is called.  The /*+ ... +*/ comment that is
 added is of the header type (see the examples) not inline.
-<tag><it>Control-C v</it></tag>
+<tag><it>Control-C Control-X v</it></tag>
 Adds a leading comment to the variable or other definition
 on the current line.
-<tag><it>Control-C e</it></tag>
+<tag><it>Control-C Control-X e</it></tag>
 Adds a trailing comment at the end of the line.
-<tag><it>Control-C i</it></tag>
+<tag><it>Control-C Control-X i</it></tag>
 Adds an inline comment that is ignored by cxref.
 </descrip>
 
Index: cxref-1.6e/doc/README.html
===================================================================
--- cxref-1.6e.orig/doc/README.html
+++ cxref-1.6e/doc/README.html
@@ -221,22 +221,22 @@ within Emacs.
 <p>
 The functions and key bindings are:
 <dl>
-<dt><i>Control-C Control-F</i>
+<dt><i>Control-C Control-X Control-F</i>
 <dd>Adds file comments, a /** **/ header at the top of the
 file and if it is a .h file then it also adds a #ifndef,
 #define at the beginning and #endif at the end to stop
 multiple inclusions.
-<dt><i>Control-C f</i>
+<dt><i>Control-C Control-X f</i>
 <dd>Adds comments to a function, the cursor must be on the
 line containing the start of the function definition when
 this function is called.  The /*+ ... +*/ comment that is
 added is of the header type (see the examples) not inline.
-<dt><i>Control-C v</i>
+<dt><i>Control-C Control-X v</i>
 <dd>Adds a leading comment to the variable or other definition
 on the current line.
-<dt><i>Control-C e</i>
+<dt><i>Control-C Control-X e</i>
 <dd>Adds a trailing comment at the end of the line.
-<dt><i>Control-C i</i>
+<dt><i>Control-C Control-X i</i>
 <dd>Adds an inline comment that is ignored by cxref.
 </dl>
 
Index: cxref-1.6e/doc/README
===================================================================
--- cxref-1.6e.orig/doc/README
+++ cxref-1.6e/doc/README
@@ -204,22 +204,22 @@ within Emacs.
 
 The functions and key bindings are:
 
-Control-C Control-F - Adds file comments, a /** **/ header at the top of the
+Control-C Control-X Control-F - Adds file comments, a /** **/ header at the top of the
                       file and if it is a .h file then it also adds a #ifndef,
                       #define at the beginning and #endif at the end to stop
                       multiple inclusions.
 
-Control-C f         - Adds comments to a function, the cursor must be on the
+Control-C Control-X f         - Adds comments to a function, the cursor must be on the
                       line containing the start of the function definition when
                       this function is called.  The /*+ ... +*/ comment that is
                       added is of the header type (see the examples) not inline.
 
-Control-C v         - Adds a leading comment to the variable or other definition
+Control-C Control-X v         - Adds a leading comment to the variable or other definition
                       on the current line.
 
-Control-C e         - Adds a trailing comment at the end of the line.
+Control-C Control-X e         - Adds a trailing comment at the end of the line.
 
-Control-C i         - Adds an inline comment that is ignored by cxref.
+Control-C Control-X i         - Adds an inline comment that is ignored by cxref.
 
 --------------------------------------------------------------------------------
 -------------------------------- C Preprocessor --------------------------------
Index: cxref-1.6e/src/latex.c
===================================================================
--- cxref-1.6e.orig/src/latex.c
+++ cxref-1.6e/src/latex.c
@@ -935,8 +935,8 @@ static void WriteLatexTemplate(char* nam
  fputs("\n",template);
  fputs("% Contents (Optional, either here or at end)\n",template);
  fputs("\n",template);
- fputs("%\\markboth{Contents}{Contents}\n",template);
- fputs("%\\tableofcontents\n",template);
+ fputs("\\markboth{Contents}{Contents}\n",template);
+ fputs("\\tableofcontents\n",template);
  fputs("\n",template);
  fputs("\\chapter{Source Files}\n",template);
  fputs("\n",template);
@@ -946,8 +946,8 @@ static void WriteLatexTemplate(char* nam
  fputs("\n",template);
  fputs("% Contents (Optional, either here or at beginning)\n",template);
  fputs("\n",template);
- fputs("\\markboth{Contents}{Contents}\n",template);
- fputs("\\tableofcontents\n",template);
+ fputs("%\\markboth{Contents}{Contents}\n",template);
+ fputs("%\\tableofcontents\n",template);
  fputs("\n",template);
  fputs("\\end{document}\n",template);
 
Index: cxref-1.6e/contrib/cxref.el
===================================================================
--- cxref-1.6e.orig/contrib/cxref.el
+++ cxref-1.6e/contrib/cxref.el
@@ -15,11 +15,11 @@
 
 ;;;###autoload
 (defun cxref-c-mode-common-hook () "Set up the key bindings for cxref in cc-mode"
-  (define-key c-mode-map "\C-c\C-f"  'cxref-file-comment)     ;; Control-C Control-F
-  (define-key c-mode-map "\C-cf"     'cxref-function-comment) ;; Control-C f
-  (define-key c-mode-map "\C-cv"     'cxref-variable-comment) ;; Control-C v
-  (define-key c-mode-map "\C-ce"     'cxref-endline-comment)  ;; Control-C e
-  (define-key c-mode-map "\C-ci"     'cxref-inline-comment)   ;; Control-C i
+  (define-key c-mode-map "\C-c\C-x\C-f"  'cxref-file-comment)     ;; Control-C Control-F
+  (define-key c-mode-map "\C-c\C-xf"     'cxref-function-comment) ;; Control-C f
+  (define-key c-mode-map "\C-c\C-xv"     'cxref-variable-comment) ;; Control-C v
+  (define-key c-mode-map "\C-c\C-xe"     'cxref-endline-comment)  ;; Control-C e
+  (define-key c-mode-map "\C-c\C-xi"     'cxref-inline-comment)   ;; Control-C i
 )
 
 ;;;###autoload