version 1.255, 2017/08/26 15:55:46 |
version 1.257, 2018/02/07 20:31:39 |
Line 1373 parse_cat(struct mpage *mpage, int fd) |
|
Line 1373 parse_cat(struct mpage *mpage, int fd) |
|
plen -= 2; |
plen -= 2; |
} |
} |
|
|
mpage->desc = mandoc_strdup(p); |
/* |
|
* Cut off excessive one-line descriptions. |
|
* Bad pages are not worth better heuristics. |
|
*/ |
|
|
|
mpage->desc = mandoc_strndup(p, 150); |
fclose(stream); |
fclose(stream); |
free(title); |
free(title); |
} |
} |
Line 1517 parse_man(struct mpage *mpage, const struct roff_meta |
|
Line 1522 parse_man(struct mpage *mpage, const struct roff_meta |
|
while (' ' == *start) |
while (' ' == *start) |
start++; |
start++; |
|
|
mpage->desc = mandoc_strdup(start); |
/* |
|
* Cut off excessive one-line descriptions. |
|
* Bad pages are not worth better heuristics. |
|
*/ |
|
|
|
mpage->desc = mandoc_strndup(start, 150); |
free(title); |
free(title); |
return; |
return; |
} |
} |
Line 2152 dbwrite(struct dba *dba) |
|
Line 2162 dbwrite(struct dba *dba) |
|
say("", "&%s", tfn); |
say("", "&%s", tfn); |
return; |
return; |
} |
} |
cp1 = cp2 = NULL; |
cp1 = cp2 = MAP_FAILED; |
fd1 = fd2 = -1; |
fd1 = fd2 = -1; |
(void)strlcat(tfn, "/" MANDOC_DB, sizeof(tfn)); |
(void)strlcat(tfn, "/" MANDOC_DB, sizeof(tfn)); |
if (dba_write(tfn, dba) == -1) { |
if (dba_write(tfn, dba) == -1) { |
Line 2178 dbwrite(struct dba *dba) |
|
Line 2188 dbwrite(struct dba *dba) |
|
if (sb1.st_size != sb2.st_size) |
if (sb1.st_size != sb2.st_size) |
goto err; |
goto err; |
if ((cp1 = mmap(NULL, sb1.st_size, PROT_READ, MAP_PRIVATE, |
if ((cp1 = mmap(NULL, sb1.st_size, PROT_READ, MAP_PRIVATE, |
fd1, 0)) == NULL) { |
fd1, 0)) == MAP_FAILED) { |
say(MANDOC_DB, "&mmap"); |
say(MANDOC_DB, "&mmap"); |
goto err; |
goto err; |
} |
} |
if ((cp2 = mmap(NULL, sb2.st_size, PROT_READ, MAP_PRIVATE, |
if ((cp2 = mmap(NULL, sb2.st_size, PROT_READ, MAP_PRIVATE, |
fd2, 0)) == NULL) { |
fd2, 0)) == MAP_FAILED) { |
say(tfn, "&mmap"); |
say(tfn, "&mmap"); |
goto err; |
goto err; |
} |
} |
|
|
say(MANDOC_DB, "Data changed, but cannot replace database"); |
say(MANDOC_DB, "Data changed, but cannot replace database"); |
|
|
out: |
out: |
if (cp1 != NULL) |
if (cp1 != MAP_FAILED) |
munmap(cp1, sb1.st_size); |
munmap(cp1, sb1.st_size); |
if (cp2 != NULL) |
if (cp2 != MAP_FAILED) |
munmap(cp2, sb2.st_size); |
munmap(cp2, sb2.st_size); |
if (fd1 != -1) |
if (fd1 != -1) |
close(fd1); |
close(fd1); |