               (cond ((and (eq level 0) (match-string 2 arglist))
                      (throw 'end-arg-pos pos))
                     ((match-string 3 arglist)
-                     (setq level (+ level 1)))
+                     (incf level))
                     ((match-string 4 arglist)
-                     (setq level (- level 1))))
+                     (decf level)))
               (setq pos (match-end 0)))
           (throw 'end-arg-pos to))))))
 

                                            "\\((\\)\\)")    ;; 4: (
                                    bound t)
            (cond ((match-string 2)
                   (setq level (+ level 1)))
                  ((match-string 3)
                   (setq level (- level 1)))
                  ((and (eq level 0) (match-string 4))
                   (throw 'pos (- (point) 1))))))))))


          (while (> level 0)
            (if (re-search-forward "\\(<\\|>\\)" bound t)
                (if (string= (match-string 1) "<")
                    (incf level)
                  (decf level))
              (setq level 0))))
        (forward-line))
      (when (re-search-forward "^\\(class\\|struct\\) " (point-at-eol) t)
