      (with-temp-buffer
        (let ((i 0))
          (dolist (arg arguments)
-           ;; Copy the argument line
+           ;; Paste the argument line
            (when (and (> i 0) (not (pg/string-starts-with arg "\n")))
              (newline))
            (insert arg)
            (incf i)
            (unless (= i (length arguments))
              (insert ","))
-           ;; Adjust the spaces in this line (we're at end of line)
+           ;; Adjust the spaces in this line (note: we're at end of line)
            (forward-whitespace -1)
            (when (car default-values)
              (forward-whitespace -2))
            (delete-horizontal-space)
            (insert
             (make-string (+ (- max-type-length (car type-lengths))
-                            (if (and has-pointer (not (car pointers))) 1 0)
+                            (- max-stars (car stars))
                             1) ; at least one space
                          ?\s))
            (setq type-lengths (cdr type-lengths)
-                 pointers (cdr pointers)
+                 stars (cdr stars)
                  default-values (cdr default-values))
            (end-of-line)))
        (buffer-string)))

  like (int *foo = 0) includes a default value"
  (equal (nth (- (length words) 2) words) "="))

(defun bde-pointer-p (words)
  "Check if the function argument represented by a list of words
  like (int *foo = 0) is a pointer"
  (let ((variable-name (if (bde-default-value-p words)
                           (nth (- (length words) 3) words)
                         (car (last words)))))
    (pg/string-starts-with variable-name "*")))

(defun bde-max-column-in-region ()
  "Return the largest column in region"

    (push-mark)
    (backward-list)
    (indent-region (region-beginning) (region-end))
    ;; If one line goes beyond the dreadful 79th column, insert a new line
    ;; before the first arg and reindent
    (save-excursion
      (when (> (bde-max-column-in-region) 79)
        (backward-list)
