anchor.diff:        (return arg))))
   
   (defun prepare-args (args)
  -  (cond ((and (string= "QColor" (first args)) (find (length args) '(4 5)))
  -         (list (format nil "(qfun \"QColor\" \"fromRgb\"~{ ~A~})" (rest args))))
  -        (t
  -         (mapcar 'var-name args))))
  +  (remove-if (lambda (x) (search "static_cast<" x))
  +             (cond ((and (string= "QColor" (first args)) (find (length args) '(4 5)))
  +                    (list (format nil "(qfun \"QColor\" \"fromRgb\"~{ ~A~})" (rest args))))
  +                   (t
  +                    (let ((args* args))
  +                      (when (string= "(qfun" (first args))
  +                        (setf args* (copy-list args))
  +                        (setf (third args*) (format nil "\"~A\"" (third args*))))
  +                      (mapcar (lambda (arg)
  +                                (cond ((> (count #\| arg) 2)
  +                                       (format nil "(logior |~A|)" (string-trim " |" (x:string-substitute "| |" "|" arg))))
  +                                      (t
  +                                       (if (string= "QString" arg)
  +                                           "\"\""
  +                                           (var-name arg)))))
  +                              args*))))))
   
   (let (special-fun)
     (defun split (line)
       (setf special-fun nil)
  -    (let (list string-p arg)
  +    (let (list in-string arg)
         (flet ((add-arg ()
                  (when arg
                    (setf arg (coerce (nreverse arg) 'string))
                    (let ((dot (char= #\. (char arg 0))))
  -                   (if (and (not string-p)
  +                   (if (and (not in-string)
                               (find #\. arg)
                               (not (every 'digit-char-p (remove #\. arg))))
                          (progn
  
positive.code:                        (push arg list))
                     (setf arg nil)))))
          (x:do-string (ch line)
            (if (and (not string-p)
                     (char= #\Space ch))
                (add-arg)
                (progn
                  (push ch arg)
                  (when (char= #\" ch)
                    (when string-p
                      (add-arg))
                    (setf string-p (not string-p))))))
          (add-arg))
        (nreverse list)))
    (defun special-fun ()
      special-fun))
  
  (defun qt-to-eql (qt-line &optional tr)
    (flet ((no (x line)
             (x:string-substitute " " x line))
           (to-list (line)
             (remove-if (lambda (x) (find x '("QSize" "QRect" "QString::fromUtf8")
                                          :test 'string=))
                        (split line))))
      (let* ((line (trim (no "(" (no ")" (no "," qt-line)))))
             (type (cond ((search "->" line)
                          :fun)
                         ((search "= new" line)
                          :new)
                         ((qid (subseq line 0 (position #\Space line)))
                          :new-local))))
        (setf line (to-list (no "->" (no "= new" line))))
        (when (special-fun)
          (setf type :fun))
        (dotimes (n (- (length line) 2))
          (let ((arg (nth (+ 2 n) line)))
            (setf (nth (+ 2 n) line)
  
negative.code: (defun constructor-arg (class)
    (dolist (arg '("(QWidget*)"
                   "(QObject*)"
                   "(QListWidget*)"
                   "(QColor)"
                   "(QSizePolicy::Policy,QSizePolicy::Policy)"
                   "(int,int,QSizePolicy::Policy,QSizePolicy::Policy)"))
  