--- chm2pdf.orig 2013-05-18 16:01:07.000000000 +0400
+++ chm2pdf 2013-05-18 15:57:24.000000000 +0400
@@ -107,13 +107,17 @@
#print 'lister pages',lister.pages
return lister.pages
+''' http://stackoverflow.com/questions/35817/how-to-escape-os-system-calls-in-python '''
+def shellquote(s):
+ return "'" + s.replace("'", "'\\''") + "'"
+
def get_objective_urls_list(filename):
'''
takes the list of files inside the chm archive, with the correct urls of each one.
'''
- os.system('enum_chmLib '+filename+' > '+CHM2PDF_WORK_DIR+'/urlslist.txt')
- flist=open(CHM2PDF_WORK_DIR+'/urlslist.txt','rU')
+ os.system('enum_chmLib ' + shellquote(filename) + ' > ' + shellquote(CHM2PDF_WORK_DIR+'/urlslist.txt'))
+ flist=open(CHM2PDF_WORK_DIR + '/urlslist.txt','rU')
urls_list=[]
for line in flist.readlines()[3:]:
#print 'line',line
@@ -1085,9 +1089,9 @@
print 'Will use the files in ' + CHM2PDF_ORIG_DIR + ' and ' + CHM2PDF_WORK_DIR + '.'
else:
if options['verbose'] == '--verbose' and options['verbositylevel'] == 'high':
- os.system('extract_chmLib ' + filename + ' ' + CHM2PDF_ORIG_DIR)
+ os.system('extract_chmLib ' + shellquote(filename) + ' ' + shellquote(CHM2PDF_ORIG_DIR))
else:
- os.system('extract_chmLib ' + filename + ' ' + CHM2PDF_ORIG_DIR + '&> /dev/null')
+ os.system('extract_chmLib ' + shellquote(filename) + ' ' + shellquote(CHM2PDF_ORIG_DIR) + '&> /dev/null')
convert_to_pdf(cfile, filename, outputfilename, options)
shutil.rmtree(CHM2PDF_TEMP_WORK_DIR)