[Uludag-commits] r16923 - trunk/pisi/pisi/db

uludag-commits at pardus.org.tr uludag-commits at pardus.org.tr
1 Şub 2008 Cum 23:43:24 EET


Author: cartman
Date: Fri Feb  1 23:43:23 2008
New Revision: 16923

Modified:
   trunk/pisi/pisi/db/filesdb.py
Log:
Escape the search string before passing it to re module, fixes :

[~]> pisi -d sf "/etc/env.d/99libstdc++"
/etc/env.d/99libstdc++'i arıyor
DEBUG: InstallDB initialized in 0.275934934616.
Sistem Hatası: Program Sonlandırıldı.
<class 'sre_constants.error'>: multiple repeat
Genel yardım için lütfen 'pisi help' komutunu kullanınız.
Geri-iz:
  File "/usr/bin/pisi", line 85, in <module>
    cli.run_command()
  File "/usr/lib/pardus/pisi/cli/pisicli.py", line 135, in run_command
    self.command.run()
  File "/usr/lib/pardus/pisi/cli/searchfile.py", line 69, in run
    self.search_file(path)
  File "/usr/lib/pardus/pisi/cli/searchfile.py", line 46, in search_file
    found = pisi.api.search_file(path)
  File "/usr/lib/pardus/pisi/api.py", line 261, in search_file
    return filesdb.search_file(term)
  File "/usr/lib/pardus/pisi/db/filesdb.py", line 48, in search_file
    paths = re.compile("<Path>(.*?'%s'.*?)</Path>" % term, re.I).findall(files_xml)
  File "/usr/lib/python2.5/re.py", line 180, in compile
    return _compile(pattern, flags)
  File "/usr/lib/python2.5/re.py", line 233, in _compile
    raise error, v # invalid expression



Modified: trunk/pisi/pisi/db/filesdb.py
=================================================================
--- trunk/pisi/pisi/db/filesdb.py	(original)
+++ trunk/pisi/pisi/db/filesdb.py	Fri Feb  1 23:43:23 2008
@@ -45,7 +45,7 @@
         found = []
         for pkg in installdb.list_installed():
             files_xml = open(os.path.join(installdb.package_path(pkg), ctx.const.files_xml)).read()
-            paths = re.compile('<Path>(.*?%s.*?)</Path>' % term, re.I).findall(files_xml)
+            paths = re.compile('<Path>(.*?%s.*?)</Path>' % re.escape(term), re.I).findall(files_xml)
             if paths:
                 found.append((pkg, paths))
         return found


Uludag-commits mesaj listesiyle ilgili daha fazla bilgi