* mdocml: Rip out the complete "reachable" checks, without replacement.
@ 2014-01-05 4:48 schwarze
0 siblings, 0 replies; only message in thread
From: schwarze @ 2014-01-05 4:48 UTC (permalink / raw)
To: source
Log Message:
-----------
Rip out the complete "reachable" checks, without replacement.
It's a pity i spent time during t2k13 writing this; however,
when an entire concept is busted, let us not look back,
There is no such thing as an unreachable page. Even if you are crazy
enough to put a page starting with ".Dt NAMEI 9" into a file man1/cat.1,
we now make sure that it can be found by all of the following:
Nm=namei Nm=cat sec=1 sec=9
It will always be displayed as:
cat(1) - pathname lookup
So you know that you have to type `man cat` to get at it.
That obsoletes the concept of "unreachable manuals" for good.
Modified Files:
--------------
mdocml:
mandocdb.c
Revision Data
-------------
Index: mandocdb.c
===================================================================
RCS file: /usr/vhosts/mdocml.bsd.lv/cvs/mdocml/mandocdb.c,v
retrieving revision 1.100
retrieving revision 1.101
diff -Lmandocdb.c -Lmandocdb.c -u -p -r1.100 -r1.101
--- mandocdb.c
+++ mandocdb.c
@@ -114,11 +114,6 @@ struct mlink {
struct mlink *next; /* singly linked list */
};
-struct title {
- char *title; /* name(sec/arch) given inside the file */
- char *file; /* file name in case of mismatch */
-};
-
enum stmt {
STMT_DELETE_PAGE = 0, /* delete mpage */
STMT_INSERT_PAGE, /* insert mpage */
@@ -147,7 +142,7 @@ static int mlink_check(struct mpage *,
static void mlink_free(struct mlink *);
static void mlinks_undupe(struct mpage *);
static void mpages_free(void);
-static void mpages_merge(struct mchars *, struct mparse *, int);
+static void mpages_merge(struct mchars *, struct mparse *);
static void parse_cat(struct mpage *);
static void parse_man(struct mpage *, const struct man_node *);
static void parse_mdoc(struct mpage *, const struct mdoc_node *);
@@ -435,7 +430,7 @@ main(int argc, char *argv[])
if (OP_TEST != op)
dbprune();
if (OP_DELETE != op)
- mpages_merge(mc, mp, 0);
+ mpages_merge(mc, mp);
dbclose(1);
} else {
/*
@@ -479,7 +474,7 @@ main(int argc, char *argv[])
if (0 == dbopen(0))
goto out;
- mpages_merge(mc, mp, warnings && !use_all);
+ mpages_merge(mc, mp);
dbclose(0);
if (j + 1 < dirs.sz) {
@@ -945,19 +940,16 @@ mlink_check(struct mpage *mpage, struct
* and filename to determine whether the file is parsable or not.
*/
static void
-mpages_merge(struct mchars *mc, struct mparse *mp, int check_reachable)
+mpages_merge(struct mchars *mc, struct mparse *mp)
{
- struct ohash title_table;
- struct ohash_info title_info, str_info;
+ struct ohash_info str_info;
struct mpage *mpage;
struct mlink *mlink;
struct mdoc *mdoc;
struct man *man;
- struct title *title_entry;
- char *title_str;
const char *cp;
int match;
- unsigned int pslot, tslot;
+ unsigned int pslot;
enum mandoclevel lvl;
str_info.alloc = hash_alloc;
@@ -965,14 +957,6 @@ mpages_merge(struct mchars *mc, struct m
str_info.hfree = hash_free;
str_info.key_offset = offsetof(struct str, key);
- if (check_reachable) {
- title_info.alloc = hash_alloc;
- title_info.halloc = hash_halloc;
- title_info.hfree = hash_free;
- title_info.key_offset = offsetof(struct title, title);
- ohash_init(&title_table, 6, &title_info);
- }
-
mpage = ohash_first(&mpages, &pslot);
while (NULL != mpage) {
mlinks_undupe(mpage);
@@ -1059,55 +1043,9 @@ mpages_merge(struct mchars *mc, struct m
else
parse_cat(mpage);
- /*
- * Build a title string for the file. If it matches
- * the location of the file, remember the title as
- * found; else, remember it as missing.
- */
-
- if (check_reachable) {
- if (-1 == asprintf(&title_str, "%s(%s%s%s)",
- mpage->title, mpage->sec,
- '\0' == *mpage->arch ? "" : "/",
- mpage->arch)) {
- perror(NULL);
- exit((int)MANDOCLEVEL_SYSERR);
- }
- tslot = ohash_qlookup(&title_table, title_str);
- title_entry = ohash_find(&title_table, tslot);
- if (NULL == title_entry) {
- title_entry = mandoc_malloc(
- sizeof(struct title));
- title_entry->title = title_str;
- title_entry->file = mandoc_strdup(
- match ? "" : mpage->mlinks->file);
- ohash_insert(&title_table, tslot,
- title_entry);
- } else {
- if (match)
- *title_entry->file = '\0';
- free(title_str);
- }
- }
-
dbindex(mpage, mc);
ohash_delete(&strings);
mpage = ohash_next(&mpages, &pslot);
- }
-
- if (check_reachable) {
- title_entry = ohash_first(&title_table, &tslot);
- while (NULL != title_entry) {
- if ('\0' != *title_entry->file)
- say(title_entry->file,
- "Probably unreachable, title is %s",
- title_entry->title);
- free(title_entry->title);
- free(title_entry->file);
- free(title_entry);
- title_entry = ohash_next(&title_table, &tslot);
- }
- ohash_delete(&title_table);
}
}
--
To unsubscribe send an email to source+unsubscribe@mdocml.bsd.lv
^ permalink raw reply [flat|nested] only message in thread
only message in thread, other threads:[~2014-01-05 4:48 UTC | newest]
Thread overview: (only message) (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2014-01-05 4:48 mdocml: Rip out the complete "reachable" checks, without replacement schwarze
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).