1
0
mirror of https://github.com/ciromattia/kcc synced 2025-12-18 12:11:46 +00:00

Merge branch 'master' into kcc-panelview

This commit is contained in:
Ciro Mattia Gonano
2013-03-20 10:12:57 +01:00

View File

@@ -73,7 +73,7 @@ __all__ = ['is_rarfile', 'RarInfo', 'RarFile', 'RarExtFile']
## Imports and compat - support both Python 2.x and 3.x
##
import sys, os, struct
import sys, os, struct, errno
from struct import pack, unpack
from binascii import crc32
from tempfile import mkstemp
@@ -320,6 +320,8 @@ class RarMemoryError(RarExecError):
"""Memory error"""
class RarCreateError(RarExecError):
"""Create error"""
class RarNoFilesError(RarExecError):
"""No files that match pattern were found"""
class RarUserBreak(RarExecError):
"""User stop"""
class RarUnknownError(RarExecError):
@@ -1757,8 +1759,15 @@ def custom_popen(cmd):
creationflags = 0x08000000 # CREATE_NO_WINDOW
# run command
p = Popen(cmd, bufsize = 0, stdout = PIPE, stdin = PIPE, stderr = STDOUT,
try:
p = Popen(cmd, bufsize = 0,
stdout = PIPE, stdin = PIPE, stderr = STDOUT,
creationflags = creationflags)
except OSError:
ex = sys.exc_info()[1]
if ex.errno == errno.ENOENT:
raise RarExecError("Unrar not installed? (rarfile.UNRAR_TOOL=%r)" % UNRAR_TOOL)
raise
return p
def check_returncode(p, out):
@@ -1772,7 +1781,7 @@ def check_returncode(p, out):
errmap = [None,
RarWarning, RarFatalError, RarCRCError, RarLockedArchiveError,
RarWriteError, RarOpenError, RarUserError, RarMemoryError,
RarCreateError] # codes from rar.txt
RarCreateError, RarNoFilesError] # codes from rar.txt
if code > 0 and code < len(errmap):
exc = errmap[code]
elif code == 255: