say
null, entrnc, dprssn, enter, stream, pour, say, lock, throw,
say = vocab(DECR(s,a,y,\0,\0),2, 0);
null, entrnc, dprssn, enter, stream, pour, say, lock, throw,
if (verb == say && wd2[0] != 0)
if (verb == say)
if (wd2[0] != 0 && verb != say)
if (verb == say)
say(mlink->file, "Man source exists: %s", buf);
say(mlink->file, "Section \"%s\" manual in %s directory",
say(mlink->file, "Architecture \"%s\" manual in "
say(mlink->file, "Name missing in NAME section");
say(mlink->file, "&open");
say(mlink->file, "No one-line description, "
say(mlink->file, "&fopen");
say(mlink->file,
say(mlink->file, "Cannot find NAME section");
say(mlink->file, "No dash in title line, "
static void say(const char *, const char *, ...)
say(mpage->mlinks->file,
say(mpage->mlinks->file,
say(mlink->file, "Adding to database");
say(file, "Deleting from database");
say(MANDOC_DB, "&unlink");
say(MANDOC_DB, "&rename");
say("", "&%s", tfn);
say(tfn, "&dba_write");
say(MANDOC_DB, "&open");
say(tfn, "&open");
say(MANDOC_DB, "&fstat");
say(tfn, "&fstat");
say(MANDOC_DB, "&mmap");
say(tfn, "&mmap");
say(MANDOC_DB, "Data changed, but cannot replace database");
say("", "getcwd: %s", startdir);
say("", "&chdir %s", startdir);
say("", "&%s: realpath", targetdir);
say("", "&chdir");
say("", "Filename too long");
say(MANDOC_DB, "%s: Automatically recreating"
say("", "Empty manpath");
say("", "&fts_open");
say(path, "&realpath");
if (warnings) say("",
say(path, "&stat");
say(path, "Extraneous file");
say(path,
say(path, "Skip html");
say(path, "Skip ps");
say(path, "Skip pdf");
say(path, "Wrong filename suffix");
say(path, "Filename too long");
say(path, "Not a regular file");
say(path, "Unknown directory part");
say(path, "Extraneous directory part");
say(infile, "&lstat");
say(infile, "Not a regular file");
say(infile, "&realpath");
say("", "%s: outside base directory", infile);
say(infile, "&stat");
say(infile, "&realpath");
say(start, "Filename too long");
say("Patching file %s using Plan %s...\n", filename,
say("(Creating file %s...)\n", filename);
say("block too large to mmap\n");
say("Warning: this file doesn't appear "
say("Good. This file appears to be the %s version.\n",
say("Warning: this file doesn't appear "
say("Good. This file appears to be the %s version.\n",
say("No such line %ld in input file, ignoring\n", line);
say("il=%ld lfl=%ld\n", input_lines, last_frozen_line);
say("Not enough memory to try swapped hunk! Assuming unswapped.\n");
say("Ignoring previously applied (or reversed) patch.\n");
say("%seversed (or previously applied) patch detected! %s -R.",
say("Hunk #%d ignored at %ld.\n",
say("Hunk #%d failed at %ld.\n",
say("Hunk #%d succeeded at %ld",
say(" with fuzz %ld", fuzz);
say(" (offset %ld line%s)",
say(".\n");
say("\n\nRan out of memory using Plan A--trying again...\n\n");
say("Removing %s (empty after patching).\n",
say("%d out of %d hunks %s--saving rejects to %s\n",
say("%d out of %d hunks %s\n",
say("Warning, the ``-b suffix'' option has been"
say("Empty context always matches.\n");
say("Offset changing from %ld to %ld\n",
say("Offset changing from %ld to %ld\n",
say("Out-of-sync patch, lines %ld,%ld--mangled text or line numbers, maybe?\n",
say("oldchar = '%c', newchar = '%c'\n",
say("Not enough memory to swap next hunk!\n");
say("done\n");
say("Hmm...");
say(" Ignoring the trailing garbage.\ndone\n");
say(" I can't seem to find a patch in there anywhere.\n");
say(" %sooks like %s to me...\n",
say("(Patch is indented %d space%s.)\n", p_indent,
say("No file to patch. Skipping...\n");
say("Skipping patch...\n");
say("The text leading up to this was:\n--------------------------\n");
say("|%s", buf);
say("--------------------------\n");
say("%s\n%s\n%s\n",
say("Moving %s to %s.\n", orig, bakname);
say("fetchname %s %d\n", at, strip_leading);
say("Moving %s to stdout.\n", from);
say("Can't backup %s, output is in %s: %s\n", to, from,
say("Moving %s to %s.\n", from, to);
say("Can't create %s, output is in %s: %s\n",
void say(const char *, ...)