r4874: Auto commit for Debian build
[umlisp.git] / parse-common.lisp
index 198041445fcf9baf870f8ac45a28af19436dc64c..3141b73c54d0dd2eb94fd15e0b6e2c8d498f7f46 100644 (file)
@@ -7,7 +7,7 @@
 ;;;; Author:        Kevin M. Rosenberg
 ;;;; Date Started:  Apr 2000
 ;;;;
-;;;; $Id: parse-common.lisp,v 1.10 2003/05/07 22:53:36 kevin Exp $
+;;;; $Id: parse-common.lisp,v 1.12 2003/05/08 01:28:30 kevin Exp $
 ;;;;
 ;;;; This file, part of UMLisp, is
 ;;;;    Copyright (c) 2000-2002 by Kevin M. Rosenberg, M.D.
@@ -162,6 +162,8 @@ Currently, these are the LEX and NET files."
 (defun ensure-compiled-fun (fun)
   "Ensure that a function is compiled"
   (etypecase fun
+    (null
+     nil)
     (function
      (if (compiled-function-p fun)
         fun
@@ -182,7 +184,7 @@ Currently, these are the LEX and NET files."
     ucol))
 
 (defun make-empty-ucol (colname filename)
-  (warn "call in make-empty-ucol")
+  (warn "call in make-empty-ucol: ~A/~A" colname filename)
   (make-ucol (copy-seq colname) "Unknown" "" nil nil nil filename nil))
 
 (defun find-ucol (colname filename)
@@ -193,10 +195,10 @@ Currently, these are the LEX and NET files."
   "Returns umls-file structure for a filename"  
   (find-if #'(lambda (f) (string-equal filename (fil f))) *umls-files*))
 
-(defun find-ucols-for-filename (filename)
+(defun find-ucols-for-ufile (ufile)
   "Returns list of umls-cols for a file structure"
-  (loop for colname in (fields (find-ufile filename))
-       collect (find-ucol colname filename)))
+  (loop for colname in (fields ufile)
+       collect (find-ucol colname (fil ufile))))
 
 (defun umls-field-string-to-list (fmt)
   "Converts a comma delimited list of fields into a list of field names. Will
@@ -204,7 +206,7 @@ append a unique number (starting at 2) onto a column name that is repeated in th
   (let ((col-counts (make-hash-table :test 'equal)))
     (loop for colname in (delimited-string-to-list (escape-column-name fmt) #\,)
          collect
-         (multiple-value-bind (value found) (gethash col col-counts)
+         (multiple-value-bind (value found) (gethash colname col-counts)
            (cond
              (found
                (incf (gethash colname col-counts))
@@ -216,7 +218,7 @@ append a unique number (starting at 2) onto a column name that is repeated in th
 (defun make-ufile (fil des table cls rws bts fields)
   (let ((ufile (make-instance 'ufile :fil fil :des des :table table :cls cls
                              :rws rws :bts bts :fields fields)))
-    (setf (ucols ufile) (find-ucols-for-filename fil))
+    (setf (ucols ufile) (find-ucols-for-ufile ufile))
     ufile))
 
 (defun datatype-for-colname (colname)