Compare commits
No commits in common. 'c9' and 'i10c-beta' have entirely different histories.
@ -1 +1 @@
|
|||||||
SOURCES/v0.13.71-pruned.tar.gz
|
SOURCES/v0.13.74.tar.gz
|
||||||
|
@ -1 +1 @@
|
|||||||
8f4b65912e109f1841387a67b47a4626aca129bb SOURCES/v0.13.71-pruned.tar.gz
|
7691e6aa7f82600de7958bf359e82420d0596e31 SOURCES/v0.13.74.tar.gz
|
||||||
|
@ -1,218 +0,0 @@
|
|||||||
From ac9ae39ef419e9f0f83da1e583314d8c7cda34a6 Mon Sep 17 00:00:00 2001
|
|
||||||
From: Guido Draheim <guidod@gmx.de>
|
|
||||||
Date: Mon, 4 Jan 2021 21:48:45 +0100
|
|
||||||
Subject: [PATCH 1/7] #68 ssize_t return value of zzip_file_read is a signed
|
|
||||||
value being possibly -1
|
|
||||||
|
|
||||||
---
|
|
||||||
bins/unzzipcat-zip.c | 2 +-
|
|
||||||
1 file changed, 1 insertion(+), 1 deletion(-)
|
|
||||||
|
|
||||||
diff --git a/bins/unzzipcat-zip.c b/bins/unzzipcat-zip.c
|
|
||||||
index dd78c2b..385aeaf 100644
|
|
||||||
--- a/bins/unzzipcat-zip.c
|
|
||||||
+++ b/bins/unzzipcat-zip.c
|
|
||||||
@@ -34,7 +34,7 @@ static void unzzip_cat_file(ZZIP_DIR* disk, char* name, FILE* out)
|
|
||||||
if (file)
|
|
||||||
{
|
|
||||||
char buffer[1024]; int len;
|
|
||||||
- while ((len = zzip_file_read (file, buffer, 1024)))
|
|
||||||
+ while (0 < (len = zzip_file_read (file, buffer, 1024)))
|
|
||||||
{
|
|
||||||
fwrite (buffer, 1, len, out);
|
|
||||||
}
|
|
||||||
--
|
|
||||||
2.32.0
|
|
||||||
|
|
||||||
|
|
||||||
From 7e786544084548da7fcfcd9090d3c4e7f5777f7e Mon Sep 17 00:00:00 2001
|
|
||||||
From: Guido Draheim <guidod@gmx.de>
|
|
||||||
Date: Mon, 4 Jan 2021 21:50:26 +0100
|
|
||||||
Subject: [PATCH 2/7] #68 return value of zzip_mem_disk_fread is signed
|
|
||||||
|
|
||||||
---
|
|
||||||
bins/unzip-mem.c | 4 ++--
|
|
||||||
1 file changed, 2 insertions(+), 2 deletions(-)
|
|
||||||
|
|
||||||
diff --git a/bins/unzip-mem.c b/bins/unzip-mem.c
|
|
||||||
index cc009f8..50eb5a6 100644
|
|
||||||
--- a/bins/unzip-mem.c
|
|
||||||
+++ b/bins/unzip-mem.c
|
|
||||||
@@ -81,7 +81,7 @@ static void zzip_mem_entry_pipe(ZZIP_MEM_DISK* disk,
|
|
||||||
if (file)
|
|
||||||
{
|
|
||||||
char buffer[1024]; int len;
|
|
||||||
- while ((len = zzip_mem_disk_fread (buffer, 1024, 1, file)))
|
|
||||||
+ while (0 < (len = zzip_mem_disk_fread (buffer, 1024, 1, file)))
|
|
||||||
fwrite (buffer, len, 1, out);
|
|
||||||
|
|
||||||
zzip_mem_disk_fclose (file);
|
|
||||||
@@ -115,7 +115,7 @@ static void zzip_mem_entry_test(ZZIP_MEM_DISK* disk,
|
|
||||||
{
|
|
||||||
unsigned long crc = crc32 (0L, NULL, 0);
|
|
||||||
unsigned char buffer[1024]; int len;
|
|
||||||
- while ((len = zzip_mem_disk_fread (buffer, 1024, 1, file))) {
|
|
||||||
+ while (0 < (len = zzip_mem_disk_fread (buffer, 1024, 1, file))) {
|
|
||||||
crc = crc32 (crc, buffer, len);
|
|
||||||
}
|
|
||||||
|
|
||||||
--
|
|
||||||
2.32.0
|
|
||||||
|
|
||||||
|
|
||||||
From d453977f59ca59c61bf59dec28dd724498828f2a Mon Sep 17 00:00:00 2001
|
|
||||||
From: Guido Draheim <guidod@gmx.de>
|
|
||||||
Date: Mon, 4 Jan 2021 21:51:12 +0100
|
|
||||||
Subject: [PATCH 3/7] #68 return value of zzip_entry_fread is signed
|
|
||||||
|
|
||||||
---
|
|
||||||
bins/unzzipcat-big.c | 4 ++--
|
|
||||||
1 file changed, 2 insertions(+), 2 deletions(-)
|
|
||||||
|
|
||||||
diff --git a/bins/unzzipcat-big.c b/bins/unzzipcat-big.c
|
|
||||||
index 111ef47..ecebe11 100644
|
|
||||||
--- a/bins/unzzipcat-big.c
|
|
||||||
+++ b/bins/unzzipcat-big.c
|
|
||||||
@@ -26,7 +26,7 @@ static void unzzip_big_entry_fprint(ZZIP_ENTRY* entry, FILE* out)
|
|
||||||
if (file)
|
|
||||||
{
|
|
||||||
char buffer[1024]; int len;
|
|
||||||
- while ((len = zzip_entry_fread (buffer, 1024, 1, file)))
|
|
||||||
+ while (0 < (len = zzip_entry_fread (buffer, 1024, 1, file)))
|
|
||||||
{
|
|
||||||
DBG2("entry read %i", len);
|
|
||||||
fwrite (buffer, len, 1, out);
|
|
||||||
@@ -45,7 +45,7 @@ static void unzzip_cat_file(FILE* disk, char* name, FILE* out)
|
|
||||||
if (file)
|
|
||||||
{
|
|
||||||
char buffer[1024]; int len;
|
|
||||||
- while ((len = zzip_entry_fread (buffer, 1024, 1, file)))
|
|
||||||
+ while (0 < (len = zzip_entry_fread (buffer, 1024, 1, file)))
|
|
||||||
fwrite (buffer, len, 1, out);
|
|
||||||
|
|
||||||
zzip_entry_fclose (file);
|
|
||||||
--
|
|
||||||
2.32.0
|
|
||||||
|
|
||||||
|
|
||||||
From 0a9db9ded9d15fbdb63bf5cf451920d0a368c00e Mon Sep 17 00:00:00 2001
|
|
||||||
From: Guido Draheim <guidod@gmx.de>
|
|
||||||
Date: Mon, 4 Jan 2021 21:51:56 +0100
|
|
||||||
Subject: [PATCH 4/7] #68 return value of zzip_mem_disk_fread is signed
|
|
||||||
|
|
||||||
---
|
|
||||||
bins/unzzipcat-mem.c | 4 ++--
|
|
||||||
1 file changed, 2 insertions(+), 2 deletions(-)
|
|
||||||
|
|
||||||
diff --git a/bins/unzzipcat-mem.c b/bins/unzzipcat-mem.c
|
|
||||||
index 6bd79b7..1b5bc22 100644
|
|
||||||
--- a/bins/unzzipcat-mem.c
|
|
||||||
+++ b/bins/unzzipcat-mem.c
|
|
||||||
@@ -35,7 +35,7 @@ static void unzzip_mem_entry_fprint(ZZIP_MEM_DISK* disk,
|
|
||||||
if (file)
|
|
||||||
{
|
|
||||||
char buffer[1024]; int len;
|
|
||||||
- while ((len = zzip_mem_disk_fread (buffer, 1024, 1, file)))
|
|
||||||
+ while (0 < (len = zzip_mem_disk_fread (buffer, 1024, 1, file)))
|
|
||||||
fwrite (buffer, len, 1, out);
|
|
||||||
|
|
||||||
zzip_mem_disk_fclose (file);
|
|
||||||
@@ -48,7 +48,7 @@ static void unzzip_mem_disk_cat_file(ZZIP_MEM_DISK* disk, char* name, FILE* out)
|
|
||||||
if (file)
|
|
||||||
{
|
|
||||||
char buffer[1025]; int len;
|
|
||||||
- while ((len = zzip_mem_disk_fread (buffer, 1, 1024, file)))
|
|
||||||
+ while (0 < (len = zzip_mem_disk_fread (buffer, 1, 1024, file)))
|
|
||||||
{
|
|
||||||
fwrite (buffer, 1, len, out);
|
|
||||||
}
|
|
||||||
--
|
|
||||||
2.32.0
|
|
||||||
|
|
||||||
|
|
||||||
From a34a96fbda1e58fbec5c79f4c0b5063e031ce11d Mon Sep 17 00:00:00 2001
|
|
||||||
From: Guido Draheim <guidod@gmx.de>
|
|
||||||
Date: Mon, 4 Jan 2021 21:52:47 +0100
|
|
||||||
Subject: [PATCH 5/7] #68 return value of zzip_fread is signed
|
|
||||||
|
|
||||||
---
|
|
||||||
bins/unzzipcat-mix.c | 2 +-
|
|
||||||
1 file changed, 1 insertion(+), 1 deletion(-)
|
|
||||||
|
|
||||||
diff --git a/bins/unzzipcat-mix.c b/bins/unzzipcat-mix.c
|
|
||||||
index e18987d..8f3d0b8 100644
|
|
||||||
--- a/bins/unzzipcat-mix.c
|
|
||||||
+++ b/bins/unzzipcat-mix.c
|
|
||||||
@@ -34,7 +34,7 @@ static void unzzip_cat_file(ZZIP_DIR* disk, char* name, FILE* out)
|
|
||||||
if (file)
|
|
||||||
{
|
|
||||||
char buffer[1024]; int len;
|
|
||||||
- while ((len = zzip_fread (buffer, 1, 1024, file)))
|
|
||||||
+ while (0 < (len = zzip_fread (buffer, 1, 1024, file)))
|
|
||||||
{
|
|
||||||
fwrite (buffer, 1, len, out);
|
|
||||||
}
|
|
||||||
--
|
|
||||||
2.32.0
|
|
||||||
|
|
||||||
|
|
||||||
From fa1f78abe1b08544061204019016809664f2618c Mon Sep 17 00:00:00 2001
|
|
||||||
From: Guido Draheim <guidod@gmx.de>
|
|
||||||
Date: Mon, 4 Jan 2021 21:53:50 +0100
|
|
||||||
Subject: [PATCH 6/7] #68 return value of zzip_entry_fread is signed
|
|
||||||
|
|
||||||
---
|
|
||||||
bins/unzzipshow.c | 4 ++--
|
|
||||||
1 file changed, 2 insertions(+), 2 deletions(-)
|
|
||||||
|
|
||||||
diff --git a/bins/unzzipshow.c b/bins/unzzipshow.c
|
|
||||||
index 9d8c2ed..5672d3b 100644
|
|
||||||
--- a/bins/unzzipshow.c
|
|
||||||
+++ b/bins/unzzipshow.c
|
|
||||||
@@ -22,7 +22,7 @@ static void zzip_entry_fprint(ZZIP_ENTRY* entry, FILE* out)
|
|
||||||
if (file)
|
|
||||||
{
|
|
||||||
char buffer[1024]; int len;
|
|
||||||
- while ((len = zzip_entry_fread (buffer, 1024, 1, file)))
|
|
||||||
+ while (0 < (len = zzip_entry_fread (buffer, 1024, 1, file)))
|
|
||||||
fwrite (buffer, len, 1, out);
|
|
||||||
|
|
||||||
zzip_entry_fclose (file);
|
|
||||||
@@ -35,7 +35,7 @@ static void zzip_cat_file(FILE* disk, char* name, FILE* out)
|
|
||||||
if (file)
|
|
||||||
{
|
|
||||||
char buffer[1024]; int len;
|
|
||||||
- while ((len = zzip_entry_fread (buffer, 1024, 1, file)))
|
|
||||||
+ while (0 < (len = zzip_entry_fread (buffer, 1024, 1, file)))
|
|
||||||
fwrite (buffer, len, 1, out);
|
|
||||||
|
|
||||||
zzip_entry_fclose (file);
|
|
||||||
--
|
|
||||||
2.32.0
|
|
||||||
|
|
||||||
|
|
||||||
From f7a6fa9f0c29aecb4c2299568ed2e6094c34aca7 Mon Sep 17 00:00:00 2001
|
|
||||||
From: Guido Draheim <guidod@gmx.de>
|
|
||||||
Date: Mon, 4 Jan 2021 21:55:08 +0100
|
|
||||||
Subject: [PATCH 7/7] #68 return value of posix read(2) is signed
|
|
||||||
|
|
||||||
---
|
|
||||||
bins/zzipmake-zip.c | 2 +-
|
|
||||||
1 file changed, 1 insertion(+), 1 deletion(-)
|
|
||||||
|
|
||||||
diff --git a/bins/zzipmake-zip.c b/bins/zzipmake-zip.c
|
|
||||||
index 8e09c31..b37877c 100644
|
|
||||||
--- a/bins/zzipmake-zip.c
|
|
||||||
+++ b/bins/zzipmake-zip.c
|
|
||||||
@@ -57,7 +57,7 @@ int rezzip_make (int argc, char ** argv)
|
|
||||||
continue;
|
|
||||||
}
|
|
||||||
|
|
||||||
- while ((n = read (input, buf, 16)))
|
|
||||||
+ while (0 < (n = read (input, buf, 16)))
|
|
||||||
{
|
|
||||||
zzip_write (output, buf, n);
|
|
||||||
}
|
|
||||||
--
|
|
||||||
2.32.0
|
|
||||||
|
|
@ -1,23 +0,0 @@
|
|||||||
From 803f49aaae16b7f2899e4769afdfc673a21fa9e8 Mon Sep 17 00:00:00 2001
|
|
||||||
From: Guido Draheim <guidod@gmx.de>
|
|
||||||
Date: Mon, 26 Feb 2024 23:17:12 +0100
|
|
||||||
Subject: [PATCH] #69 assert full zzip_file_header
|
|
||||||
|
|
||||||
---
|
|
||||||
zzip/mmapped.c | 3 ++-
|
|
||||||
1 file changed, 2 insertions(+), 1 deletion(-)
|
|
||||||
|
|
||||||
diff --git a/zzip/mmapped.c b/zzip/mmapped.c
|
|
||||||
index 2071882..306ba51 100644
|
|
||||||
--- a/zzip/mmapped.c
|
|
||||||
+++ b/zzip/mmapped.c
|
|
||||||
@@ -276,7 +276,8 @@ struct zzip_file_header *
|
|
||||||
zzip_disk_entry_to_file_header(ZZIP_DISK * disk, struct zzip_disk_entry *entry)
|
|
||||||
{
|
|
||||||
zzip_byte_t *const ptr = disk->buffer + zzip_disk_entry_fileoffset(entry);
|
|
||||||
- if (disk->buffer > ptr || ptr >= disk->endbuf)
|
|
||||||
+ zzip_byte_t *const end = ptr + sizeof(struct zzip_file_header);
|
|
||||||
+ if (disk->buffer > ptr || end >= disk->endbuf || end <= NULL)
|
|
||||||
{
|
|
||||||
errno = EBADMSG;
|
|
||||||
return 0;
|
|
@ -1,108 +0,0 @@
|
|||||||
#! /usr/bin/env python3
|
|
||||||
|
|
||||||
from __future__ import print_function
|
|
||||||
|
|
||||||
import re
|
|
||||||
|
|
||||||
try:
|
|
||||||
basestring
|
|
||||||
except NameError:
|
|
||||||
basestring = str
|
|
||||||
|
|
||||||
# ---------------------------------------------------------- Regex Match()
|
|
||||||
# beware, stupid python interprets backslashes in replace-parts only partially!
|
|
||||||
class MatchReplace:
|
|
||||||
""" A MatchReplace is a mix of a Python Pattern and a Replace-Template """
|
|
||||||
def __init__(self, matching, template, count = 0, flags = None):
|
|
||||||
""" setup a substition from regex 'matching' into 'template',
|
|
||||||
the replacement count default of 0 will replace all occurrences.
|
|
||||||
The first argument may be a Match object or it is a string that
|
|
||||||
will be turned into one by using Match(matching, flags). """
|
|
||||||
self.template = template
|
|
||||||
MatchReplace.__call__(self, matching, template, count, flags)
|
|
||||||
def __call__(self, matching, template = None, count = 0, flags = None):
|
|
||||||
""" other than __init__ the template may be left off to be unchanged"""
|
|
||||||
if isinstance(count, basestring): # count/flags swapped over?
|
|
||||||
flags = count; count = 0
|
|
||||||
if isinstance(matching, Match):
|
|
||||||
self.matching = matching
|
|
||||||
else:
|
|
||||||
self.matching = Match()(matching, flags) ## python 2.4.2 bug
|
|
||||||
if template is not None:
|
|
||||||
self.template = template
|
|
||||||
self.count = count
|
|
||||||
def __and__(self, string):
|
|
||||||
""" z = MatchReplace('foo', 'bar') & 'foo'; assert z = 'bar' """
|
|
||||||
text, self.matching.replaced = \
|
|
||||||
self.matching.regex.subn(self.template, string, self.count)
|
|
||||||
return text
|
|
||||||
def __rand__(self, string):
|
|
||||||
""" z = 'foo' & Match('foo') >> 'bar'; assert z = 'bar' """
|
|
||||||
text, self.matching.replaced = \
|
|
||||||
self.matching.regex.subn(self.template, string, self.count)
|
|
||||||
return text
|
|
||||||
def __iand__(self, string):
|
|
||||||
""" x = 'foo' ; x &= Match('foo') >> 'bar'; assert x == 'bar' """
|
|
||||||
string, self.matching.replaced = \
|
|
||||||
self.matching.regex.subn(self.template, string, self.count)
|
|
||||||
return string
|
|
||||||
def __rshift__(self, count):
|
|
||||||
" shorthand to set the replacement count: Match('foo') >> 'bar' >> 1 "
|
|
||||||
self.count = count ; return self
|
|
||||||
def __rlshift__(self, count):
|
|
||||||
self.count = count ; return self
|
|
||||||
|
|
||||||
class Match:
|
|
||||||
""" A Match is actually a mix of a Python Pattern and MatchObject """
|
|
||||||
def __init__(self, pattern = None, flags = None):
|
|
||||||
""" flags is a string: 'i' for case-insensitive etc.; it is just
|
|
||||||
short for a regex prefix: Match('foo','i') == Match('(?i)foo') """
|
|
||||||
Match.__call__(self, pattern, flags)
|
|
||||||
def __call__(self, pattern, flags = None):
|
|
||||||
assert isinstance(pattern, str) or pattern is None
|
|
||||||
assert isinstance(flags, str) or flags is None
|
|
||||||
self.replaced = 0 # set by subn() inside MatchReplace
|
|
||||||
self.found = None # set by search() to a MatchObject
|
|
||||||
self.pattern = pattern
|
|
||||||
if pattern is not None:
|
|
||||||
if flags:
|
|
||||||
self.regex = re.compile("(?"+flags+")"+self.pattern)
|
|
||||||
else:
|
|
||||||
self.regex = re.compile(self.pattern)
|
|
||||||
return self
|
|
||||||
def __repr__(self):
|
|
||||||
return self.pattern
|
|
||||||
def __truth__(self):
|
|
||||||
return self.found is not None
|
|
||||||
def __and__(self, string):
|
|
||||||
self.found = self.regex.search(string)
|
|
||||||
return self.__truth__()
|
|
||||||
def __rand__(self, string):
|
|
||||||
self.found = self.regex.search(string)
|
|
||||||
return self.__truth__()
|
|
||||||
def __rshift__(self, template):
|
|
||||||
return MatchReplace(self, template)
|
|
||||||
def __rlshift__(self, template):
|
|
||||||
return MatchReplace(self, template)
|
|
||||||
def __getitem__(self, index):
|
|
||||||
return self.group(index)
|
|
||||||
def group(self, index):
|
|
||||||
assert self.found is not None
|
|
||||||
return self.found.group(index)
|
|
||||||
def finditer(self, string):
|
|
||||||
return self.regex.finditer(string)
|
|
||||||
|
|
||||||
if __name__ == "__main__":
|
|
||||||
# matching:
|
|
||||||
if "foo" & Match("oo"):
|
|
||||||
print("oo")
|
|
||||||
x = Match()
|
|
||||||
if "foo" & x("(o+)"):
|
|
||||||
print(x[1])
|
|
||||||
# replacing:
|
|
||||||
y = "fooboo" & Match("oo") >> "ee"
|
|
||||||
print(y)
|
|
||||||
r = Match("oo") >> "ee"
|
|
||||||
print("fooboo" & r)
|
|
||||||
s = MatchReplace("oo", "ee")
|
|
||||||
print("fooboo" & s)
|
|
@ -1,29 +0,0 @@
|
|||||||
--- ./a/zzip/_config.h 2021-07-21 14:18:09.000000000 +0200
|
|
||||||
+++ ./b/zzip/_config.h 2021-07-21 14:46:24.037432969 +0200
|
|
||||||
@@ -138,9 +138,12 @@
|
|
||||||
|
|
||||||
/* whether the system defaults to 32bit off_t but can do 64bit when requested
|
|
||||||
*/
|
|
||||||
+#if __WORDSIZE == 32
|
|
||||||
#ifndef ZZIP_LARGEFILE_SENSITIVE
|
|
||||||
#define ZZIP_LARGEFILE_SENSITIVE 1
|
|
||||||
#endif
|
|
||||||
+#endif
|
|
||||||
+/* #undef LARGEFILE_SENSITIVE */
|
|
||||||
|
|
||||||
/* Define to the sub-directory where libtool stores uninstalled libraries. */
|
|
||||||
#ifndef ZZIP_LT_OBJDIR
|
|
||||||
@@ -227,9 +230,13 @@
|
|
||||||
#endif
|
|
||||||
|
|
||||||
/* Number of bits in a file offset, on hosts where this is settable. */
|
|
||||||
+#if __WORDSIZE == 32
|
|
||||||
#ifndef ZZIP__FILE_OFFSET_BITS
|
|
||||||
#define ZZIP__FILE_OFFSET_BITS 64
|
|
||||||
#endif
|
|
||||||
+#endif
|
|
||||||
+/* #undef _FILE_OFFSET_BITS */
|
|
||||||
+
|
|
||||||
|
|
||||||
/* Define for large files, on AIX-style hosts. */
|
|
||||||
/* #undef _LARGE_FILES */
|
|
@ -1,29 +0,0 @@
|
|||||||
--- ./a/zzip/_config.h 2021-07-21 14:18:14.000000000 +0200
|
|
||||||
+++ ./b/zzip/_config.h 2021-07-21 14:46:24.037432969 +0200
|
|
||||||
@@ -138,6 +138,11 @@
|
|
||||||
|
|
||||||
/* whether the system defaults to 32bit off_t but can do 64bit when requested
|
|
||||||
*/
|
|
||||||
+#if __WORDSIZE == 32
|
|
||||||
+#ifndef ZZIP_LARGEFILE_SENSITIVE
|
|
||||||
+#define ZZIP_LARGEFILE_SENSITIVE 1
|
|
||||||
+#endif
|
|
||||||
+#endif
|
|
||||||
/* #undef LARGEFILE_SENSITIVE */
|
|
||||||
|
|
||||||
/* Define to the sub-directory where libtool stores uninstalled libraries. */
|
|
||||||
@@ -225,8 +230,14 @@
|
|
||||||
#endif
|
|
||||||
|
|
||||||
/* Number of bits in a file offset, on hosts where this is settable. */
|
|
||||||
+#if __WORDSIZE == 32
|
|
||||||
+#ifndef ZZIP__FILE_OFFSET_BITS
|
|
||||||
+#define ZZIP__FILE_OFFSET_BITS 64
|
|
||||||
+#endif
|
|
||||||
+#endif
|
|
||||||
/* #undef _FILE_OFFSET_BITS */
|
|
||||||
|
|
||||||
+
|
|
||||||
/* Define for large files, on AIX-style hosts. */
|
|
||||||
/* #undef _LARGE_FILES */
|
|
||||||
|
|
@ -1,28 +0,0 @@
|
|||||||
#! /usr/bin/env python3
|
|
||||||
|
|
||||||
from zzipdoc.match import Match
|
|
||||||
|
|
||||||
# use as o.optionname to check for commandline options.
|
|
||||||
class Options:
|
|
||||||
var = {}
|
|
||||||
def __getattr__(self, name):
|
|
||||||
if not name in self.var: return None
|
|
||||||
return self.var[name]
|
|
||||||
def __setattr__(self, name, value):
|
|
||||||
self.var[name] = value
|
|
||||||
def scan(self, optionstring): # option-name or None
|
|
||||||
x = Match()
|
|
||||||
if optionstring & x(r"^--?(\w+)=(.*)"):
|
|
||||||
self.var[x[1]] = x[2] ; return x[1]
|
|
||||||
if optionstring & x(r"^--?no-(\w+)$"):
|
|
||||||
self.var[x[1]] = "" ; return x[1]
|
|
||||||
if optionstring & x(r"^--?(\w+)$"):
|
|
||||||
self.var[x[1]] = "*"; return x[1]
|
|
||||||
return None
|
|
||||||
#end Options
|
|
||||||
|
|
||||||
if False:
|
|
||||||
o = Options()
|
|
||||||
o.help = """
|
|
||||||
scans for options
|
|
||||||
"""
|
|
Loading…
Reference in new issue