|
DataMuseum.dkPresents historical artifacts from the history of: DKUUG/EUUG Conference tapes |
This is an automatic "excavation" of a thematic subset of
See our Wiki for more about DKUUG/EUUG Conference tapes Excavated with: AutoArchaeologist - Free & Open Source Software. |
top - metrics - downloadIndex: T m
Length: 2712 (0xa98) Types: TextFile Names: »misc.c«
└─⟦87ddcff64⟧ Bits:30001253 CPHDIST85 Tape, 1985 Autumn Conference Copenhagen └─⟦this⟧ »cph85dist/rman/daemon/misc.c«
#ifndef lint static char *RCSid = "$Header: misc.c,v 1.6 85/08/27 15:17:00 broome Exp $"; #endif /* * $Log: misc.c,v $ * Revision 1.6 85/08/27 15:17:00 broome * Last cleanup before release. * * Revision 1.5 85/08/04 16:56:04 broome * Added new "any" routine. * * Revision 1.4 85/07/06 16:56:01 broome * * Revision 1.3 85/07/03 17:34:34 broome * * Revision 1.2 85/07/02 21:05:56 broome * * Revision 1.1 85/06/25 11:23:39 broome * Initial revision */ #include <stdio.h> #include "response.h" #include "defs.h" /* * Search for and print the path name to the topic and * section requested. Duplicates the action used by * `cat()' and `raw()' without actually sending the file. */ dofind (argc, argv) int argc; char *argv[]; { struct where *wp; argv++, argc--; wp = find (argc, argv); if (wp->found) printf ("%d %s\r\n", OK_STAT, wp->man); else notfound (wp); } /* * Toggle debugging information. */ dbug () { debug = !debug; printf ("100 Debugging is now %s\n", debug ? "ON" : "OFF"); } /* * Show a list of all known directories. */ list () { DIR *dir; char *suff; int s; printf ("121-List of all known directories:\r\n"); for (dir = dirs; dir; dir = dir->next) { printf ("120-Man: %s\n120-Cat: %s\r\n120-\tSuffixes: ", dir->man, dir->cat); for (s = 0; suff = dir->suff[s]; s++) printf ("%s ", suff); puts ("\r"); } printf ("122 That's all.\r\n"); } /* * Report that the requested file was not found. */ notfound (wp) struct where *wp; { printf ("%d No entry for %s in ", ERR_NOENT, wp->name); if (wp->section) printf ("section %s of ", wp->section); printf ("the manual.\r\n"); } /* * Allocate enough memory for the given string, then copy it in. */ char * strsave (str) char *str; { char *s; char *malloc(); s = malloc (strlen (str) + 1); strcpy (s, str); return (s); } /* * Return 1 if ch is contained in str, else 0. */ any (ch, str) register char ch; register char *str; { while (*str) if (ch == *str++) return (1); return (0); } /* * Return the lower case version of a given character. * Can't use a macro when arg is of the form `*foo++'. */ tolower (c) register c; { if ('A' <= c && c <= 'Z') return (c - 'A' + 'a'); return (c); } /* * Case insensitive version of strcmp(), returns 0 if equal, 1 if not. */ streql (a, b) register char *a, *b; { while (tolower (*a) == tolower (*b)) { if (*a == '\0') return (0); a++; b++; } return (1); }