330 |
If this command is repeated, it marks the next ARG paragraphs after (or |
If this command is repeated, it marks the next ARG paragraphs after (or |
331 |
before, if arg is negative) the ones already marked." |
before, if arg is negative) the ones already marked." |
332 |
(interactive "p") |
(interactive "p") |
333 |
(let (here) |
(unless arg (setq arg 1)) |
334 |
(unless arg (setq arg 1)) |
(when (zerop arg) |
335 |
(when (zerop arg) |
(error "Cannot mark zero paragraphs")) |
336 |
(error "Cannot mark zero paragraphs")) |
(cond ((and (eq last-command this-command) (mark t)) |
337 |
(when (and (eq last-command this-command) (mark t)) |
(set-mark |
338 |
(setq here (point)) |
(save-excursion |
339 |
(goto-char (mark))) |
(goto-char (mark)) |
340 |
(forward-paragraph arg) |
(forward-paragraph arg) |
341 |
(push-mark nil t t) |
(point)))) |
342 |
(if here |
(t |
343 |
(goto-char here) |
(forward-paragraph arg) |
344 |
(backward-paragraph arg)))) |
(push-mark nil t t) |
345 |
|
(backward-paragraph arg)))) |
346 |
|
|
347 |
(defun kill-paragraph (arg) |
(defun kill-paragraph (arg) |
348 |
"Kill forward to end of paragraph. |
"Kill forward to end of paragraph. |