OBS User unknown 2008-08-15 23:03:11 +00:00 committed by Git OBS Bridge
parent aaa53c3859
commit dd053d7652
9 changed files with 315 additions and 276 deletions

View File

@ -1,3 +0,0 @@
version https://git-lfs.github.com/spec/v1
oid sha256:60794461043462dc1d56fe3e2b1918d837cdc348f7242594df953e3589f994ec
size 1234479

168
man-db-2.5.2-catp.dif Normal file
View File

@ -0,0 +1,168 @@
--- include/manconfig.h.in
+++ include/manconfig.h.in 2008-04-21 13:32:56.000000000 +0200
@@ -375,8 +375,10 @@ extern char *program_name; /* the basena
#define NOT_FOUND 16 /* No action was taken */
/* System or user catpaths? Allow bitwise disjunctions of these. */
-#define SYSTEM_CAT 1
-#define USER_CAT 2
+#define SYSTEM_CATP 1
+#define USER_CATP 2
+#define FILE_CATP 4
+#define WHATIS_CATP 8
/* string macros */
#define STREQ(a,b) (strcmp(a,b) == 0)
--- src/catman.c
+++ src/catman.c 2008-01-30 12:02:21.000000000 +0100
@@ -450,7 +450,7 @@ int main (int argc, char *argv[])
char *catpath;
size_t len;
- catpath = get_catpath (*mp, SYSTEM_CAT | USER_CAT);
+ catpath = get_catpath (*mp, SYSTEM_CATP|USER_CATP);
if (catpath) {
if (is_directory (catpath) != 1) {
--- src/man.c
+++ src/man.c 2008-04-21 17:53:02.000000000 +0200
@@ -1249,8 +1304,7 @@ static pipeline *make_roff_command (cons
#ifdef ALT_EXT_FORMAT
/* Check both external formatter locations */
if (dir && !recode) {
- char *catpath = get_catpath
- (dir, global_manpath ? SYSTEM_CAT : USER_CAT);
+ char *catpath = get_catpath (dir, global_manpath ? SYSTEM_CATP : USER_CATP);
/* If we have an alternate catpath */
if (catpath) {
@@ -2366,8 +2450,7 @@ static char *find_cat_file (const char *
*/
if (!STREQ (man_file, original)) {
global_manpath = is_global_mandir (man_file);
- cat_path = get_catpath
- (man_file, global_manpath ? SYSTEM_CAT : USER_CAT);
+ cat_path = get_catpath (man_file, (global_manpath ? SYSTEM_CATP : USER_CATP)|FILE_CATP);
if (cat_path) {
cat_file = convert_name (cat_path, 0);
@@ -2394,8 +2477,7 @@ static char *find_cat_file (const char *
}
global_manpath = is_global_mandir (original);
- cat_path = get_catpath
- (original, global_manpath ? SYSTEM_CAT : USER_CAT);
+ cat_path = get_catpath (original, (global_manpath ? SYSTEM_CATP : USER_CATP)|FILE_CATP);
if (cat_path) {
cat_file = convert_name (cat_path, 0);
@@ -2884,9 +2966,7 @@ static int display_database (struct cand
if (access (file, R_OK) != 0) {
char *catpath;
- catpath = get_catpath (candp->path,
- global_manpath ? SYSTEM_CAT
- : USER_CAT);
+ catpath = get_catpath (candp->path, global_manpath ? SYSTEM_CATP : USER_CATP);
if (catpath && strcmp (catpath, candp->path) != 0) {
file = make_filename (catpath, name,
@@ -3001,7 +3081,7 @@ static int try_db (const char *manpath,
/* find out where our db for this manpath should be */
- catpath = get_catpath (manpath, global_manpath ? SYSTEM_CAT : USER_CAT);
+ catpath = get_catpath (manpath, (global_manpath ? SYSTEM_CATP : USER_CATP)|FILE_CATP);
if (catpath) {
database = mkdbname (catpath);
free (catpath);
--- src/mandb.c
+++ src/mandb.c 2008-01-30 12:01:40.000000000 +0100
@@ -484,10 +486,13 @@ static short process_manpath (const char
short amount = 0;
if (global_manpath) { /* system db */
- catpath = get_catpath (manpath, SYSTEM_CAT);
- assert (catpath);
+ catpath = get_catpath (manpath, SYSTEM_CATP);
+ if (!catpath) {
+ error (0, 0, _("warning: no system cat path for man path %s"), manpath);
+ return amount;
+ }
} else { /* user db */
- catpath = get_catpath (manpath, USER_CAT);
+ catpath = get_catpath (manpath, USER_CATP);
if (!catpath)
catpath = xstrdup (manpath);
}
--- src/manp.c
+++ src/manp.c 2008-01-30 12:01:03.000000000 +0100
@@ -1134,8 +1145,8 @@ char *get_catpath (const char *name, int
struct list *list;
for (list = namestore; list; list = list->next)
- if (((cattype & SYSTEM_CAT) && list->flag == MANDB_MAP) ||
- ((cattype & USER_CAT) && list->flag == MANDB_MAP_USER)) {
+ if (((cattype & SYSTEM_CATP) && list->flag == MANDB_MAP) ||
+ ((cattype & USER_CATP) && list->flag == MANDB_MAP_USER)) {
size_t manlen = strlen (list->key);
if (STRNEQ (name, list->key, manlen)) {
const char *suffix = name + manlen;
@@ -1143,16 +1154,30 @@ char *get_catpath (const char *name, int
if (*suffix == '/') {
++suffix;
- catpath = appendstr (catpath, "/",
- NULL);
+ catpath = appendstr (catpath, "/", NULL);
}
if (STRNEQ (suffix, "man", 3)) {
suffix += 3;
- catpath = appendstr (catpath, "cat",
- NULL);
+ catpath = appendstr (catpath, "cat", NULL);
}
catpath = appendstr (catpath, suffix, NULL);
- return catpath;
+ if (cattype & FILE_CATP)
+ return catpath;
+ if (is_directory (catpath) == 1)
+ return catpath;
+ if ((cattype & WHATIS_CATP) == 0) {
+ const char locale_delims[] = "_@,.";
+ const char *delim;
+ for (delim = locale_delims; *delim != '\0'; ++delim) {
+ char * tmp = strrchr (catpath, *delim);
+ if (!tmp)
+ continue;
+ *tmp = '\0';
+ if (is_directory (catpath) == 1)
+ return catpath;
+ }
+ }
+ free (catpath);
}
}
--- src/whatis.c
+++ src/whatis.c 2008-04-21 13:21:57.000000000 +0200
@@ -651,7 +651,7 @@ static int search (char *page)
debug ("lower(%s) = \"%s\"\n", page, lowpage);
for (mp = manpathlist; *mp; mp++) {
- catpath = get_catpath (*mp, SYSTEM_CAT | USER_CAT);
+ catpath = get_catpath (*mp, SYSTEM_CATP|USER_CATP|WHATIS_CATP);
if (catpath) {
database = mkdbname (catpath);
--- src/straycats.c
+++ src/straycats.c 2008-04-21 15:47:04.000000000 +0200
@@ -338,7 +343,7 @@ int straycats (const char *manpath)
return 0;
}
- catpath = get_catpath (manpath, SYSTEM_CAT | USER_CAT);
+ catpath = get_catpath (manpath, SYSTEM_CATP|USER_CATP);
/* look in the usual catpath location */
mandir = xstrdup (manpath);

View File

@ -1,5 +1,5 @@
--- src/encodings.c
+++ src/encodings.c 2008-04-21 13:09:34.436233193 +0200
+++ src/encodings.c 2008-08-12 15:26:22.959763175 +0200
@@ -106,6 +106,11 @@ static struct directory_entry directory_
{ "cs", "ISO-8859-2", "ISO-8859-2" }, /* Czech */
{ "hr", "ISO-8859-2", "ISO-8859-2" }, /* Croatian */
@ -12,23 +12,23 @@
{ "ja", "EUC-JP", "EUC-JP" }, /* Japanese */
{ "ko", "EUC-KR", "EUC-KR" }, /* Korean */
{ "pl", "ISO-8859-2", "ISO-8859-2" }, /* Polish */
@@ -205,6 +210,7 @@ static struct charset_entry charset_tabl
{ "BIG5HKSCS", "nippon" },
@@ -208,6 +213,7 @@ static struct charset_entry charset_tabl
{ "EUC-CN", "nippon" },
{ "EUC-JP", "nippon" },
{ "EUC-TW", "nippon" },
+ { "GB18030", "nippon" },
{ "GBK", "nippon" },
#endif /* MULTIBYTE_GROFF */
@@ -263,6 +269,7 @@ static struct less_charset_entry less_ch
{ "UTF-8", "utf-8" },
@@ -281,6 +287,7 @@ static struct less_charset_entry less_ch
{ "UTF-8", "utf-8", NULL },
#ifdef MULTIBYTE_GROFF
+ { "GB18030", "zh" },
{ "EUC-JP", "ja" },
{ "KOI8-R", "koi8-r" },
+ { "GB18030", "zh", NULL },
{ "EUC-JP", "iso8859", "japanese-ujis" },
{ "KOI8-R", "koi8-r", NULL },
#endif /* MULTIBYTE_GROFF */
@@ -387,6 +394,13 @@ char *get_page_encoding (const char *lan
@@ -405,6 +412,13 @@ char *get_page_encoding (const char *lan
* roff encoding = UTF-8
* output encoding = UTF-8
* EUC-JP -> iconv -> UTF-8 -> groff -Tutf8 -> UTF-8
@ -42,21 +42,21 @@
*/
const char *get_source_encoding (const char *lang)
{
@@ -527,7 +541,7 @@ static int compatible_encodings (const c
@@ -545,7 +559,7 @@ static int compatible_encodings (const c
*/
if ((STREQ (input, "BIG5") || STREQ (input, "BIG5HKSCS") ||
STREQ (input, "EUC-JP") ||
- STREQ (input, "EUC-CN") || STREQ (input, "GBK") ||
+ STREQ (input, "EUC-CN") || STREQ (input, "GB18030") || STREQ (input, "GBK")
STREQ (input, "EUC-KR")) &&
+ STREQ (input, "EUC-CN") || STREQ (input, "GB18030") || STREQ (input, "GBK") ||
STREQ (input, "EUC-KR") ||
STREQ (input, "EUC-TW")) &&
STREQ (output, "UTF-8"))
return 1;
@@ -606,7 +620,7 @@ const char *get_roff_encoding (const cha
STREQ (ctype, "zh_HK.UTF-8") ||
STREQ (ctype, "zh_SG.UTF-8") ||
STREQ (ctype, "zh_TW.UTF-8"))
@@ -639,7 +653,7 @@ const char *get_roff_encoding (const cha
STRNEQ (ctype, "zh_HK", 5) ||
STRNEQ (ctype, "zh_SG", 5) ||
STRNEQ (ctype, "zh_TW", 5))
- roff_encoding = "UTF-8";
+ roff_encoding = source_encoding; /* "UTF-8"; */
+ roff_encoding = source_encoding; /* "UTF-8"; */
}
#endif /* MULTIBYTE_GROFF */

View File

@ -1,16 +1,18 @@
--- .pkgextract
+++ .pkgextract 2008-04-21 13:24:22.498193000 +0200
@@ -0,0 +1,8 @@
+bzcat ../man-db_2.5.1-3.diff.bz2 | patch -p1 -s --suffix=.debian
+++ .pkgextract 2008-04-21 13:24:22.000000000 +0200
@@ -0,0 +1,10 @@
+bzcat ../man-db_2.5.2-2.diff.bz2 | patch -p1 -s --suffix=.debian
+patch -p0 -s --suffix=.groff < ../man-db-2.3.19deb4.0-groff.dif
+patch -p0 -s --suffix=.sect < ../man-db-2.4.3-section.dif
+patch -p0 -s --suffix=.secu4 < ../man-db-2.5.1-security4.dif
+patch -p0 -s --suffix=.firefox< ../man-db-2.4.3-firefox.dif
+patch -p0 -s --suffix=.chinese< ../man-db-2.5.1-chinese.dif
+patch -p0 -s --suffix=.chinese< ../man-db-2.5.2-chinese.dif
+patch -p0 -s --suffix=.glob < ../man-db-2.5.1-globbing.dif
+patch -p0 -s --suffix=.zio < ../man-db-2.5.1-zio.dif
+patch -p0 -s --suffix=.listall< ../man-db-2.5.1-listall.dif
+patch -p0 -s --suffix=.catp < ../man-db-2.5.2-catp.dif
--- configure.ac
+++ configure.ac 2008-04-21 15:16:11.651973000 +0200
+++ configure.ac 2008-08-12 15:32:24.000000000 +0200
@@ -14,13 +14,26 @@ fi
AC_CONFIG_HEADER(config.h)
@ -30,7 +32,7 @@
+AC_ISC_POSIX
+dnl
# Define below date and version information to be put into man pages etc.
datemark=20080128
datemark=20080505
date=`LANG=C date -d $datemark +'%Y-%m-%d'`
AC_SUBST(date)dnl
roff_version=`echo AC_PACKAGE_VERSION | sed 's/-/\\-/g'`
@ -135,7 +137,7 @@
AC_SUBST(LINGUAS)
AM_ICONV
AM_CONDITIONAL([NLS], [test "$USE_NLS" = yes])
@@ -487,6 +510,5 @@ AC_CONFIG_FILES(Makefile
@@ -491,6 +514,5 @@ AC_CONFIG_FILES(Makefile
tools/Makefile
include/comp_src.h
include/manconfig.h
@ -181,7 +183,7 @@
#endif /* HAVE_COMPRESS */
--- include/manconfig.h.in
+++ include/manconfig.h.in 2008-04-21 13:32:55.820086000 +0200
+++ include/manconfig.h.in 2008-08-12 16:59:18.600458442 +0200
@@ -73,7 +73,7 @@
#undef MAN_DB_CREATES
@ -200,19 +202,6 @@
# endif
#endif
@@ -376,8 +376,10 @@ extern char *program_name; /* the basena
#define NOT_FOUND 16 /* No action was taken */
/* System or user catpaths? Allow bitwise disjunctions of these. */
-#define SYSTEM_CAT 1
-#define USER_CAT 2
+#define SYSTEM_CATP 1
+#define USER_CATP 2
+#define FILE_CATP 4
+#define WHATIS_CATP 8
/* string macros */
#define STREQ(a,b) (strcmp(a,b) == 0)
--- intl/Makefile.in
+++ intl/Makefile.in 2007-12-10 12:51:51.000000000 +0100
@@ -181,7 +181,7 @@ libgnuintl.h.msvc-shared Makefile.msvc
@ -225,7 +214,7 @@
all-no-no:
--- libdb/db_storage.h
+++ libdb/db_storage.h 2008-04-21 15:18:55.504996000 +0200
+++ libdb/db_storage.h 2008-04-21 15:18:56.000000000 +0200
@@ -70,10 +70,10 @@ struct mandata {
};
@ -254,7 +243,7 @@
extern char **split_data (char *content, char *start[]);
extern datum make_content (struct mandata *in);
--- libdb/mydbm.h
+++ libdb/mydbm.h 2008-04-21 15:20:08.366342000 +0200
+++ libdb/mydbm.h 2008-04-21 15:20:08.000000000 +0200
@@ -42,7 +42,7 @@
# include <gdbm.h>
@ -296,8 +285,8 @@
# define MYDBM_RDOPEN(file) btree_flopen(file, O_RDONLY, DBMODE)
# define MYDBM_INSERT(db, key, cont) btree_insert(db, key, cont)
--- man/de/man1/man.man1
+++ man/de/man1/man.man1 2008-04-21 13:41:48.584537000 +0200
@@ -98,6 +98,7 @@ der Manualseiten gefolgt vom Typ der dor
+++ man/de/man1/man.man1 2008-04-21 13:41:49.000000000 +0200
@@ -97,6 +97,7 @@ der Manualseiten gefolgt vom Typ der dor
.TS
tab (@);
l l.
@ -306,7 +295,7 @@
2@Systemaufrufe (Kernelfunktionen)
3@Bibliotheksaufrufe (Funktionen in System-Bibliotheken)
--- man/es/man1/man.man1
+++ man/es/man1/man.man1 2008-04-21 13:41:57.397670000 +0200
+++ man/es/man1/man.man1 2008-04-21 13:41:57.000000000 +0200
@@ -101,6 +101,7 @@ del manual y los tipos de páginas que c
.TS
tab (@);
@ -316,7 +305,7 @@
@órdenes
2@Llamadas del sistema (funciones servidas por el núcleo)
--- man/it/man1/man.man1
+++ man/it/man1/man.man1 2008-04-21 13:42:01.538202000 +0200
+++ man/it/man1/man.man1 2008-04-21 13:42:02.000000000 +0200
@@ -124,6 +124,7 @@ del manuale seguiti dai tipi di pagine c
.TS
tab (@);
@ -326,7 +315,7 @@
2@Chiamate al sistema (funzioni fornite dal kernel)
3@Chiamate alle librerie (funzioni all'interno delle
--- man/ja/man1/man.man1
+++ man/ja/man1/man.man1 2008-04-21 13:42:05.278682000 +0200
+++ man/ja/man1/man.man1 2008-04-21 13:42:05.000000000 +0200
@@ -104,6 +104,7 @@
.TS
tab (@);
@ -337,7 +326,7 @@
3@ライブラリコール (システムライブラリに含まれる関数)
--- man/man1/man.man1
+++ man/man1/man.man1 2007-12-10 12:53:31.000000000 +0100
@@ -118,6 +118,7 @@ numbers of the manual followed by the ty
@@ -119,6 +119,7 @@ numbers of the manual followed by the ty
.TS
tab (@);
l l.
@ -346,7 +335,7 @@
2@System calls (functions provided by the kernel)
3@Library calls (functions within program libraries)
--- src/Makefile.am
+++ src/Makefile.am 2008-04-21 16:44:47.190572968 +0200
+++ src/Makefile.am 2008-04-21 16:44:47.000000000 +0200
@@ -170,15 +170,11 @@ apropos$(EXEEXT): whatis$(EXEEXT)
all-am: apropos$(EXEEXT)
@ -368,17 +357,6 @@
install-data-hook:
@if test -f $(DESTDIR)$(config_file); then \
--- src/catman.c
+++ src/catman.c 2008-01-30 12:02:21.000000000 +0100
@@ -450,7 +450,7 @@ int main (int argc, char *argv[])
char *catpath;
size_t len;
- catpath = get_catpath (*mp, SYSTEM_CAT | USER_CAT);
+ catpath = get_catpath (*mp, SYSTEM_CATP|USER_CATP);
if (catpath) {
if (is_directory (catpath) != 1) {
--- src/check_mandirs.c
+++ src/check_mandirs.c 2007-12-10 13:15:49.000000000 +0100
@@ -379,10 +379,10 @@ static short testmandirs (const char *pa
@ -437,17 +415,6 @@
content = MYDBM_FETCH (dbf, key);
if (!MYDBM_DPTR (content)) {
nextkey = MYDBM_NEXTKEY (dbf, key);
--- src/encodings.c
+++ src/encodings.c 2008-04-21 15:49:02.153615000 +0200
@@ -541,7 +541,7 @@ static int compatible_encodings (const c
*/
if ((STREQ (input, "BIG5") || STREQ (input, "BIG5HKSCS") ||
STREQ (input, "EUC-JP") ||
- STREQ (input, "EUC-CN") || STREQ (input, "GB18030") || STREQ (input, "GBK")
+ STREQ (input, "EUC-CN") || STREQ (input, "GB18030") || STREQ (input, "GBK") ||
STREQ (input, "EUC-KR")) &&
STREQ (output, "UTF-8"))
return 1;
--- src/fake_security.c
+++ src/fake_security.c 2007-12-10 12:53:31.000000000 +0100
@@ -43,6 +43,7 @@
@ -459,7 +426,7 @@
#ifdef SECURE_MAN_UID
static struct passwd *man_owner;
--- src/lexgrog.l
+++ src/lexgrog.l 2007-12-10 16:36:14.000000000 +0100
+++ src/lexgrog.l 2008-08-12 15:33:28.000000000 +0200
@@ -51,7 +51,7 @@
#include "security.h"
#include "encodings.h"
@ -561,10 +528,10 @@
<MAN_NAME>{bol}\.ig{blank}* | /* block comment */
<MAN_NAME>{bol}\.de[1i]?{blank}* | /* macro definition */
+<MAN_NAME>{bol}\.V[be]{blank}* | /* special in perl pages */
<MAN_NAME>{bol}\.i[ef]{blank}* | /* conditional */
<MAN_NAME>{empty}{bol}.+ |
<MAN_NAME><<EOF>> { /* terminate the string */
*p_name = '\0';
@@ -241,28 +268,31 @@ vgrind_request \.vS
@@ -242,28 +269,31 @@ vgrind_request \.vS
{bol}{typeface}{blank}+ | /* type face commands */
{bol}\.ft{blank}.* | /* font change */
{bol}\.V[be]{blank}.* | /* pod2man, verbatim mode */
@ -602,7 +569,7 @@
/* escape sequences and special characters */
<MAN_NAME>{
@@ -278,6 +308,7 @@ vgrind_request \.vS
@@ -279,6 +309,7 @@ vgrind_request \.vS
{next}\\[|^&!%acdpruz{}\r\n] /* various useless control chars */
{next}\\[bhlLvx]{blank}*'[^']+' /* various inline functions */
@ -610,7 +577,7 @@
{next}\\\$[1-9] /* interpolate arg */
{next}\\\*(\({alpha})?{alpha} /* interpolate string */
@@ -306,11 +337,8 @@ vgrind_request \.vS
@@ -307,11 +338,8 @@ vgrind_request \.vS
for later processing */
<MAN_NAME>{
{bol}\.br{blank}* |
@ -623,7 +590,7 @@
{bol}\.RS{blank}.* |
{bol}\.RE{blank}.* add_char_to_whatis ((char) 0x11);
}
@@ -323,7 +351,7 @@ vgrind_request \.vS
@@ -324,7 +352,7 @@ vgrind_request \.vS
<MAN_NAME>[[:alnum:]]* add_str_to_whatis (yytext, yyleng);
/* normalise the period (,) separators */
@ -632,7 +599,7 @@
<MAN_NAME>{blank}*,{blank}* add_str_to_whatis (", ", 2);
<CAT_NAME,MAN_NAME>{bol}. {
@@ -339,7 +367,7 @@ vgrind_request \.vS
@@ -340,7 +368,7 @@ vgrind_request \.vS
%%
/* print warning and force scanner to terminate */
@ -641,7 +608,7 @@
{
error (0, 0,
_("warning: whatis for %s exceeds %d bytes, truncating."),
@@ -349,7 +377,7 @@ static void too_big (void)
@@ -350,7 +378,7 @@ static void too_big (void)
}
/* append a string to newname if enough room */
@ -650,7 +617,7 @@
{
if (p_name - newname + length >= MAX_NAME)
too_big ();
@@ -360,8 +388,10 @@ static void add_str_to_whatis (const cha
@@ -361,8 +389,10 @@ static void add_str_to_whatis (const cha
}
/* append a char to newname if enough room */
@ -662,7 +629,7 @@
if (p_name - newname + 1 >= MAX_NAME)
too_big ();
else if (waiting_for_quote && c == '"')
@@ -373,14 +403,30 @@ static void add_char_to_whatis (unsigned
@@ -374,14 +404,30 @@ static void add_char_to_whatis (unsigned
/* append the " - " separator to newname, trimming the first space if one's
* already there
*/
@ -695,7 +662,7 @@
{
/* If we are mid p_name and the last added char was not a space,
* best add one.
@@ -456,6 +502,7 @@ int find_name_decompressed (pipeline *p,
@@ -457,6 +503,7 @@ int find_name_decompressed (pipeline *p,
fill_mode = 1;
waiting_for_quote = 0;
@ -704,7 +671,7 @@
if (p_lg->type)
BEGIN (CAT_FILE);
--- src/man.c
+++ src/man.c 2008-04-21 17:53:02.498707988 +0200
+++ src/man.c 2008-08-12 16:59:18.640462210 +0200
@@ -66,6 +66,7 @@ static char *cwd;
#include <utime.h>
#include <sys/types.h>
@ -1004,17 +971,7 @@
roff_opt = getenv ("MANROFFOPT");
if (!roff_opt)
@@ -1249,8 +1304,7 @@ static pipeline *make_roff_command (cons
#ifdef ALT_EXT_FORMAT
/* Check both external formatter locations */
if (dir && !recode) {
- char *catpath = get_catpath
- (dir, global_manpath ? SYSTEM_CAT : USER_CAT);
+ char *catpath = get_catpath (dir, global_manpath ? SYSTEM_CATP : USER_CATP);
/* If we have an alternate catpath */
if (catpath) {
@@ -1295,8 +1349,10 @@ static pipeline *make_roff_command (cons
@@ -1295,8 +1350,10 @@ static pipeline *make_roff_command (cons
if (!recode)
pipeline_command_argstr (p, get_def ("soelim",
SOELIM));
@ -1027,7 +984,7 @@
source_encoding = get_source_encoding (lang);
debug ("page_encoding = %s\n", page_encoding);
debug ("source_encoding = %s\n", source_encoding);
@@ -1637,6 +1693,18 @@ static void setenv_less (const char *tit
@@ -1652,6 +1709,18 @@ static void setenv_less (const char *tit
free (less_opts);
}
@ -1046,7 +1003,7 @@
/* Return pipeline to display file. NULL means stdin.
*
* TODO: htmlout case is pretty weird now. I'd like the intelligence to be
@@ -1649,6 +1717,9 @@ static pipeline *make_display_command (c
@@ -1664,6 +1733,9 @@ static pipeline *make_display_command (c
setenv_less (title);
@ -1056,7 +1013,7 @@
if (file) {
if (ascii) {
p = pipeline_new ();
@@ -1691,7 +1762,7 @@ static pipeline *make_display_command (c
@@ -1706,7 +1778,7 @@ static pipeline *make_display_command (c
return p;
}
@ -1065,7 +1022,7 @@
/* return a (malloced) temporary name in cat_file's directory */
static char *tmp_cat_filename (const char *cat_file)
{
@@ -1794,8 +1865,6 @@ static int commit_tmp_cat (const char *c
@@ -1809,8 +1881,6 @@ static int commit_tmp_cat (const char *c
return status;
}
@ -1074,7 +1031,7 @@
/* Return pipeline to write formatted manual page to for saving as cat file. */
static pipeline *open_cat_stream (const char *cat_file)
{
@@ -1869,6 +1938,7 @@ static int close_cat_stream (pipeline *c
@@ -1884,6 +1954,7 @@ static int close_cat_stream (pipeline *c
free (tmp_cat_file);
return status;
}
@ -1082,7 +1039,7 @@
/* TODO: This should all be refactored after work on the decompression
* library is complete.
@@ -1881,6 +1951,7 @@ void discard_stderr (pipeline *p)
@@ -1896,6 +1967,7 @@ void discard_stderr (pipeline *p)
p->commands[i]->discard_err = 1;
}
@ -1090,7 +1047,7 @@
/*
* format a manual page with format_cmd, display it with disp_cmd, and
* save it to cat_file
@@ -2042,6 +2113,7 @@ static void format_display (pipeline *de
@@ -2057,6 +2129,7 @@ static void format_display (pipeline *de
regain_effective_privs ();
}
@ -1098,7 +1055,7 @@
/* "Display" a page in catman mode, which amounts to saving it. */
/* TODO: merge with format_display_and_save? */
static void display_catman (const char *cat_file, pipeline *decomp,
@@ -2080,6 +2152,7 @@ static void display_catman (const char *
@@ -2095,6 +2168,7 @@ static void display_catman (const char *
pop_cleanup();
free (tmpcat);
}
@ -1106,7 +1063,7 @@
/*
* optionally chdir to dir, if necessary update cat_file from man_file
@@ -2102,10 +2175,18 @@ static int display (const char *dir, con
@@ -2117,10 +2191,18 @@ static int display (const char *dir, con
if (dir) {
debug ("chdir %s\n", dir);
@ -1125,7 +1082,7 @@
}
/* define format_cmd */
@@ -2118,11 +2199,10 @@ static int display (const char *dir, con
@@ -2133,11 +2215,10 @@ static int display (const char *dir, con
if (decomp) {
pipeline_start (decomp);
@ -1139,7 +1096,7 @@
/* Get modification time, for commit_tmp_cat(). */
if (man_file && *man_file) {
struct stat stb;
@@ -2131,7 +2211,7 @@ static int display (const char *dir, con
@@ -2146,7 +2227,7 @@ static int display (const char *dir, con
else
man_modtime = stb.st_mtime;
}
@ -1148,7 +1105,7 @@
display_to_stdout = troff;
#ifdef TROFF_IS_GROFF
if (htmlout)
@@ -2248,6 +2328,7 @@ static int display (const char *dir, con
@@ -2263,6 +2344,7 @@ static int display (const char *dir, con
}
if (printed)
putchar ('\n');
@ -1156,7 +1113,7 @@
} else if (catman) {
if (format) {
if (!save_cat)
@@ -2259,6 +2340,7 @@ static int display (const char *dir, con
@@ -2274,6 +2356,7 @@ static int display (const char *dir, con
display_catman (cat_file, decomp,
format_cmd);
}
@ -1164,7 +1121,7 @@
} else if (format) {
/* no cat or out of date */
pipeline *disp_cmd;
@@ -2309,8 +2391,10 @@ static int display (const char *dir, con
@@ -2324,8 +2407,10 @@ static int display (const char *dir, con
}
}
@ -1177,38 +1134,7 @@
if (!prompt)
prompt = found;
@@ -2351,8 +2435,7 @@ static char *find_cat_file (const char *
*/
if (!STREQ (man_file, original)) {
global_manpath = is_global_mandir (man_file);
- cat_path = get_catpath
- (man_file, global_manpath ? SYSTEM_CAT : USER_CAT);
+ cat_path = get_catpath (man_file, (global_manpath ? SYSTEM_CATP : USER_CATP)|FILE_CATP);
if (cat_path) {
cat_file = convert_name (cat_path, 0);
@@ -2379,8 +2462,7 @@ static char *find_cat_file (const char *
}
global_manpath = is_global_mandir (original);
- cat_path = get_catpath
- (original, global_manpath ? SYSTEM_CAT : USER_CAT);
+ cat_path = get_catpath (original, (global_manpath ? SYSTEM_CATP : USER_CATP)|FILE_CATP);
if (cat_path) {
cat_file = convert_name (cat_path, 0);
@@ -2869,9 +2951,7 @@ static int display_database (struct cand
if (access (file, R_OK) != 0) {
char *catpath;
- catpath = get_catpath (candp->path,
- global_manpath ? SYSTEM_CAT
- : USER_CAT);
+ catpath = get_catpath (candp->path, global_manpath ? SYSTEM_CATP : USER_CATP);
if (catpath && strcmp (catpath, candp->path) != 0) {
file = make_filename (catpath, name,
@@ -2908,7 +2988,7 @@ static int display_database_check (struc
@@ -2923,7 +3008,7 @@ static int display_database_check (struc
#ifdef MAN_DB_UPDATES
if (!exists && !skip) {
debug ("dbdelete_wrapper (%s, %p)\n",
@ -1217,37 +1143,12 @@
dbdelete_wrapper (candp->req_name, candp->source);
}
#endif /* MAN_DB_UPDATES */
@@ -2986,7 +3066,7 @@ static int try_db (const char *manpath,
/* find out where our db for this manpath should be */
- catpath = get_catpath (manpath, global_manpath ? SYSTEM_CAT : USER_CAT);
+ catpath = get_catpath (manpath, (global_manpath ? SYSTEM_CATP : USER_CATP)|FILE_CATP);
if (catpath) {
database = mkdbname (catpath);
free (catpath);
--- src/man.h
+++ src/man.h 2008-04-21 15:19:42.495024000 +0200
@@ -22,10 +22,10 @@
* Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA
*/
-static inline const char *is_section (const char *name);
+static const char *is_section (const char *name);
static const char **get_section_list (void);
static int man (const char *name, int *found);
static int display (const char *dir, const char *man_file,
const char *cat_file, const char *title,
const char *dbfilters);
-static inline int do_prompt (const char *name);
+static int do_prompt (const char *name);
--- src/man_db.conf.in
+++ src/man_db.conf.in 2007-12-11 13:27:28.000000000 +0100
@@ -20,6 +20,15 @@
+++ src/man_db.conf.in 2008-08-12 15:35:48.000000000 +0200
@@ -20,6 +20,14 @@
MANDATORY_MANPATH /usr/man
MANDATORY_MANPATH /usr/share/man
MANDATORY_MANPATH /usr/local/man
+MANDATORY_MANPATH /usr/local/share/man
MANDATORY_MANPATH /usr/local/share/man
+MANDATORY_MANPATH /opt/man
+MANDATORY_MANPATH /opt/dx/man
+MANDATORY_MANPATH /opt/lsb/man
@ -1259,7 +1160,7 @@
#---------------------------------------------------------
# set up PATH to MANPATH mapping
# ie. what man tree holds man pages for what binary directory.
@@ -34,8 +43,10 @@ MANPATH_MAP /usr/local/bin /usr/local/m
@@ -34,8 +42,10 @@ MANPATH_MAP /usr/local/bin /usr/local/m
MANPATH_MAP /usr/local/bin /usr/local/share/man
MANPATH_MAP /usr/local/sbin /usr/local/man
MANPATH_MAP /usr/local/sbin /usr/local/share/man
@ -1272,7 +1173,7 @@
MANPATH_MAP /usr/games /usr/share/man
MANPATH_MAP /opt/bin /opt/man
MANPATH_MAP /opt/sbin /opt/man
@@ -63,12 +74,133 @@ MANPATH_MAP /opt/sbin /opt/man
@@ -63,12 +73,133 @@ MANPATH_MAP /opt/sbin /opt/man
#
# *MANPATH* -> *CATPATH*
#
@ -1411,7 +1312,7 @@
#
#---------------------------------------------------------
# Program definitions. These are commented out by default as the value
@@ -80,7 +212,7 @@ MANDB_MAP /opt/man /var/cache/man/opt
@@ -80,7 +211,7 @@ MANDB_MAP /opt/man /var/cache/man/opt
#DEFINE tr @tr@ '\255\267\264\327' '\055\157\047\170'
#DEFINE grep @grep@
#DEFINE troff @troff@
@ -1421,7 +1322,7 @@
#DEFINE neqn @neqn@
#DEFINE tbl @tbl@
--- src/mandb.c
+++ src/mandb.c 2008-01-30 12:01:40.000000000 +0100
+++ src/mandb.c 2008-08-12 16:59:18.688466727 +0200
@@ -185,6 +185,8 @@ static const char *xtmpfile;
#ifdef SECURE_MAN_UID
extern uid_t ruid;
@ -1431,24 +1332,7 @@
#endif /* SECURE_MAN_UID */
static char *manpathlist[MAXDIRS];
@@ -484,10 +486,13 @@ static short process_manpath (const char
short amount = 0;
if (global_manpath) { /* system db */
- catpath = get_catpath (manpath, SYSTEM_CAT);
- assert (catpath);
+ catpath = get_catpath (manpath, SYSTEM_CATP);
+ if (!catpath) {
+ error (0, 0, _("warning: no system cat path for man path %s"), manpath);
+ return amount;
+ }
} else { /* user db */
- catpath = get_catpath (manpath, USER_CAT);
+ catpath = get_catpath (manpath, USER_CATP);
if (!catpath)
catpath = xstrdup (manpath);
}
@@ -518,7 +523,7 @@ static short process_manpath (const char
@@ -518,7 +520,7 @@ static short process_manpath (const char
if (!opt_test && amount) {
finish_up ();
#ifdef SECURE_MAN_UID
@ -1457,7 +1341,7 @@
do_chown (man_owner->pw_uid);
#endif /* SECURE_MAN_UID */
}
@@ -586,8 +591,14 @@ int main (int argc, char *argv[])
@@ -586,8 +588,14 @@ int main (int argc, char *argv[])
error (FAIL, 0,
_("the setuid man user \"%s\" does not exist"),
MAN_OWNER);
@ -1475,7 +1359,7 @@
--- src/manp.c
+++ src/manp.c 2008-01-30 12:01:03.000000000 +0100
+++ src/manp.c 2008-08-12 16:59:18.712468986 +0200
@@ -70,6 +70,7 @@
#include "security.h"
#include "encodings.h"
@ -1545,53 +1429,6 @@
return manpath;
}
@@ -1134,8 +1145,8 @@ char *get_catpath (const char *name, int
struct list *list;
for (list = namestore; list; list = list->next)
- if (((cattype & SYSTEM_CAT) && list->flag == MANDB_MAP) ||
- ((cattype & USER_CAT) && list->flag == MANDB_MAP_USER)) {
+ if (((cattype & SYSTEM_CATP) && list->flag == MANDB_MAP) ||
+ ((cattype & USER_CATP) && list->flag == MANDB_MAP_USER)) {
size_t manlen = strlen (list->key);
if (STRNEQ (name, list->key, manlen)) {
const char *suffix = name + manlen;
@@ -1143,16 +1154,30 @@ char *get_catpath (const char *name, int
if (*suffix == '/') {
++suffix;
- catpath = appendstr (catpath, "/",
- NULL);
+ catpath = appendstr (catpath, "/", NULL);
}
if (STRNEQ (suffix, "man", 3)) {
suffix += 3;
- catpath = appendstr (catpath, "cat",
- NULL);
+ catpath = appendstr (catpath, "cat", NULL);
}
catpath = appendstr (catpath, suffix, NULL);
- return catpath;
+ if (cattype & FILE_CATP)
+ return catpath;
+ if (is_directory (catpath) == 1)
+ return catpath;
+ if ((cattype & WHATIS_CATP) == 0) {
+ const char locale_delims[] = "_@,.";
+ const char *delim;
+ for (delim = locale_delims; *delim != '\0'; ++delim) {
+ char * tmp = strrchr (catpath, *delim);
+ if (!tmp)
+ continue;
+ *tmp = '\0';
+ if (is_directory (catpath) == 1)
+ return catpath;
+ }
+ }
+ free (catpath);
}
}
--- src/security.c
+++ src/security.c 2007-12-10 14:24:24.000000000 +0100
@@ -76,10 +76,13 @@
@ -1678,7 +1515,7 @@
}
--- src/security.h
+++ src/security.h 2008-04-21 15:19:18.783982000 +0200
+++ src/security.h 2008-04-21 15:19:19.000000000 +0200
@@ -25,8 +25,8 @@
#include <pwd.h>
@ -1691,7 +1528,7 @@
extern int remove_with_dropped_privs (const char *filename);
extern void init_security (void);
--- src/straycats.c
+++ src/straycats.c 2008-04-21 15:47:04.158440000 +0200
+++ src/straycats.c 2008-08-12 16:59:18.780475384 +0200
@@ -35,6 +35,7 @@
#include <sys/types.h>
#include <sys/stat.h>
@ -1722,15 +1559,6 @@
}
closedir (cdir);
return strays;
@@ -338,7 +343,7 @@ int straycats (const char *manpath)
return 0;
}
- catpath = get_catpath (manpath, SYSTEM_CAT | USER_CAT);
+ catpath = get_catpath (manpath, SYSTEM_CATP|USER_CATP);
/* look in the usual catpath location */
mandir = xstrdup (manpath);
--- src/ult_src.c
+++ src/ult_src.c 2007-12-10 14:34:00.000000000 +0100
@@ -289,12 +289,17 @@ const char *ult_src (const char *name, c
@ -1782,17 +1610,6 @@
#include "manconfig.h"
#include "pipeline.h"
--- src/whatis.c
+++ src/whatis.c 2008-04-21 13:21:57.483571000 +0200
@@ -651,7 +651,7 @@ static int search (char *page)
debug ("lower(%s) = \"%s\"\n", page, lowpage);
for (mp = manpathlist; *mp; mp++) {
- catpath = get_catpath (*mp, SYSTEM_CAT | USER_CAT);
+ catpath = get_catpath (*mp, SYSTEM_CATP|USER_CATP|WHATIS_CATP);
if (catpath) {
database = mkdbname (catpath);
--- src/wrapper.c
+++ src/wrapper.c 2008-01-07 13:06:02.000000000 +0100
@@ -29,6 +29,7 @@

3
man-db-2.5.2.tar.bz2 Normal file
View File

@ -0,0 +1,3 @@
version https://git-lfs.github.com/spec/v1
oid sha256:3da6a5983a3dd1233b45d66cfcc44e787f8cd6cfc77d5b97cb154414ea70a4ca
size 1315763

View File

@ -1,3 +0,0 @@
version https://git-lfs.github.com/spec/v1
oid sha256:eec1315474df7515ee2bb21fcc5533a6977de685e6128a55548d2692cf34c319
size 371

3
man-db_2.5.2-2.diff.bz2 Normal file
View File

@ -0,0 +1,3 @@
version https://git-lfs.github.com/spec/v1
oid sha256:67a9fbffb34c693617f7d43cee527acad9610bd30be437069519c326a442724d
size 313

View File

@ -1,3 +1,27 @@
-------------------------------------------------------------------
Tue Aug 12 17:41:26 CEST 2008 - werner@suse.de
- Update to version 2.5.2
* `man -H' (without a browser argument) was completely broken in
2.5.1 and is now fixed.
* man no longer breaks in Japanese locales when using less.
* The --encoding option to man can now take a true character
encoding rather than a *roff device; the latter was an
unreliable, inflexible, and awkward way to select an output
encoding. The old semantics are still supported for backward
compatibility.
* Whatis parsing stops at .ie or .if conditionals.
* CJK locale specifications where the codeset component is
equivalent to but not stringwise-identical to UTF-8 (e.g.
zh_CN.utf8) are handled better.
* man(1)'s OPTIONS section is ordered more comprehensibly.
* apropos, lexgrog, man, mandb, and whatis ignore encoding
conversion errors for the last possible encoding of the source
page. This helps, for example, with pages including misencoded
non-ASCII names of authors; it usually seems better to allow
these pages to pass with small errors than to break them
entirely.
-------------------------------------------------------------------
Thu Jun 5 17:04:01 CEST 2008 - werner@suse.de

View File

@ -1,10 +1,17 @@
#
# spec file for package man (Version 2.5.1)
# spec file for package man (Version 2.5.2)
#
# Copyright (c) 2008 SUSE LINUX Products GmbH, Nuernberg, Germany.
# This file and all modifications and additions to the pristine
# package are under the same license as the package itself.
#
# All modifications and additions to the file contributed by third parties
# remain the property of their copyright owners, unless otherwise agreed
# upon. The license for this file, and modifications and additions to the
# file, is the same license as for the pristine package itself (unless the
# license for the pristine package is not an Open Source License, in which
# case the license is the MIT License). An "Open Source License" is a
# license that conforms to the Open Source Definition (Version 1.9)
# published by the Open Source Initiative.
# Please submit bugfixes or comments via http://bugs.opensuse.org/
#
@ -23,8 +30,8 @@ BuildRequires: gettext-runtime gettext-tools
%else
BuildRequires: gettext gettext-devel
%endif
Version: 2.5.1
Release: 14
Version: 2.5.2
Release: 1
Summary: A Program for Displaying man Pages
License: GPL v2 or later
Url: https://savannah.nongnu.org/projects/man-db
@ -39,15 +46,16 @@ Source2: cron.daily.do_mandb
Source3: cron.daily.clean_catman
Source4: mancoding
Patch0: man-db-%{version}.dif
Patch1: man-db_%{version}-3.diff.bz2
Patch1: man-db_%{version}-2.diff.bz2
Patch2: man-db-2.3.19deb4.0-groff.dif
Patch4: man-db-2.4.3-section.dif
Patch5: man-db-%{version}-security4.dif
Patch5: man-db-2.5.1-security4.dif
Patch6: man-db-2.4.3-firefox.dif
Patch7: man-db-%{version}-chinese.dif
Patch8: man-db-%{version}-globbing.dif
Patch9: man-db-%{version}-zio.dif
Patch10: man-db-%{version}-listall.dif
Patch8: man-db-2.5.1-globbing.dif
Patch9: man-db-2.5.1-zio.dif
Patch10: man-db-2.5.1-listall.dif
Patch11: man-db-%{version}-catp.dif
BuildRoot: %{_tmppath}/%{name}-%{version}-build
%global _sysconfdir /etc
@ -74,6 +82,7 @@ Authors:
%patch8 -p0 -b .globbing
%patch9 -p0 -b .zio
%patch10 -p0 -b .listall
%patch11 -p0 -b .catp
%patch -p0
%build
@ -274,6 +283,27 @@ test -d var/catman/ && rm -rf var/catman/ || true
%{_localstatedir}/adm/fillup-templates/sysconfig.cron-man
%changelog
* Tue Aug 12 2008 werner@suse.de
- Update to version 2.5.2
* `man -H' (without a browser argument) was completely broken in
2.5.1 and is now fixed.
* man no longer breaks in Japanese locales when using less.
* The --encoding option to man can now take a true character
encoding rather than a *roff device; the latter was an
unreliable, inflexible, and awkward way to select an output
encoding. The old semantics are still supported for backward
compatibility.
* Whatis parsing stops at .ie or .if conditionals.
* CJK locale specifications where the codeset component is
equivalent to but not stringwise-identical to UTF-8 (e.g.
zh_CN.utf8) are handled better.
* man(1)'s OPTIONS section is ordered more comprehensibly.
* apropos, lexgrog, man, mandb, and whatis ignore encoding
conversion errors for the last possible encoding of the source
page. This helps, for example, with pages including misencoded
non-ASCII names of authors; it usually seems better to allow
these pages to pass with small errors than to break them
entirely.
* Thu Jun 05 2008 werner@suse.de
- Show the user if there are more than one manual page found for
the stated item (fate#303433)