Update of /cvsroot/tmda/tmda/TMDA
In directory usw-pr-cvs1:/tmp/cvs-serv24340/TMDA

Modified Files:
        ChangeLog Util.py 
Log Message:
Bugfix. Util.build_cdb() wasn't using a unique name for ftmp when
doing a cdbmake. As a result, simultaneous cdbmakes could result in a
truncated cdb file.

Reported by Brian Lalor in <[EMAIL PROTECTED]> on
tmda-users.

Thanks to MJ Pomraning (python-cdb author) for his off-line
disagnosis of the problem.


Index: ChangeLog
===================================================================
RCS file: /cvsroot/tmda/tmda/TMDA/ChangeLog,v
retrieving revision 1.239
retrieving revision 1.240
diff -u -r1.239 -r1.240
--- ChangeLog   9 Nov 2002 00:56:29 -0000       1.239
+++ ChangeLog   10 Nov 2002 23:21:08 -0000      1.240
@@ -1,3 +1,7 @@
+2002-11-10  Jason R. Mastaler  <[EMAIL PROTECTED]>
+
+       * Util.py (build_cdb): Uniquify ftmp when doing cdbmake.
+
 2002-11-08  Jason R. Mastaler  <[EMAIL PROTECTED]>
 
        * Defaults.py (SUMMARY_HEADERS): New variable.

Index: Util.py
===================================================================
RCS file: /cvsroot/tmda/tmda/TMDA/Util.py,v
retrieving revision 1.72
retrieving revision 1.73
diff -u -r1.72 -r1.73
--- Util.py     1 Nov 2002 22:53:08 -0000       1.72
+++ Util.py     10 Nov 2002 23:21:08 -0000      1.73
@@ -452,7 +452,8 @@
     import cdb
     try:
         cdbname = filename + '.cdb'
-        cdb = cdb.cdbmake(cdbname, cdbname + '.tmp')
+        tmpname = os.path.split(tempfile.mktemp())[1]
+        cdb = cdb.cdbmake(cdbname, cdbname + '.' + tmpname)
         for line in file_to_list(filename):
             linef = line.split()
             key = linef[0].lower()
@@ -469,16 +470,15 @@
 
 
 def build_dbm(filename):
+    """Build a DBM file from a text file."""
     import anydbm
     import glob
-
     try:
-        (dbmpath, dbmname) = os.path.split(filename)
+        dbmpath, dbmname = os.path.split(filename)
         dbmname += '.db'
         tempfile.tempdir = dbmpath
         tmpname = tempfile.mktemp()
-
-        dbm = anydbm.open(tmpname,'n')
+        dbm = anydbm.open(tmpname, 'n')
         for line in file_to_list(filename):
             linef = line.split()
             key = linef[0].lower()
@@ -488,10 +488,9 @@
                 value = ''
             dbm[key] = value
         dbm.close()
-
         for f in glob.glob(tmpname + '*'):
             (tmppath, tmpname) = os.path.split(tmpname)
-            newf = f.replace(tmpname,dbmname)
+            newf = f.replace(tmpname, dbmname)
             newf = os.path.join(tmppath, newf)
             os.rename(f, newf)
     except:

_______________________________________
tmda-cvs mailing list
http://tmda.net/lists/listinfo/tmda-cvs

Reply via email to