Репозитории ALT
S: | 1.1.5-alt1 |
5.1: | 1.0.2-alt3 |
4.1: | 1.0.2-alt2 |
4.0: | 1.0.2-alt2 |
Группа :: Система/X11
Пакет: xman
Главная Изменения Спек Патчи Sources Загрузить Gear Bugs and FR Repocop
Патч: 0001-Add-xz-compressed-man-pages.patch
Скачать
Скачать
From f45e7a9e7c9df5fee873d4e5e121918684766dac Mon Sep 17 00:00:00 2001
From: Denis Medvedev <nbr@altlinux.org>
Date: Wed, 8 Nov 2017 14:43:45 +0300
Subject: [PATCH 1/2] Add xz compressed man pages.
---
xman/man.c | 8 ++++++++
xman/misc.c | 38 ++++++++++++++++++++++++++++++++++++++
xman/vendor.h | 3 +++
3 files changed, 49 insertions(+)
diff --git a/xman/man.c b/xman/man.c
index b430060..6fe5404 100644
--- a/xman/man.c
+++ b/xman/man.c
@@ -455,6 +455,10 @@ ReadCurrentSection(Manual * local_manual, char *path)
else if (streq(ptr + 1, LZMA_EXTENSION))
*ptr = '\0';
#endif
+#ifdef XZ_EXTENSION
+ else if (streq(ptr + 1, XZ_EXTENSION))
+ *ptr = '\0';
+#endif
}
nentries = local_manual->nentries;
@@ -501,6 +505,10 @@ ReadCurrentSection(Manual * local_manual, char *path)
else if (streq(ptr + 1, LZMA_EXTENSION))
*ptr = '\0';
#endif
+#ifdef XZ_EXTENSION
+ else if (streq(ptr + 1, XZ_EXTENSION))
+ *ptr = '\0';
+#endif
#ifdef IGNORE_EXTENSION
/* skip files with specified extension - they're not real man pages */
else if (streq(ptr + 1, IGNORE_EXTENSION)) {
diff --git a/xman/misc.c b/xman/misc.c
index 06891cd..7ee9e13 100644
--- a/xman/misc.c
+++ b/xman/misc.c
@@ -277,6 +277,14 @@ FindManualFile(ManpageGlobals * man_globals, int section_num, int entry_num)
return (file);
}
#endif
+#ifdef XZ_EXTENSION
+ {
+ snprintf(filename, sizeof(filename), "%s/%s%s/%s.%s", path, CAT,
+ section + len_cat, page, XZ_EXTENSION);
+ if ((file = Uncompress(man_globals, filename)) != NULL)
+ return (file);
+ }
+#endif
#else
for (i = 0; i < strlen(COMPRESSION_EXTENSIONS); i++) {
snprintf(filename, sizeof(filename), "%s/%s%s/%s.%c", path, CAT,
@@ -424,6 +432,12 @@ UncompressNamed(ManpageGlobals * man_globals, const char *filename,
snprintf(cmdbuf, sizeof(cmdbuf), UNLZMA_FORMAT, filename, output);
else
#endif
+#ifdef XZ_EXTENSION
+ if (streq(filename + strlen(filename) - strlen(XZ_EXTENSION),
+ XZ_EXTENSION))
+ snprintf(cmdbuf, sizeof(cmdbuf), UNXZ_FORMAT, filename, output);
+ else
+#endif
snprintf(cmdbuf, sizeof(cmdbuf), UNCOMPRESS_FORMAT, filename, output);
if (system(cmdbuf) == 0) /* execute search. */
return (TRUE);
@@ -881,6 +895,18 @@ UncompressUnformatted(ManpageGlobals * man_globals, const char *entry,
}
}
#endif /* LZMA_EXTENSION */
+#ifdef XZ_EXTENSION
+ {
+ snprintf(input, sizeof(input), "%s.%s", filename, XZ_EXTENSION);
+ if (UncompressNamed(man_globals, input, filename, file)) {
+ man_globals->compress = TRUE;
+ snprintf(man_globals->save_file, sizeof(man_globals->save_file),
+ "%s/%s%s/%s.%s", path, CAT, section + len_cat, page,
+ XZ_EXTENSION);
+ return (TRUE);
+ }
+ }
+#endif /* XZ_EXTENSION */
/*
* Look for uncompressed file first.
@@ -968,6 +994,18 @@ UncompressUnformatted(ManpageGlobals * man_globals, const char *entry,
}
}
#endif
+#ifdef XZ_EXTENSION
+ {
+ snprintf(input, sizeof(input), "%s.%s", filename, XZ_EXTENSION);
+ if (UncompressNamed(man_globals, input, filename, file)) {
+ man_globals->compress = TRUE;
+ snprintf(man_globals->save_file, sizeof(man_globals->save_file),
+ "%s/%s%s/%s.%s", path, CAT, section + len_cat, page,
+ XZ_EXTENSION);
+ return (TRUE);
+ }
+ }
+#endif
/*
* And lastly files in a compressed directory.
diff --git a/xman/vendor.h b/xman/vendor.h
index d217c2a..7120016 100644
--- a/xman/vendor.h
+++ b/xman/vendor.h
@@ -116,6 +116,9 @@ from the X Consortium.
# define LZMA_EXTENSION "lzma"
# define UNLZMA_FORMAT "unlzma -c -d < %s >> %s"
# define LZMA_COMPRESS "lzma"
+# define XZ_EXTENSION "xz"
+# define UNXZ_FORMAT "unxz -c < %s >> %s"
+# define XZ_COMPRESS "xz"
#endif
--
2.10.4