;;; pigletfill.el --- agressive auto filling

(defvar piglet-fill-mode nil
  "Current state of piglet fill mode.
Do not set this yourself; use the function instead.")
(make-variable-buffer-local 'piglet-fill-mode)

(defvar piglet-fill-mode-modeline " PigletFill")

(defun piglet-fill-mode (&optional prefix)
  (interactive "P")
  (make-local-variable 'post-command-hook)
  (add-hook 'post-command-hook 'piglet-fill-paragraph)

  (or (assq 'piglet-fill-mode minor-mode-alist)
      (setq minor-mode-alist (cons '(piglet-fill-mode piglet-fill-mode-modeline)
                                   minor-mode-alist)))

  (setq piglet-fill-mode (>= (prefix-numeric-value prefix) 0))
  piglet-fill-mode)

(defun piglet-fill-paragraph ()
  (and piglet-fill-mode
       (cond ((and (looking-at paragraph-separate)
                   (= last-command-char 13)))
             (t
              (fill-paragraph nil)
              (and (= last-command-char 32)
                   (insert " "))))))

;; pigletfill.el ends here
