Репозиторий Sisyphus
Последнее обновление: 1 октября 2023 | Пакетов: 18631 | Посещений: 37432873
en ru br
Репозитории ALT
S:1.1.5-alt1
5.1: 1.0.2-alt3
4.1: 1.0.2-alt2
4.0: 1.0.2-alt2
www.altlinux.org/Changes

Группа :: Система/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
 
дизайн и разработка: Vladimir Lettiev aka crux © 2004-2005, Andrew Avramenko aka liks © 2007-2008
текущий майнтейнер: Michael Shigorin