annotate lib-src/digest-doc.c @ 5285:99de5fd48e87

Tighten up Common Lisp compatibility, #'butlast, #'nbutlast, #'tailp, #'ldiff lisp/ChangeLog addition: 2010-10-14 Aidan Kehoe <kehoea@parhasard.net> * byte-optimize.el (side-effect-free-fns): * cl-macs.el (remf, getf): * cl-extra.el (tailp, cl-set-getf, cl-do-remf): * cl.el (ldiff, endp): Tighten up Common Lisp compatibility for #'ldiff, #'endp, #'tailp; add circularity checking for the first two. #'cl-set-getf and #'cl-do-remf were Lisp implementations of #'plist-put and #'plist-remprop; change the names to aliases, changes the macros that use them to using #'plist-put and #'plist-remprop directly. src/ChangeLog addition: 2010-10-14 Aidan Kehoe <kehoea@parhasard.net> * fns.c (Fnbutlast, Fbutlast): Tighten up Common Lisp compatibility for these two functions; they need to operate on dotted lists without erroring. tests/ChangeLog addition: 2010-10-14 Aidan Kehoe <kehoea@parhasard.net> * automated/lisp-tests.el (x): Test #'nbutlast, #'butlast with dotted lists. Check that #'ldiff and #'tailp don't hang on circular lists; check that #'tailp returns t with circular lists when that is appropriate. Test them both with dotted lists.
author Aidan Kehoe <kehoea@parhasard.net>
date Thu, 14 Oct 2010 18:50:38 +0100
parents ed624ab64583
children 061f4f90f874
Ignore whitespace changes - Everywhere: Within whitespace: At end of lines:
rev   line source
428
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
1 /* Give this program DOCSTR.mm.nn as standard input
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
2 and it outputs to standard output
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
3 a file of nroff output containing the doc strings.
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
4
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
5 See also sorted-doc.c, which produces similar output
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
6 but in texinfo format and sorted by function/variable name. */
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
7
5091
ed624ab64583 fix compile errors/warnings
Ben Wing <ben@xemacs.org>
parents: 2367
diff changeset
8 #ifdef HAVE_CONFIG_H
438
84b14dcb0985 Import from CVS: tag r21-2-27
cvs
parents: 428
diff changeset
9 #include <config.h>
428
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
10 #endif
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
11 #include <stdio.h>
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
12
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
13 int
2367
ecf1ebac70d8 [xemacs-hg @ 2004-11-04 23:05:23 by ben]
ben
parents: 2286
diff changeset
14 main (int argc, char **argv)
428
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
15 {
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
16 register int ch;
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
17 register int notfirst = 0;
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
18
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
19 printf (".TL\n");
613
023b83f4e54b [xemacs-hg @ 2001-06-10 10:42:16 by ben]
ben
parents: 438
diff changeset
20 printf ("Command Summary for XEmacs\n");
023b83f4e54b [xemacs-hg @ 2001-06-10 10:42:16 by ben]
ben
parents: 438
diff changeset
21 printf (".AU\nThe XEmacs Advocacy Group\n");
428
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
22 while ((ch = getchar ()) != EOF)
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
23 {
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
24 if (ch == '\037')
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
25 {
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
26 if (notfirst)
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
27 printf ("\n.DE");
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
28 else
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
29 notfirst = 1;
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
30
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
31 printf ("\n.SH\n");
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
32
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
33 ch = getchar ();
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
34 printf (ch == 'F' ? "Function " : "Variable ");
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
35
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
36 while ((ch = getchar ()) != '\n') /* Changed this line */
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
37 {
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
38 if (ch != EOF)
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
39 putchar (ch);
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
40 else
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
41 {
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
42 ungetc (ch, stdin);
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
43 break;
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
44 }
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
45 }
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
46 printf ("\n.DS L\n");
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
47 }
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
48 else
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
49 putchar (ch);
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
50 }
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
51 return 0;
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
52 }