(defvar termcap-entry-begin-regexp "^[^\t\n]"
  "*Regexp matching the beginning of a termcap entry.")

(defvar termcap-entry-end-regexp ":$"
  "*Regexp matching the end of a termcap entry.")

;(makunbound 'termcap-split-entries-regexp-alist)
(defvar termcap-split-entries-regexp-alist
  '((":\\([^:\n]*\\):\\([^:\n]*\\):" . ":\\1:\\\\\n\t:\\2:")))

(defun termcap-split-entries (&optional begin &optional end)
  (interactive)
  (or begin (setq begin (termcap-current-entry-region-begin)))
  (or end (setq end (termcap-current-entry-region-end)))
  (let ((ent termcap-split-entries-regexp-alist))
    (save-excursion
      (save-restriction
        (widen)
        (narrow-to-region begin end)
        (while ent
          (goto-char (point-min))
          (while (re-search-forward (car (car ent)) nil t)
            (replace-match (cdr (car ent)) t nil)
            (goto-char (point-min)))
          (setq ent (cdr ent)))))))

(defun termcap-current-entry-region-begin ()
  (save-excursion
    (re-search-backward termcap-entry-begin-regexp nil t)))

(defun termcap-current-entry-region-end ()
  (save-excursion
    (re-search-forward termcap-entry-end-regexp nil t)))

