diff options
author | Glenn Morris <rgm@gnu.org> | 2010-10-22 19:46:06 -0700 |
---|---|---|
committer | Glenn Morris <rgm@gnu.org> | 2010-10-22 19:46:06 -0700 |
commit | 17284e30244d0dd635708cec51e19bafcd9a528b (patch) | |
tree | 64514b16853eff98d965b443da8be80cacff99f8 /lib-src | |
parent | aa02a29f612975623ce2f7a7a9906f5a2a14e0ba (diff) | |
download | emacs-17284e30244d0dd635708cec51e19bafcd9a528b.tar.gz |
Replace digest-doc and sorted-doc C programs with Lisp commands.
* lib-src/digest-doc.c, lib-src/sorted-doc.c: Remove files.
* lib-src/Makefile.in (UTILITIES): Remove digest-doc and sorted-doc.
(digest-doc${EXEEXT}, sorted-doc${EXEEXT}): Remove rules.
* lib-src/makefile.w32-in (ALL): Remove digest-doc and sorted-doc.
($(BLD)/sorted-doc.exe, $(BLD)/digest-doc.exe, sorted-doc, digest-doc)
($(BLD)/digest-doc.$(O), $(BLD)/sorted-doc.$(O)): Remove rules.
(install): Don't install digest-doc.exe or sorted-doc.exe.
* lisp/help-fns.el (doc-file-to-man, doc-file-to-info): New commands.
* doc/lispref/help.texi (Documentation Basics): Remove mentions of
digest-doc and sorted-doc.
* INSTALL, nt/README, nt/README.W32: Do not mention digest-doc and sorted-doc.
* etc/NEWS: Mention this change.
Diffstat (limited to 'lib-src')
-rw-r--r-- | lib-src/ChangeLog | 10 | ||||
-rw-r--r-- | lib-src/Makefile.in | 9 | ||||
-rw-r--r-- | lib-src/digest-doc.c | 81 | ||||
-rw-r--r-- | lib-src/makefile.w32-in | 21 | ||||
-rw-r--r-- | lib-src/sorted-doc.c | 296 |
5 files changed, 12 insertions, 405 deletions
diff --git a/lib-src/ChangeLog b/lib-src/ChangeLog index 7b3255bb14d..9e43da96c5c 100644 --- a/lib-src/ChangeLog +++ b/lib-src/ChangeLog @@ -1,3 +1,13 @@ +2010-10-23 Glenn Morris <rgm@gnu.org> + + * digest-doc.c, sorted-doc.c: Remove files. + * Makefile.in (UTILITIES): Remove digest-doc and sorted-doc. + (digest-doc${EXEEXT}, sorted-doc${EXEEXT}): Remove rules. + * makefile.w32-in (ALL): Remove digest-doc and sorted-doc. + ($(BLD)/sorted-doc.exe, $(BLD)/digest-doc.exe, sorted-doc, digest-doc) + ($(BLD)/digest-doc.$(O), $(BLD)/sorted-doc.$(O)): Remove rules. + (install): Don't install digest-doc.exe or sorted-doc.exe. + 2010-10-10 Dan Nicolaescu <dann@ics.uci.edu> * Makefile.in (PROFILING_LDFLAGS): Remove, not needed. diff --git a/lib-src/Makefile.in b/lib-src/Makefile.in index b90b19b69b6..b9eea846dc8 100644 --- a/lib-src/Makefile.in +++ b/lib-src/Makefile.in @@ -118,8 +118,7 @@ STAMP_INST_SCRIPTS = stamp-rcs-checkin stamp-grep-changelog # Things that Emacs runs internally, or during the build process, # which should not be installed in bindir. -UTILITIES = profile${EXEEXT} digest-doc${EXEEXT} sorted-doc${EXEEXT} \ - movemail${EXEEXT} fakemail${EXEEXT} \ +UTILITIES = profile${EXEEXT} movemail${EXEEXT} fakemail${EXEEXT} \ hexl${EXEEXT} update-game-score${EXEEXT} DONT_INSTALL= test-distrib${EXEEXT} make-docfile${EXEEXT} @@ -353,12 +352,6 @@ make-docfile${EXEEXT}: ${srcdir}/make-docfile.c ../src/config.h $(CC) ${ALL_CFLAGS} ${srcdir}/make-docfile.c $(LOADLIBES) \ -o make-docfile -digest-doc${EXEEXT}: ${srcdir}/digest-doc.c - $(CC) ${ALL_CFLAGS} ${srcdir}/digest-doc.c $(LOADLIBES) -o digest-doc - -sorted-doc${EXEEXT}: ${srcdir}/sorted-doc.c - $(CC) ${ALL_CFLAGS} ${srcdir}/sorted-doc.c $(LOADLIBES) -o sorted-doc - movemail${EXEEXT}: movemail.o pop.o $(GETOPTDEPS) $(CC) ${LINK_CFLAGS} ${MOVE_FLAGS} movemail.o pop.o \ $(GETOPTOBJS) $(LOADLIBES) $(LIBS_MOVE) -o movemail diff --git a/lib-src/digest-doc.c b/lib-src/digest-doc.c deleted file mode 100644 index b3cb58e6d99..00000000000 --- a/lib-src/digest-doc.c +++ /dev/null @@ -1,81 +0,0 @@ -/* Give this program DOC-mm.nn.oo as standard input and it outputs to - standard output a file of nroff output containing the doc strings. - -Copyright (C) 1987, 1994, 2001, 2002, 2003, 2004, 2005, 2006, 2007, - 2008, 2009, 2010 Free Software Foundation, Inc. - -This file is part of GNU Emacs. - -GNU Emacs is free software: you can redistribute it and/or modify -it under the terms of the GNU General Public License as published by -the Free Software Foundation, either version 3 of the License, or -(at your option) any later version. - -GNU Emacs is distributed in the hope that it will be useful, -but WITHOUT ANY WARRANTY; without even the implied warranty of -MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the -GNU General Public License for more details. - -You should have received a copy of the GNU General Public License -along with GNU Emacs. If not, see <http://www.gnu.org/licenses/>. - - -See also sorted-doc.c, which produces similar output -but in texinfo format and sorted by function/variable name. */ - -#include <stdio.h> - -#ifdef DOS_NT -#include <fcntl.h> /* for O_BINARY */ -#include <io.h> /* for setmode */ -#endif - -int -main (void) -{ - register int ch; - register int notfirst = 0; - -#ifdef DOS_NT - /* DOC is a binary file. */ - if (!isatty (fileno (stdin))) - setmode (fileno (stdin), O_BINARY); -#endif - - printf (".TL\n"); - printf ("Command Summary for GNU Emacs\n"); - printf (".AU\nRichard M. Stallman\n"); - while ((ch = getchar ()) != EOF) - { - if (ch == '\037') - { - if (notfirst) - printf ("\n.DE"); - else - notfirst = 1; - - printf ("\n.SH\n"); - - ch = getchar (); - printf (ch == 'F' ? "Function " : "Variable "); - - while ((ch = getchar ()) != '\n') /* Changed this line */ - { - if (ch != EOF) - putchar (ch); - else - { - ungetc (ch, stdin); - break; - } - } - printf ("\n.DS L\n"); - } - else - putchar (ch); - } - return 0; -} - -/* arch-tag: 2ba2c9b0-4157-4eba-bd9f-967e3677e35f - (do not change this comment) */ diff --git a/lib-src/makefile.w32-in b/lib-src/makefile.w32-in index 25fb499cf3b..dc6406d7025 100644 --- a/lib-src/makefile.w32-in +++ b/lib-src/makefile.w32-in @@ -18,7 +18,7 @@ # along with GNU Emacs. If not, see <http://www.gnu.org/licenses/>. -ALL = make-docfile hexl ctags etags movemail ebrowse sorted-doc digest-doc emacsclient +ALL = make-docfile hexl ctags etags movemail ebrowse emacsclient .PHONY: $(ALL) @@ -36,10 +36,6 @@ $(BLD)/hexl.exe: $(BLD)/hexl.$(O) $(LINK) $(LINK_OUT)$@ $(LINK_FLAGS) $(BLD)/hexl.$(O) $(LIBS) $(BLD)/fakemail.exe: $(BLD)/fakemail.$(O) $(BLD)/ntlib.$(O) $(LINK) $(LINK_OUT)$@ $(LINK_FLAGS) $(BLD)/fakemail.$(O) $(BLD)/ntlib.$(O) $(LIBS) -$(BLD)/sorted-doc.exe: $(BLD)/sorted-doc.$(O) - $(LINK) $(LINK_OUT)$@ $(LINK_FLAGS) $(BLD)/sorted-doc.$(O) $(LIBS) -$(BLD)/digest-doc.exe: $(BLD)/digest-doc.$(O) - $(LINK) $(LINK_OUT)$@ $(LINK_FLAGS) $(BLD)/digest-doc.$(O) $(LIBS) $(BLD)/test-distrib.exe: $(BLD)/test-distrib.$(O) $(LINK) $(LINK_OUT)$@ $(LINK_FLAGS) $(BLD)/test-distrib.$(O) $(LIBS) @@ -50,8 +46,6 @@ ebrowse: stamp_BLD $(BLD)/ebrowse.exe hexl: stamp_BLD $(BLD)/hexl.exe movemail: stamp_BLD $(BLD)/movemail.exe fakemail: stamp_BLD $(BLD)/fakemail.exe -sorted-doc: stamp_BLD $(BLD)/sorted-doc.exe -digest-doc: stamp_BLD $(BLD)/digest-doc.exe emacsclient: stamp_BLD $(BLD)/emacsclient.exe $(BLD)/emacsclientw.exe test-distrib: stamp_BLD $(BLD)/test-distrib.exe @@ -335,8 +329,6 @@ install: $(INSTALL_FILES) $(CP) $(BLD)/ctags.exe $(INSTALL_DIR)/bin $(CP) $(BLD)/hexl.exe $(INSTALL_DIR)/bin $(CP) $(BLD)/movemail.exe $(INSTALL_DIR)/bin - $(CP) $(BLD)/sorted-doc.exe $(INSTALL_DIR)/bin - $(CP) $(BLD)/digest-doc.exe $(INSTALL_DIR)/bin $(CP) $(BLD)/emacsclient.exe $(INSTALL_DIR)/bin $(CP) $(BLD)/emacsclientw.exe $(INSTALL_DIR)/bin - mkdir "$(INSTALL_DIR)/etc" @@ -404,9 +396,6 @@ $(BLD)/ctags.$(O) : \ $(SRC)/ntlib.h \ $(SRC)/getopt.h -$(BLD)/digest-doc.$(O) : \ - $(SRC)/digest-doc.c - $(BLD)/emacsclient.$(O) : \ $(SRC)/emacsclient.c \ $(EMACS_ROOT)/src/s/ms-w32.h \ @@ -496,12 +485,6 @@ $(BLD)/profile.$(O) : \ $(BLD)/qsort.$(O) : \ $(SRC)/qsort.c -$(BLD)/sorted-doc.$(O) : \ - $(SRC)/sorted-doc.c \ - $(EMACS_ROOT)/src/s/ms-w32.h \ - $(EMACS_ROOT)/src/m/intel386.h \ - $(EMACS_ROOT)/src/config.h - $(BLD)/tcp.$(O) : \ $(SRC)/tcp.c @@ -519,8 +502,6 @@ $(BLD)/timer.$(O) : \ # $(BLD)/make-docfile.$(O) $(BLD)/hexl.$(O) $(BLD)/fakemail.$(O): stamp_BLD -$(BLD)/sorted-doc.$(O) $(BLD)/digest-doc.$(O): stamp_BLD - $(BLD)/test-distrib.$(O) $(GETOPTOBJS) $(MOVEMAILOBJS): stamp_BLD $(BLD)/emacsclient.$(O) $(BLD)/etags.$(O) $(BLD)/regex.$(O): stamp_BLD diff --git a/lib-src/sorted-doc.c b/lib-src/sorted-doc.c deleted file mode 100644 index 4fe830e4013..00000000000 --- a/lib-src/sorted-doc.c +++ /dev/null @@ -1,296 +0,0 @@ -/* Give this program DOC-mm.nn.oo as standard input and it outputs to - standard output a file of texinfo input containing the doc strings. - -Copyright (C) 1989, 1992, 1994, 1996, 1999, 2000, 2001, 2002, 2003, - 2004, 2005, 2006, 2007, 2008, 2009, 2010 Free Software Foundation, Inc. - -This file is part of GNU Emacs. - -GNU Emacs is free software: you can redistribute it and/or modify -it under the terms of the GNU General Public License as published by -the Free Software Foundation, either version 3 of the License, or -(at your option) any later version. - -GNU Emacs is distributed in the hope that it will be useful, -but WITHOUT ANY WARRANTY; without even the implied warranty of -MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the -GNU General Public License for more details. - -You should have received a copy of the GNU General Public License -along with GNU Emacs. If not, see <http://www.gnu.org/licenses/>. */ - - -/* This version sorts the output by function name. */ - -#ifdef HAVE_CONFIG_H -#include <config.h> -#endif - -#include <stdio.h> -#include <ctype.h> -#ifdef DOS_NT -#include <fcntl.h> /* for O_BINARY */ -#include <io.h> /* for setmode */ -#endif -#ifndef HAVE_STDLIB_H /* config.h includes stdlib. */ -#ifndef WINDOWSNT /* src/s/ms-w32.h includes stdlib.h */ -extern char *malloc (); -#endif -#endif - -#define NUL '\0' -#define MARKER '\037' - -#define DEBUG 0 - -typedef struct line LINE; - -struct line -{ - LINE *next; /* ptr to next or NULL */ - char *line; /* text of the line */ -}; - -typedef struct docstr DOCSTR; - -struct docstr /* Allocated thing for an entry. */ -{ - DOCSTR *next; /* next in the chain */ - char *name; /* name of the function or var */ - LINE *first; /* first line of doc text. */ - char type; /* 'F' for function, 'V' for variable */ -}; - - -/* Print error message. `s1' is printf control string, `s2' is arg for it. */ - -void -error (const char *s1, const char *s2) -{ - fprintf (stderr, "sorted-doc: "); - fprintf (stderr, s1, s2); - fprintf (stderr, "\n"); -} - -/* Print error message and exit. */ - -void -fatal (const char *s1, const char *s2) -{ - error (s1, s2); - exit (EXIT_FAILURE); -} - -/* Like malloc but get fatal error if memory is exhausted. */ - -char * -xmalloc (int size) -{ - char *result = malloc ((unsigned)size); - if (result == NULL) - fatal ("%s", "virtual memory exhausted"); - return result; -} - -char * -xstrdup (const char *str) -{ - char *buf = xmalloc (strlen (str) + 1); - (void) strcpy (buf, str); - return (buf); -} - -/* Comparison function for qsort to call. */ - -int -cmpdoc (const void *va, const void *vb) -{ - DOCSTR *const *a = va; - DOCSTR *const *b = vb; - register int val = strcmp ((*a)->name, (*b)->name); - if (val) return val; - return (*a)->type - (*b)->type; -} - -enum state -{ - WAITING, BEG_NAME, NAME_GET, BEG_DESC, DESC_GET -}; - -const char *states[] = -{ - "WAITING", "BEG_NAME", "NAME_GET", "BEG_DESC", "DESC_GET" -}; - -int -main (void) -{ - register DOCSTR *dp = NULL; /* allocated DOCSTR */ - register LINE *lp = NULL; /* allocated line */ - register char *bp; /* ptr inside line buffer */ - register enum state state = WAITING; /* state at start */ - int cnt = 0; /* number of DOCSTRs read */ - - DOCSTR *docs = NULL; /* chain of allocated DOCSTRS */ - char buf[512]; /* line buffer */ - -#ifdef DOS_NT - /* DOC is a binary file. */ - if (!isatty (fileno (stdin))) - setmode (fileno (stdin), O_BINARY); -#endif - - bp = buf; - - while (1) /* process one char at a time */ - { - /* this char from the DOCSTR file */ - register int ch = getchar (); - - /* Beginnings */ - - if (state == WAITING) - { - if (ch == MARKER) - state = BEG_NAME; - } - else if (state == BEG_NAME) - { - cnt++; - if (dp == NULL) /* first dp allocated */ - { - docs = dp = (DOCSTR*) xmalloc (sizeof (DOCSTR)); - } - else /* all the rest */ - { - dp->next = (DOCSTR*) xmalloc (sizeof (DOCSTR)); - dp = dp->next; - } - lp = NULL; - dp->next = NULL; - bp = buf; - state = NAME_GET; - /* Record whether function or variable. */ - dp->type = ch; - ch = getchar (); - } - else if (state == BEG_DESC) - { - if (lp == NULL) /* first line for dp */ - { - dp->first = lp = (LINE*)xmalloc (sizeof (LINE)); - } - else /* continuing lines */ - { - lp->next = (LINE*)xmalloc (sizeof (LINE)); - lp = lp->next; - } - lp->next = NULL; - bp = buf; - state = DESC_GET; - } - - /* process gets */ - - if (state == NAME_GET || state == DESC_GET) - { - if (ch != MARKER && ch != '\n' && ch != EOF) - { - *bp++ = ch; - } - else /* saving and changing state */ - { - *bp = NUL; - bp = xstrdup (buf); - - if (state == NAME_GET) - dp->name = bp; - else - lp->line = bp; - - bp = buf; - state = (ch == MARKER) ? BEG_NAME : BEG_DESC; - } - } /* NAME_GET || DESC_GET */ - if (ch == EOF) - break; - } - - { - DOCSTR **array; - register int i; /* counter */ - - /* build array of ptrs to DOCSTRs */ - - array = (DOCSTR**)xmalloc (cnt * sizeof (*array)); - for (dp = docs, i = 0; dp != NULL ; dp = dp->next) - array[i++] = dp; - - /* sort the array by name; within each name, by type */ - - qsort ((char*)array, cnt, sizeof (DOCSTR*), cmpdoc); - - /* write the output header */ - - printf ("\\input texinfo @c -*-texinfo-*-\n"); - printf ("@setfilename ../info/summary\n"); - printf ("@settitle Command Summary for GNU Emacs\n"); - printf ("@finalout\n"); - printf ("@unnumbered Command Summary for GNU Emacs\n"); - printf ("@table @asis\n"); - printf ("\n"); - printf ("@iftex\n"); - printf ("@global@let@ITEM@item\n"); - printf ("@def@item{@filbreak@vskip5pt@ITEM}\n"); - printf ("@font@tensy cmsy10 scaled @magstephalf\n"); - printf ("@font@teni cmmi10 scaled @magstephalf\n"); - printf ("@def\\{{@tensy@char110}}\n"); /* this backslash goes with cmr10 */ - printf ("@def|{{@tensy@char106}}\n"); - printf ("@def@{{{@tensy@char102}}\n"); - printf ("@def@}{{@tensy@char103}}\n"); - printf ("@def<{{@teni@char62}}\n"); - printf ("@def>{{@teni@char60}}\n"); - printf ("@chardef@@64\n"); - printf ("@catcode43=12\n"); - printf ("@tableindent-0.2in\n"); - printf ("@end iftex\n"); - - /* print each function from the array */ - - for (i = 0; i < cnt; i++) - { - printf ("\n@item %s @code{%s}\n@display\n", - array[i]->type == 'F' ? "Function" : "Variable", - array[i]->name); - - for (lp = array[i]->first; lp != NULL ; lp = lp->next) - { - for (bp = lp->line; *bp; bp++) - { - /* the characters "@{}" need special treatment */ - if (*bp == '@' || *bp == '{' || *bp == '}') - { - putchar('@'); - } - putchar(*bp); - } - putchar ('\n'); - } - printf("@end display\n"); - /* Try to avoid a save size overflow in the TeX output - routine. */ - if (i%100 == 0 && i > 0 && i != cnt) - printf("\n@end table\n@table @asis\n"); - } - - printf ("@end table\n"); - printf ("@bye\n"); - } - - return EXIT_SUCCESS; -} - -/* arch-tag: ce28f204-1e70-4b34-8210-3d54a5662071 - (do not change this comment) */ - -/* sorted-doc.c ends here */ |