 (defun buffer-string-no-properties ()
   (buffer-substring-no-properties (point-min) (point-max)))
 
+
+(defun filter (condp lst)
+  (delq nil
+        (mapcar (lambda (x) (and (funcall condp x) x)) lst)))
+(defun count-if (condp lst)
+  (length (filter condp lst)))
+
 (defun count-line-string (s)
   (if (= (length s) 0)
       0


(defun kasumi-process-pair (list-command-loadcount-value)
  (let* ((command (car list-command-loadcount-value))
         (lc      (string-to-number (cadr list-command-loadcount-value)))
         (correct-load-count (= lc load-count))
         (value   (caddr list-command-loadcount-value))
        )
    (cond ((string= command kasumi-command-syntaxerror)
           (kasumi-receive-syntaxerror value))

      '()
    (let ((command-loadcount-value-rest (kasumi-parse-sub str)))
      (cons (car (take-nth command-loadcount-value-rest 3))
            (kasumi-parse (nth 3 command-loadcount-value-rest))))))

(defun kasumi-debug-print (str)
  (let ((prev (current-buffer)))
