This commit is contained in:
parent
0aa4b1741f
commit
14decd3568
@ -1,18 +0,0 @@
|
|||||||
--- src/straycats.c
|
|
||||||
+++ src/straycats.c Wed Jul 9 19:33:23 2003
|
|
||||||
@@ -366,6 +366,7 @@
|
|
||||||
int fd;
|
|
||||||
drop_effective_privs ();
|
|
||||||
fd = create_tempfile ("zcat", &temp_name);
|
|
||||||
+ regain_effective_privs ();
|
|
||||||
if (fd == -1) {
|
|
||||||
error (0, errno,
|
|
||||||
_("warning: can't create temp file %s"),
|
|
||||||
@@ -373,7 +374,6 @@
|
|
||||||
return 0;
|
|
||||||
}
|
|
||||||
close (fd);
|
|
||||||
- regain_effective_privs ();
|
|
||||||
}
|
|
||||||
|
|
||||||
dbf = MYDBM_RWOPEN (database);
|
|
@ -1,3 +0,0 @@
|
|||||||
version https://git-lfs.github.com/spec/v1
|
|
||||||
oid sha256:28ef32cd88dcd486f76855a805c8028174eba816606160ae5a349d06dee6c0dc
|
|
||||||
size 22793
|
|
@ -1,105 +0,0 @@
|
|||||||
--- src/encodings.c 2005-01-05 16:11:54.000000000 +0100
|
|
||||||
+++ src/encodings.c 2007-07-26 14:25:02.000000000 +0200
|
|
||||||
@@ -106,6 +106,11 @@
|
|
||||||
{ "cs", "ISO-8859-2", "ISO-8859-2" }, /* Czech */
|
|
||||||
{ "hr", "ISO-8859-2", "ISO-8859-2" }, /* Croatian */
|
|
||||||
{ "hu", "ISO-8859-2", "ISO-8859-2" }, /* Hungarian */
|
|
||||||
+ { "zh_TW", "BIG5", "BIG5" }, /* Traditional Chinese */
|
|
||||||
+ { "zh_HK", "BIG5HKSCS", "BIG5HKSCS" }, /* Traditional Chinese */
|
|
||||||
+ { "zh_CN", "GB18030", "GB18030" }, /* Simplified Chinese */
|
|
||||||
+ { "zh_SG", "GB18030", "GB18030" }, /* Simplified Chinese */
|
|
||||||
+ { "zh", "GB18030", "GB18030" }, /* Simplified Chinese */
|
|
||||||
{ "ja", "EUC-JP", "EUC-JP" }, /* Japanese */
|
|
||||||
{ "ko", "EUC-KR", "EUC-KR" }, /* Korean */
|
|
||||||
{ "pl", "ISO-8859-2", "ISO-8859-2" }, /* Polish */
|
|
||||||
@@ -136,6 +141,9 @@
|
|
||||||
|
|
||||||
#ifdef MULTIBYTE_GROFF
|
|
||||||
{ "EUC-JP", "nippon" },
|
|
||||||
+ { "GB18030", "nippon" },
|
|
||||||
+ { "BIG5", "nippon" },
|
|
||||||
+ { "BIG5HKSCS", "nippon" },
|
|
||||||
#endif /* MULTIBYTE_GROFF */
|
|
||||||
|
|
||||||
{ NULL, NULL }
|
|
||||||
@@ -170,7 +178,7 @@
|
|
||||||
|
|
||||||
#ifdef MULTIBYTE_GROFF
|
|
||||||
{ "ascii8", NULL, NULL },
|
|
||||||
- { "nippon", "EUC-JP", "EUC-JP" },
|
|
||||||
+ { "nippon", NULL, NULL },
|
|
||||||
#endif /* MULTIBYTE_GROFF */
|
|
||||||
|
|
||||||
{ NULL, NULL, NULL }
|
|
||||||
@@ -193,6 +201,7 @@
|
|
||||||
{ "UTF-8", "utf-8" },
|
|
||||||
|
|
||||||
#ifdef MULTIBYTE_GROFF
|
|
||||||
+ { "GB18030", "zh" },
|
|
||||||
{ "EUC-JP", "ja" },
|
|
||||||
{ "KOI8-R", "koi8-r" },
|
|
||||||
#endif /* MULTIBYTE_GROFF */
|
|
||||||
@@ -283,6 +292,13 @@
|
|
||||||
* roff encoding = UTF-8
|
|
||||||
* output encoding = UTF-8
|
|
||||||
* EUC-JP -> iconv -> UTF-8 -> groff -Tutf8 -> UTF-8
|
|
||||||
+ *
|
|
||||||
+ * /usr/share/man/zh_CN.GB18030, locale zh_CN.UTF-8
|
|
||||||
+ * page encoding = GB18030
|
|
||||||
+ * source encoding = GB18030
|
|
||||||
+ * roff encoding = UTF-8
|
|
||||||
+ * output encoding = UTF-8
|
|
||||||
+ * GB18030 -> iconv -> UTF-8 -> groff -Tutf8 -> UTF-8
|
|
||||||
*/
|
|
||||||
const char *get_source_encoding (const char *lang)
|
|
||||||
{
|
|
||||||
@@ -386,10 +402,14 @@
|
|
||||||
return 1;
|
|
||||||
|
|
||||||
#ifdef MULTIBYTE_GROFF
|
|
||||||
- /* Special case for ja_JP.UTF-8, which takes UTF-8 input recoded
|
|
||||||
- * from EUC-JP and produces UTF-8 output. This is rather filthy.
|
|
||||||
+ /* Special case for ja_JP.UTF-8, zh_CN.UTF-8, zh_TW.UTF-8, and zh_HK.UTF-8 which
|
|
||||||
+ * takes UTF-8 input recoded from EUC-JP, BIG5, BIG5HKSCS, GB18030, or GBK
|
|
||||||
+ * and produces UTF-8 output.
|
|
||||||
+ * This is rather filthy.
|
|
||||||
*/
|
|
||||||
- if (STREQ (input, "EUC-JP") && STREQ (output, "UTF-8"))
|
|
||||||
+ if ((STREQ (input, "EUC-JP") || STREQ (input, "BIG5") || STREQ (input, "BIG5HKSCS") ||
|
|
||||||
+ STREQ (input, "GB18030") || STREQ (input, "GBK")) &&
|
|
||||||
+ STREQ (output, "UTF-8"))
|
|
||||||
return 1;
|
|
||||||
#endif /* MULTIBYTE_GROFF */
|
|
||||||
|
|
||||||
@@ -449,14 +469,26 @@
|
|
||||||
#ifdef MULTIBYTE_GROFF
|
|
||||||
/* An ugly special case is needed here. The utf8 device normally
|
|
||||||
* takes ISO-8859-1 input. However, with the multibyte patch, when
|
|
||||||
- * recoding from EUC-JP it takes UTF-8 input instead. This is evil,
|
|
||||||
- * but there's not much that can be done about it apart from waiting
|
|
||||||
- * for groff 2.0.
|
|
||||||
+ * recoding from EUC-JP, GB18030, BIG5, or BIG5HKSCS it takes UTF-8 input
|
|
||||||
+ * instead. This is evil, but there's not much that can be done
|
|
||||||
+ * about it apart from waiting for groff 2.0.
|
|
||||||
+ *
|
|
||||||
*/
|
|
||||||
+ /*
|
|
||||||
+ * don't try to convert to UTF-8, the input might be UTF-8 already
|
|
||||||
+ * and groff 1.18.1.1 with the multibyte patch doesn't want
|
|
||||||
+ * UTF-8 input anyway, the /usr/bin/nroff script contains
|
|
||||||
+ * a hack to convert back to the appropriate legacy encoding
|
|
||||||
+ * if it gets UTF-8 input.
|
|
||||||
+ */
|
|
||||||
if (STREQ (device, "utf8")) {
|
|
||||||
const char *ctype = setlocale (LC_CTYPE, NULL);
|
|
||||||
- if (STREQ (ctype, "ja_JP.UTF-8"))
|
|
||||||
- roff_encoding = "UTF-8";
|
|
||||||
+ if (STREQ (ctype, "ja_JP.UTF-8") ||
|
|
||||||
+ STREQ (ctype, "zh_CN.UTF-8") ||
|
|
||||||
+ STREQ (ctype, "zh_SG.UTF-8") ||
|
|
||||||
+ STREQ (ctype, "zh_TW.UTF-8") ||
|
|
||||||
+ STREQ (ctype, "zh_HK.UTF-8"))
|
|
||||||
+ roff_encoding = source_encoding; /* "UTF-8"; */
|
|
||||||
}
|
|
||||||
#endif /* MULTIBYTE_GROFF */
|
|
||||||
|
|
@ -1,16 +1,6 @@
|
|||||||
--- src/globbing.c
|
--- src/globbing.c
|
||||||
+++ src/globbing.c 2007-09-19 13:35:04.128822519 +0200
|
+++ src/globbing.c 2007-09-19 13:35:04.128822519 +0200
|
||||||
@@ -28,7 +28,9 @@
|
@@ -340,13 +340,22 @@ char **look_for_file (const char *unesc_
|
||||||
#endif /* HAVE_CONFIG_H */
|
|
||||||
|
|
||||||
/* Need _GNU_SOURCE for FNM_CASEFOLD. */
|
|
||||||
+#ifndef _GNU_SOURCE
|
|
||||||
#define _GNU_SOURCE
|
|
||||||
+#endif
|
|
||||||
|
|
||||||
#include <stdio.h>
|
|
||||||
|
|
||||||
@@ -340,13 +342,22 @@ char **look_for_file (const char *unesc_
|
|
||||||
/* allow lookups like "3x foo" to match "../man3/foo.3x" */
|
/* allow lookups like "3x foo" to match "../man3/foo.3x" */
|
||||||
|
|
||||||
if ((layout & LAYOUT_GNU) && CTYPE (isdigit, *sec) && sec[1] != '\0') {
|
if ((layout & LAYOUT_GNU) && CTYPE (isdigit, *sec) && sec[1] != '\0') {
|
||||||
|
@ -1,3 +0,0 @@
|
|||||||
version https://git-lfs.github.com/spec/v1
|
|
||||||
oid sha256:be7487221716d5f53ca93c9fe373b33b6703626ee47d973e59128decab501b5e
|
|
||||||
size 636060
|
|
64
man-db-2.5.0-chinese.dif
Normal file
64
man-db-2.5.0-chinese.dif
Normal file
@ -0,0 +1,64 @@
|
|||||||
|
--- src/encodings.c
|
||||||
|
+++ src/encodings.c 2007-12-07 19:12:54.428222452 +0100
|
||||||
|
@@ -110,6 +110,11 @@ static struct directory_entry directory_
|
||||||
|
{ "cs", "ISO-8859-2", "ISO-8859-2" }, /* Czech */
|
||||||
|
{ "hr", "ISO-8859-2", "ISO-8859-2" }, /* Croatian */
|
||||||
|
{ "hu", "ISO-8859-2", "ISO-8859-2" }, /* Hungarian */
|
||||||
|
+ { "zh_TW", "BIG5", "BIG5" }, /* Traditional Chinese */
|
||||||
|
+ { "zh_HK", "BIG5HKSCS", "BIG5HKSCS" }, /* Traditional Chinese */
|
||||||
|
+ { "zh_CN", "GB18030", "GB18030" }, /* Simplified Chinese */
|
||||||
|
+ { "zh_SG", "GB18030", "GB18030" }, /* Simplified Chinese */
|
||||||
|
+ { "zh", "GB18030", "GB18030" }, /* Simplified Chinese */
|
||||||
|
{ "ja", "EUC-JP", "EUC-JP" }, /* Japanese */
|
||||||
|
{ "ko", "EUC-KR", "EUC-KR" }, /* Korean */
|
||||||
|
{ "pl", "ISO-8859-2", "ISO-8859-2" }, /* Polish */
|
||||||
|
@@ -209,6 +214,7 @@ static struct charset_entry charset_tabl
|
||||||
|
{ "BIG5HKSCS", "nippon" },
|
||||||
|
{ "EUC-CN", "nippon" },
|
||||||
|
{ "EUC-JP", "nippon" },
|
||||||
|
+ { "GB18030", "nippon" },
|
||||||
|
{ "GBK", "nippon" },
|
||||||
|
#endif /* MULTIBYTE_GROFF */
|
||||||
|
|
||||||
|
@@ -267,6 +273,7 @@ static struct less_charset_entry less_ch
|
||||||
|
{ "UTF-8", "utf-8" },
|
||||||
|
|
||||||
|
#ifdef MULTIBYTE_GROFF
|
||||||
|
+ { "GB18030", "zh" },
|
||||||
|
{ "EUC-JP", "ja" },
|
||||||
|
{ "KOI8-R", "koi8-r" },
|
||||||
|
#endif /* MULTIBYTE_GROFF */
|
||||||
|
@@ -391,6 +398,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
|
||||||
|
+ *
|
||||||
|
+ * /usr/share/man/zh_CN.GB18030, locale zh_CN.UTF-8
|
||||||
|
+ * page encoding = GB18030
|
||||||
|
+ * source encoding = GB18030
|
||||||
|
+ * roff encoding = UTF-8
|
||||||
|
+ * output encoding = UTF-8
|
||||||
|
+ * GB18030 -> iconv -> UTF-8 -> groff -Tutf8 -> UTF-8
|
||||||
|
*/
|
||||||
|
const char *get_source_encoding (const char *lang)
|
||||||
|
{
|
||||||
|
@@ -524,8 +538,8 @@ static int compatible_encodings (const c
|
||||||
|
* rather filthy.
|
||||||
|
*/
|
||||||
|
if ((STREQ (input, "BIG5") || STREQ (input, "BIG5HKSCS") ||
|
||||||
|
- STREQ (input, "EUC-JP") ||
|
||||||
|
- STREQ (input, "EUC-CN") || STREQ (input, "GBK")) &&
|
||||||
|
+ STREQ (input, "EUC-JP") || STREQ (input, "EUC-CN") ||
|
||||||
|
+ STREQ (input, "GB18030") || STREQ (input, "GBK")) &&
|
||||||
|
STREQ (output, "UTF-8"))
|
||||||
|
return 1;
|
||||||
|
#endif /* MULTIBYTE_GROFF */
|
||||||
|
@@ -600,7 +614,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"))
|
||||||
|
- roff_encoding = "UTF-8";
|
||||||
|
+ roff_encoding = source_encoding; /* "UTF-8"; */
|
||||||
|
}
|
||||||
|
#endif /* MULTIBYTE_GROFF */
|
||||||
|
|
@ -1,6 +1,6 @@
|
|||||||
--- lib/error.c
|
--- lib/error.c
|
||||||
+++ lib/error.c Fri Mar 16 16:48:40 2001
|
+++ lib/error.c 2007-12-07 18:50:29.332479427 +0100
|
||||||
@@ -69,12 +69,15 @@
|
@@ -76,12 +76,15 @@ private_strerror (errnum)
|
||||||
#define strerror private_strerror
|
#define strerror private_strerror
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
@ -16,38 +16,22 @@
|
|||||||
void
|
void
|
||||||
#if defined(VA_START) && __STDC__
|
#if defined(VA_START) && __STDC__
|
||||||
error (int status, int errnum, const char *message, ...)
|
error (int status, int errnum, const char *message, ...)
|
||||||
@@ -117,3 +120,4 @@
|
@@ -137,3 +140,4 @@ error (status, errnum, message, va_alist
|
||||||
if (status)
|
|
||||||
exit (status);
|
exit (status);
|
||||||
|
}
|
||||||
}
|
}
|
||||||
+#endif
|
+#endif
|
||||||
--- lib/error.h
|
--- lib/error.h
|
||||||
+++ lib/error.h Fri Mar 16 16:45:18 2001
|
+++ lib/error.h 2007-12-07 18:51:53.803262466 +0100
|
||||||
@@ -7,10 +7,11 @@
|
@@ -29,9 +29,9 @@ extern int errno;
|
||||||
extern int errno;
|
|
||||||
#endif
|
|
||||||
|
|
||||||
+/* Use error() function of glibc */
|
|
||||||
#if __STDC__ && (HAVE_VPRINTF || HAVE_DOPRNT)
|
|
||||||
-void error (int, int, const char *, ...);
|
|
||||||
+extern void error (int, int, const char *, ...);
|
|
||||||
#else
|
|
||||||
-void error ();
|
|
||||||
+extern void error ();
|
|
||||||
#endif
|
|
||||||
|
|
||||||
#endif
|
|
||||||
--- lib/xmalloc.c
|
|
||||||
+++ lib/xmalloc.c Fri Mar 16 16:45:37 2001
|
|
||||||
@@ -44,9 +44,9 @@
|
|
||||||
int xmalloc_exit_failure = EXIT_FAILURE;
|
|
||||||
|
|
||||||
#if __STDC__ && (HAVE_VPRINTF || HAVE_DOPRNT)
|
|
||||||
-void error (int, int, const char *, ...);
|
|
||||||
+extern void error (int, int, const char *, ...);
|
|
||||||
#else
|
|
||||||
-void error ();
|
|
||||||
+extern void error ();
|
|
||||||
#endif
|
|
||||||
|
|
||||||
#include "manconfig.h"
|
#include "manconfig.h"
|
||||||
|
|
||||||
|
#if __STDC__ && (HAVE_VPRINTF || HAVE_DOPRNT)
|
||||||
|
-void error (int, int, const char *, ...) ATTRIBUTE_FORMAT_PRINTF(3, 4);
|
||||||
|
+extern void error (int, int, const char *, ...) ATTRIBUTE_FORMAT_PRINTF(3, 4);
|
||||||
|
#else
|
||||||
|
-void error ();
|
||||||
|
+extern void error ();
|
||||||
|
#endif
|
||||||
|
|
||||||
|
#endif
|
@ -1,14 +1,14 @@
|
|||||||
--- src/mandb.c
|
--- src/mandb.c
|
||||||
+++ src/mandb.c Fri Jul 11 17:48:41 2003
|
+++ src/mandb.c 2007-12-07 18:59:06.546515903 +0100
|
||||||
@@ -34,6 +34,7 @@
|
@@ -34,6 +34,7 @@
|
||||||
#include <errno.h>
|
#include <errno.h>
|
||||||
#include <sys/types.h>
|
#include <sys/types.h>
|
||||||
#include <sys/stat.h> /* for chmod() */
|
#include <sys/stat.h> /* for chmod() */
|
||||||
+#include <fcntl.h> /* for open () */
|
+#include <fcntl.h> /* for open () */
|
||||||
|
#include <dirent.h>
|
||||||
|
|
||||||
#if defined(STDC_HEADERS)
|
#if defined(STDC_HEADERS)
|
||||||
# include <string.h>
|
@@ -393,11 +394,20 @@ static short mandb (const char *catpath,
|
||||||
@@ -328,11 +331,20 @@
|
|
||||||
char pid[23];
|
char pid[23];
|
||||||
short amount;
|
short amount;
|
||||||
char *dbname;
|
char *dbname;
|
156
man-db-2.5.0-zio.dif
Normal file
156
man-db-2.5.0-zio.dif
Normal file
@ -0,0 +1,156 @@
|
|||||||
|
--- config.h.in
|
||||||
|
+++ config.h.in 2007-12-07 15:50:22.900940943 +0100
|
||||||
|
@@ -220,6 +220,9 @@
|
||||||
|
/* Define to 1 if you have the `z' library (-lz). */
|
||||||
|
#undef HAVE_LIBZ
|
||||||
|
|
||||||
|
+/* Define to 1 if you have libzio for opening compressed manuals */
|
||||||
|
+#undef HAVE_ZIO
|
||||||
|
+
|
||||||
|
/* Define to 1 if you have the <limits.h> header file. */
|
||||||
|
#undef HAVE_LIMITS_H
|
||||||
|
|
||||||
|
--- configure.ac
|
||||||
|
+++ configure.ac 2007-12-07 15:55:02.636618503 +0100
|
||||||
|
@@ -98,6 +98,18 @@ AC_ARG_WITH(config-file,
|
||||||
|
fi],
|
||||||
|
: ${config_file=\$\{sysconfdir\}/man_db.conf}
|
||||||
|
: ${config_file_basename=man_db.conf})
|
||||||
|
+AC_ARG_WITH(zio,
|
||||||
|
+[AS_HELP_STRING([--with-zio=LIBRARY], [use zlib/libbz2 wrapper library LIBRARY (libzio)])],
|
||||||
|
+ [if test -z "$withval" -o "$withval" = "yes"
|
||||||
|
+ then
|
||||||
|
+ zio=libzio
|
||||||
|
+ elif test "$withval" = "no"
|
||||||
|
+ then
|
||||||
|
+ AC_MSG_ERROR(--with-zio requires an argument)
|
||||||
|
+ else
|
||||||
|
+ zio=$withval
|
||||||
|
+ fi],
|
||||||
|
+ : ${zio=no})
|
||||||
|
dnl
|
||||||
|
dnl Finish the argument parsing
|
||||||
|
dnl
|
||||||
|
@@ -271,6 +283,29 @@ AC_SUBST(gunzip)dnl
|
||||||
|
AC_SUBST(uncompress)dnl
|
||||||
|
AC_SUBST(bunzip2)dnl
|
||||||
|
AC_CHECK_LIB(z, gzopen)
|
||||||
|
+dnl Check for zlib and libbz2 libraries to use this together
|
||||||
|
+dnl with SuSE's libzio to open compressed info files.
|
||||||
|
+dnl
|
||||||
|
+if test "$zio" = "no" || test -n "$zio"
|
||||||
|
+then
|
||||||
|
+ AC_CHECK_HEADER(zlib.h,[
|
||||||
|
+ for lib in z gz
|
||||||
|
+ do
|
||||||
|
+ AC_CHECK_LIB($lib, gzopen, [LIBS="$LIBS -l$lib" ; LEXLIB="$LEXLIB -l$lib" ; break])
|
||||||
|
+ done])
|
||||||
|
+ AC_CHECK_HEADER(bzlib.h,[
|
||||||
|
+ for lib in bz2 bzip2
|
||||||
|
+ do
|
||||||
|
+ AC_CHECK_LIB($lib, BZ2_bzopen, [LIBS="$LIBS -l$lib" ; LEXLIB="$LEXLIB -l$lib" ; break])
|
||||||
|
+ done])
|
||||||
|
+ AC_CHECK_HEADER(zio.h,[
|
||||||
|
+ for lib in ${zio#lib} zio
|
||||||
|
+ do
|
||||||
|
+ AC_CHECK_LIB($lib, fzopen, [LIBS="$LIBS -l$lib" ; LEXLIB="$LEXLIB -l$lib"
|
||||||
|
+ AC_DEFINE([COMP_SRC],[],[])
|
||||||
|
+ AC_DEFINE([HAVE_ZIO],[],[])])
|
||||||
|
+ done])
|
||||||
|
+fi
|
||||||
|
dnl
|
||||||
|
dnl to add more decompressors just follow the scheme above.
|
||||||
|
dnl
|
||||||
|
--- lib/decompress.c
|
||||||
|
+++ lib/decompress.c 2007-12-07 18:22:47.940413890 +0100
|
||||||
|
@@ -46,6 +46,10 @@
|
||||||
|
# include "zlib.h"
|
||||||
|
#endif /* HAVE_LIBZ */
|
||||||
|
|
||||||
|
+#ifdef HAVE_ZIO
|
||||||
|
+# include "zio.h"
|
||||||
|
+#endif /* HAVE_ZIO */
|
||||||
|
+
|
||||||
|
#include "manconfig.h"
|
||||||
|
#include "comp_src.h"
|
||||||
|
#include "pipeline.h"
|
||||||
|
@@ -76,6 +80,32 @@ static void decompress_zlib (void *data
|
||||||
|
|
||||||
|
#endif /* HAVE_LIBZ */
|
||||||
|
|
||||||
|
+#ifdef HAVE_ZIO
|
||||||
|
+
|
||||||
|
+static void decompress_zio (void *data)
|
||||||
|
+{
|
||||||
|
+ const char *what = (const char*)data;
|
||||||
|
+ FILE *file;
|
||||||
|
+
|
||||||
|
+ file = fdzopen(dup (fileno (stdin)), "r", what);
|
||||||
|
+ if (!file)
|
||||||
|
+ return;
|
||||||
|
+
|
||||||
|
+ for (;;) {
|
||||||
|
+ char buffer[4096];
|
||||||
|
+ int r = fread(buffer, sizeof(char), sizeof(buffer), file);
|
||||||
|
+ if (r <= 0)
|
||||||
|
+ break;
|
||||||
|
+ if (fwrite (buffer, 1, (size_t) r, stdout) < (size_t) r)
|
||||||
|
+ break;
|
||||||
|
+ }
|
||||||
|
+
|
||||||
|
+ fclose(file);
|
||||||
|
+ return;
|
||||||
|
+}
|
||||||
|
+
|
||||||
|
+#endif /* HAVE_ZIO */
|
||||||
|
+
|
||||||
|
pipeline *decompress_open (const char *filename)
|
||||||
|
{
|
||||||
|
command *cmd;
|
||||||
|
@@ -87,9 +117,45 @@ pipeline *decompress_open (const char *f
|
||||||
|
char *ext;
|
||||||
|
struct compression *comp;
|
||||||
|
|
||||||
|
- if (stat (filename, &st) < 0 && !S_ISDIR (st.st_mode))
|
||||||
|
+ if (stat (filename, &st) < 0 || S_ISDIR (st.st_mode))
|
||||||
|
return NULL;
|
||||||
|
|
||||||
|
+#ifdef HAVE_ZIO
|
||||||
|
+ ext = strrchr(filename, '.');
|
||||||
|
+ if (ext && STREQ (ext, ".gz")) {
|
||||||
|
+ /* informational only; no shell quoting concerns */
|
||||||
|
+ char *name = strappend (NULL, "zcat < ", filename, NULL);
|
||||||
|
+ cmd = command_new_function (name, &decompress_zio, "g");
|
||||||
|
+ free (name);
|
||||||
|
+ p = pipeline_new_commands (cmd, NULL);
|
||||||
|
+ goto got_pipeline;
|
||||||
|
+ }
|
||||||
|
+ if (ext && STREQ (ext, ".z")) {
|
||||||
|
+ /* informational only; no shell quoting concerns */
|
||||||
|
+ char *name = strappend (NULL, "zcat < ", filename, NULL);
|
||||||
|
+ cmd = command_new_function (name, &decompress_zio, "z");
|
||||||
|
+ free (name);
|
||||||
|
+ p = pipeline_new_commands (cmd, NULL);
|
||||||
|
+ goto got_pipeline;
|
||||||
|
+ }
|
||||||
|
+ if (ext && STREQ (ext, ".bz2")) {
|
||||||
|
+ /* informational only; no shell quoting concerns */
|
||||||
|
+ char *name = strappend (NULL, "bzcat < ", filename, NULL);
|
||||||
|
+ cmd = command_new_function (name, &decompress_zio, "b");
|
||||||
|
+ free (name);
|
||||||
|
+ p = pipeline_new_commands (cmd, NULL);
|
||||||
|
+ goto got_pipeline;
|
||||||
|
+ }
|
||||||
|
+ if (ext && STREQ (ext, ".Z")) {
|
||||||
|
+ /* informational only; no shell quoting concerns */
|
||||||
|
+ char *name = strappend (NULL, "zcat < ", filename, NULL);
|
||||||
|
+ cmd = command_new_function (name, &decompress_zio, "Z");
|
||||||
|
+ free (name);
|
||||||
|
+ p = pipeline_new_commands (cmd, NULL);
|
||||||
|
+ goto got_pipeline;
|
||||||
|
+ }
|
||||||
|
+#endif /* HAVE_ZIO */
|
||||||
|
+
|
||||||
|
#ifdef HAVE_LIBZ
|
||||||
|
filename_len = strlen (filename);
|
||||||
|
if (filename_len > 3 && STREQ (filename + filename_len - 3, ".gz")) {
|
File diff suppressed because it is too large
Load Diff
3
man-db-2.5.0.tar.bz2
Normal file
3
man-db-2.5.0.tar.bz2
Normal file
@ -0,0 +1,3 @@
|
|||||||
|
version https://git-lfs.github.com/spec/v1
|
||||||
|
oid sha256:e6dbb18464fe31cd52fb6287b63829e556a77746b81899c743c327b15ad9e434
|
||||||
|
size 746743
|
3
man-db_2.5.0-4.diff.bz2
Normal file
3
man-db_2.5.0-4.diff.bz2
Normal file
@ -0,0 +1,3 @@
|
|||||||
|
version https://git-lfs.github.com/spec/v1
|
||||||
|
oid sha256:7eb73655f06e81b910fad7a7c93b0b1ddd84fde0fec3a72c684f9e43bc7e0d9f
|
||||||
|
size 1230
|
10
man.changes
10
man.changes
@ -1,3 +1,13 @@
|
|||||||
|
-------------------------------------------------------------------
|
||||||
|
Mon Dec 10 17:23:04 CET 2007 - werner@suse.de
|
||||||
|
|
||||||
|
- Update to man-db 2.5.0-4
|
||||||
|
* No temporary files anymore due usage of pipes
|
||||||
|
* Our libzio patch is simply to add due this new API
|
||||||
|
* Better UTF-8 support
|
||||||
|
* Disable straycats for now
|
||||||
|
- Add sample script mancoding to show how to use encoding tag
|
||||||
|
|
||||||
-------------------------------------------------------------------
|
-------------------------------------------------------------------
|
||||||
Wed Sep 19 13:39:50 CEST 2007 - werner@suse.de
|
Wed Sep 19 13:39:50 CEST 2007 - werner@suse.de
|
||||||
|
|
||||||
|
167
man.spec
167
man.spec
@ -1,5 +1,5 @@
|
|||||||
#
|
#
|
||||||
# spec file for package man (Version 2.4.3)
|
# spec file for package man (Version 2.5.0)
|
||||||
#
|
#
|
||||||
# Copyright (c) 2007 SUSE LINUX Products GmbH, Nuernberg, Germany.
|
# Copyright (c) 2007 SUSE LINUX Products GmbH, Nuernberg, Germany.
|
||||||
# This file and all modifications and additions to the pristine
|
# This file and all modifications and additions to the pristine
|
||||||
@ -17,8 +17,8 @@ BuildRequires: gdbm-devel less libbz2-devel libzio-devel zlib-devel
|
|||||||
%else
|
%else
|
||||||
BuildRequires: libzio util-linux
|
BuildRequires: libzio util-linux
|
||||||
%endif
|
%endif
|
||||||
Version: 2.4.3
|
Version: 2.5.0
|
||||||
Release: 84
|
Release: 1
|
||||||
Summary: A Program for Displaying man Pages
|
Summary: A Program for Displaying man Pages
|
||||||
License: GPL v2 or later
|
License: GPL v2 or later
|
||||||
Group: System/Base
|
Group: System/Base
|
||||||
@ -30,17 +30,19 @@ Source: man-db-%{version}.tar.bz2
|
|||||||
Source1: sysconfig.cron-man
|
Source1: sysconfig.cron-man
|
||||||
Source2: cron.daily.do_mandb
|
Source2: cron.daily.do_mandb
|
||||||
Source3: cron.daily.clean_catman
|
Source3: cron.daily.clean_catman
|
||||||
|
Source4: mancoding
|
||||||
Patch0: man-db-%{version}.dif
|
Patch0: man-db-%{version}.dif
|
||||||
Patch1: man-db-%{version}-6.diff.bz2
|
Patch1: man-db_%{version}-4.diff.bz2
|
||||||
Patch2: man-db-2.3.19deb4.0-groff.dif
|
Patch2: man-db-2.3.19deb4.0-groff.dif
|
||||||
Patch3: man-db-2.4.1-error.dif
|
Patch3: man-db-%{version}-error.dif
|
||||||
Patch4: man-db-%{version}-section.dif
|
Patch4: man-db-2.4.3-section.dif
|
||||||
Patch5: man-db-2.4.1-security2.dif
|
Patch5: man-db-%{version}-security4.dif
|
||||||
Patch6: man-db-2.4.1-security4.dif
|
Patch6: man-db-2.4.3-firefox.dif
|
||||||
Patch7: man-db-2.4.3-firefox.dif
|
Patch7: man-db-%{version}-chinese.dif
|
||||||
Patch8: man-db-2.4.3-chinese.dif
|
Patch8: man-db-2.4.3-globbing.dif
|
||||||
Patch9: man-db-2.4.3-globbing.dif
|
Patch9: man-db-%{version}-zio.dif
|
||||||
BuildRoot: %{_tmppath}/%{name}-%{version}-build
|
BuildRoot: %{_tmppath}/%{name}-%{version}-build
|
||||||
|
%global _sysconfdir /etc
|
||||||
|
|
||||||
%description
|
%description
|
||||||
A program for displaying man pages on the screen or sending them to a
|
A program for displaying man pages on the screen or sending them to a
|
||||||
@ -58,43 +60,87 @@ Authors:
|
|||||||
%patch2 -p0 -b .groff
|
%patch2 -p0 -b .groff
|
||||||
%patch3 -p0 -b .err
|
%patch3 -p0 -b .err
|
||||||
%patch4 -p0 -b .sect
|
%patch4 -p0 -b .sect
|
||||||
%patch5 -p0 -b .secu2
|
%patch5 -p0 -b .secu4
|
||||||
%patch6 -p0 -b .secu4
|
%patch6 -p0 -b .firefox
|
||||||
%patch7 -p0 -b .firefox
|
%patch7 -p0 -b .chinese
|
||||||
%patch8 -p0 -b .chinese
|
%patch8 -p0 -b .globbing
|
||||||
%patch9 -p0 -b .globbing
|
%patch9 -p0 -b .zio
|
||||||
%patch -p0
|
%patch -p0
|
||||||
|
|
||||||
%build
|
%build
|
||||||
%{?suse_update_config:%{suse_update_config -f tools }}
|
%{?suse_update_config:%{suse_update_config -f tools }}
|
||||||
gettextize --force --copy --no-changelog
|
gettextize --force --copy --no-changelog
|
||||||
rm -f configure GNUmakefile
|
rm -f configure GNUmakefile
|
||||||
echo $RPM_OPT_FLAGS
|
CFLAGS="${RPM_OPT_FLAGS} -funroll-loops -pipe -D_GNU_SOURCE -D_SVID_SOURCE -Wall"
|
||||||
make -f Makefile.Linux compile MANDIR=%{_mandir} SYSCONFDIR=%{_sysconfdir}
|
LDFLAGS=
|
||||||
|
LIBS=
|
||||||
|
export CFLAGS LDFLAGS LIBS
|
||||||
|
# aclocal
|
||||||
|
autoconf
|
||||||
|
./configure \
|
||||||
|
--enable-dups \
|
||||||
|
--enable-setuid=man \
|
||||||
|
--with-device=utf8 \
|
||||||
|
--prefix=%{_prefix} \
|
||||||
|
--mandir=%{_mandir} \
|
||||||
|
--localstatedir=%{_localstatedir} \
|
||||||
|
--with-zio \
|
||||||
|
--with-gnu-ld \
|
||||||
|
--disable-rpath \
|
||||||
|
--enable-mb-groff \
|
||||||
|
--with-db=gdbm \
|
||||||
|
--enable-nls \
|
||||||
|
--with-config-file=%{_sysconfdir}/manpath.config \
|
||||||
|
--without-included-gettext
|
||||||
|
make nls=all
|
||||||
|
for man in $(find man/*.UTF-8 -type f); do
|
||||||
|
pp="$(head -n 1 $man)"
|
||||||
|
case "$pp" in
|
||||||
|
\'\\\"*\ -\*-\ coding:\ *\ -\*-)
|
||||||
|
continue
|
||||||
|
;;
|
||||||
|
\'\\\"*)
|
||||||
|
sed -ri "1{ s/('\\\\\".*)/\\1 -\*- coding: UTF-8 -\*-/ }" $man
|
||||||
|
;;
|
||||||
|
*)
|
||||||
|
sed -ri "1 i\
|
||||||
|
'\\\\\" -\*- coding: UTF-8 -\*-\
|
||||||
|
" $man
|
||||||
|
esac
|
||||||
|
done
|
||||||
|
|
||||||
%install
|
%install
|
||||||
set +o posix
|
rm -rf %{buildroot}%{_localstatedir}/cache/man
|
||||||
#touch /tmp/bstamp; sleep 3; sync
|
mkdir -p %{buildroot}%{_prefix}/lib/man-db
|
||||||
rm -rf ${RPM_BUILD_ROOT}/var/cache/man
|
mkdir -p %{buildroot}%{_bindir}
|
||||||
DESTDIR=${RPM_BUILD_ROOT}
|
mkdir -p %{buildroot}/etc
|
||||||
export DESTDIR
|
make nls=all install DESTDIR=%{buildroot}
|
||||||
make -f Makefile.Linux install MANDIR=%{_mandir}
|
if test -x %{buildroot}%{_bindir}/wrapper ; then
|
||||||
mkdir -p ${RPM_BUILD_ROOT}/usr/share/groff/site-tmac
|
rm -f %{buildroot}%{_bindir}/mandb
|
||||||
install -m 0644 groff/tmac.andb ${RPM_BUILD_ROOT}/usr/share/groff/site-tmac/
|
rm -f %{buildroot}%{_bindir}/man
|
||||||
install -m 0644 groff/tmac.andocdb ${RPM_BUILD_ROOT}/usr/share/groff/site-tmac/
|
mv %{buildroot}%{_bindir}/wrapper %{buildroot}%{_bindir}/mandb
|
||||||
mkdir -p ${RPM_BUILD_ROOT}/var/adm/fillup-templates
|
ln -sf mandb %{buildroot}%{_bindir}/man
|
||||||
mkdir -p ${RPM_BUILD_ROOT}/etc/cron.daily
|
fi
|
||||||
install -m 0644 %{SOURCE1} ${RPM_BUILD_ROOT}/var/adm/fillup-templates
|
mkdir -p %{buildroot}%{_mandir}
|
||||||
install -m 0744 %{SOURCE2} ${RPM_BUILD_ROOT}/etc/cron.daily/suse-do_mandb
|
pushd %{buildroot}%{_mandir}/
|
||||||
install -m 0744 %{SOURCE3} ${RPM_BUILD_ROOT}/etc/cron.daily/suse-clean_catman
|
rm -rf *.ascii/
|
||||||
/usr/sbin/Check
|
for d in *.UTF-8 ; do
|
||||||
#touch /tmp/estamp; sleep 3; sync
|
find -name '*.[1-9nlop]' | xargs gzip -9f
|
||||||
#(
|
done
|
||||||
# find / -xdev \( -newer /tmp/bstamp -a \( -not -newer /tmp/estamp \) \) -a \( \
|
for d in `find -name manpath.5.gz -printf '%%h '` ; do
|
||||||
# \( \( \( -not -type d \) -a \( -not -type l \) \) -printf '%%p\n' \) -o \
|
ln -sf manpath.5.gz $d/manpath.config.5.gz
|
||||||
# \( -type d -printf '%%p/\n' \) -o \( -type l -printf '%%p\n' \) \)
|
done
|
||||||
#) > >(sort -u -t / | grep -vE '^(/tmp|/proc|/usr/src/packages)' > /tmp/man.list)
|
popd
|
||||||
#rm /tmp/estamp /tmp/bstamp
|
install -m 644 src/man_db.conf %{buildroot}%{_sysconfdir}/manpath.config
|
||||||
|
sh ./mk_catdirs %{buildroot}
|
||||||
|
mkdir -p %{buildroot}%{_datadir}/groff/site-tmac
|
||||||
|
install -m 0644 groff/tmac.andb %{buildroot}%{_datadir}/groff/site-tmac/
|
||||||
|
install -m 0644 groff/tmac.andocdb %{buildroot}%{_datadir}/groff/site-tmac/
|
||||||
|
mkdir -p %{buildroot}%{_localstatedir}/adm/fillup-templates
|
||||||
|
mkdir -p %{buildroot}/etc/cron.daily
|
||||||
|
install -m 0644 %{SOURCE1} %{buildroot}%{_localstatedir}/adm/fillup-templates
|
||||||
|
install -m 0744 %{SOURCE2} %{buildroot}/etc/cron.daily/suse-do_mandb
|
||||||
|
install -m 0744 %{SOURCE3} %{buildroot}/etc/cron.daily/suse-clean_catman
|
||||||
%find_lang man-db
|
%find_lang man-db
|
||||||
|
|
||||||
%pre
|
%pre
|
||||||
@ -108,20 +154,21 @@ test -d var/catman/ && rm -rf var/catman/ || true
|
|||||||
%config /etc/manpath.config
|
%config /etc/manpath.config
|
||||||
%attr(0744,root,root) /etc/cron.daily/suse-clean_catman
|
%attr(0744,root,root) /etc/cron.daily/suse-clean_catman
|
||||||
%attr(0744,root,root) /etc/cron.daily/suse-do_mandb
|
%attr(0744,root,root) /etc/cron.daily/suse-do_mandb
|
||||||
/usr/bin/apropos
|
%{_bindir}/apropos
|
||||||
/usr/bin/catman
|
%{_bindir}/catman
|
||||||
/usr/bin/lexgrog
|
%{_bindir}/lexgrog
|
||||||
%attr(4755,root,root) /usr/bin/man
|
%attr(4755,root,root) %{_bindir}/man
|
||||||
%attr(4755,root,root) /usr/bin/mandb
|
%attr(4755,root,root) %{_bindir}/mandb
|
||||||
/usr/bin/manpath
|
%{_bindir}/manpath
|
||||||
/usr/bin/whatis
|
%{_bindir}/whatis
|
||||||
/usr/bin/zsoelim
|
%{_bindir}/zsoelim
|
||||||
%dir %attr(0711,root,root) /usr/lib/man-db
|
%dir %attr(0711,root,root) %{_prefix}/lib/man-db
|
||||||
%attr(0711,root,root) /usr/lib/man-db/man
|
%attr(0711,root,root) %{_prefix}/lib/man-db/man
|
||||||
%attr(0711,root,root) /usr/lib/man-db/mandb
|
%attr(0711,root,root) %{_prefix}/lib/man-db/mandb
|
||||||
/usr/sbin/accessdb
|
%attr(0755,man,man) %{_prefix}/lib/man-db/manconv
|
||||||
/usr/share/groff/site-tmac/tmac.andb
|
%{_sbindir}/accessdb
|
||||||
/usr/share/groff/site-tmac/tmac.andocdb
|
%{_datadir}/groff/site-tmac/tmac.andb
|
||||||
|
%{_datadir}/groff/site-tmac/tmac.andocdb
|
||||||
%dir %{_mandir}/de
|
%dir %{_mandir}/de
|
||||||
%dir %{_mandir}/de/man1
|
%dir %{_mandir}/de/man1
|
||||||
%doc %{_mandir}/de/man1/*.1.gz
|
%doc %{_mandir}/de/man1/*.1.gz
|
||||||
@ -161,9 +208,17 @@ test -d var/catman/ && rm -rf var/catman/ || true
|
|||||||
%doc %{_mandir}/man5/*.5.gz
|
%doc %{_mandir}/man5/*.5.gz
|
||||||
%doc %{_mandir}/man8/*.8.gz
|
%doc %{_mandir}/man8/*.8.gz
|
||||||
%defattr(-,man,daemon)
|
%defattr(-,man,daemon)
|
||||||
/var/cache/man/*
|
%{_localstatedir}/cache/man/*
|
||||||
/var/adm/fillup-templates/sysconfig.cron-man
|
%{_localstatedir}/adm/fillup-templates/sysconfig.cron-man
|
||||||
|
|
||||||
%changelog
|
%changelog
|
||||||
|
* Mon Dec 10 2007 - werner@suse.de
|
||||||
|
- Update to man-db 2.5.0-4
|
||||||
|
* No temporary files anymore due usage of pipes
|
||||||
|
* Our libzio patch is simply to add due this new API
|
||||||
|
* Better UTF-8 support
|
||||||
|
* Disable straycats for now
|
||||||
|
- Add sample script mancoding to show how to use encoding tag
|
||||||
* Wed Sep 19 2007 - werner@suse.de
|
* Wed Sep 19 2007 - werner@suse.de
|
||||||
- Be sure that e.g. /usr/share/man/man3p/open.3p.gz is found before
|
- Be sure that e.g. /usr/share/man/man3p/open.3p.gz is found before
|
||||||
/usr/share/man/man3/open.3pm.gz by "man 3p open" (bug #310498)
|
/usr/share/man/man3/open.3pm.gz by "man 3p open" (bug #310498)
|
||||||
|
54
mancoding
Normal file
54
mancoding
Normal file
@ -0,0 +1,54 @@
|
|||||||
|
#!/bin/bash
|
||||||
|
#
|
||||||
|
# Copyright (c) 2007 Werner Fink
|
||||||
|
# Copyright (c) 2007 SuSE Linux Products GmbH, Nuernberg, Germany.
|
||||||
|
#
|
||||||
|
# This library is free software; you can redistribute it and/or modify it
|
||||||
|
# under the terms of the GNU Lesser General Public License as published by
|
||||||
|
# the Free Software Foundation; either version 2.1 of the License, or (at
|
||||||
|
# your option) any later version.
|
||||||
|
#
|
||||||
|
# This library is distributed in the hope that it will be useful, but
|
||||||
|
# WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||||
|
# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
|
||||||
|
# Lesser General Public License for more details.
|
||||||
|
#
|
||||||
|
# For a copy see <http://www.gnu.org/licenses/old-licenses/lgpl-2.1.html>
|
||||||
|
#
|
||||||
|
# Author: Werner Fink <werner@suse.de>
|
||||||
|
|
||||||
|
docode=yes
|
||||||
|
if test "$1" = "-e" ; then
|
||||||
|
shift
|
||||||
|
encode=$1
|
||||||
|
docode=no
|
||||||
|
shift
|
||||||
|
fi
|
||||||
|
|
||||||
|
for man; do
|
||||||
|
pp="$(head -n 1 $man)"
|
||||||
|
case "$pp" in
|
||||||
|
\'\\\"*\ -\*-\ coding:\ *\ -\*-)
|
||||||
|
continue
|
||||||
|
esac
|
||||||
|
if test "$docode" = "yes" ; then
|
||||||
|
encode=$(sed -r "s/^(\.[[:alpha:]]{1,2}|\.\\\\\".*|'\\\\\".*)//;s/\\f[[:alpha:]]//;s/\\\\\".*//" $man | file -b -)
|
||||||
|
encode=${encode%% *}
|
||||||
|
fi
|
||||||
|
case "$encode" in
|
||||||
|
ISO-8859)
|
||||||
|
echo "${0##*/}: The encoding $encode does not include the Latin Alphabet Number" 1>&2
|
||||||
|
echo "${0##*/}: use option -e to specify" 1>&2
|
||||||
|
echo " ${0##*/} -e ISO-8859-<number> $man" 1>&2
|
||||||
|
exit 1
|
||||||
|
esac
|
||||||
|
case "$pp" in
|
||||||
|
\'\\\"*)
|
||||||
|
sed -ri "1{s/('\\\\\".*)/\\1 -\*- coding: UTF-8 -\*-/}" $man
|
||||||
|
;;
|
||||||
|
*)
|
||||||
|
sed -ri "1 i\
|
||||||
|
'\\\\\" -\*- coding: UTF-8 -\*-\
|
||||||
|
" $man
|
||||||
|
esac
|
||||||
|
done
|
Loading…
Reference in New Issue
Block a user