# HG changeset patch # User Lute Kamstra # Date 1064393493 0 # Node ID 7a4a7a399a2f25041f9f6f464d3177e42f5eeb4d # Parent c0c49c8505588321607717940b2441b8a9c01db5 (upcase-char): Fix docstring. (zap-up-to-char): New command. diff -r c0c49c850558 -r 7a4a7a399a2f lisp/misc.el --- a/lisp/misc.el Wed Sep 24 04:19:12 2003 +0000 +++ b/lisp/misc.el Wed Sep 24 08:51:33 2003 +0000 @@ -1,6 +1,6 @@ ;;; misc.el --- some nonstandard basic editing commands for Emacs -;; Copyright (C) 1989 Free Software Foundation, Inc. +;; Copyright (C) 1989, 2003 Free Software Foundation, Inc. ;; Maintainer: FSF ;; Keywords: convenience @@ -58,6 +58,23 @@ (+ n (point))))))) (insert string))) +;; Variation of `zap-to-char'. + +(defun zap-up-to-char (arg char) + "Kill up to, but not including ARG'th occurrence of CHAR. +Case is ignored if `case-fold-search' is non-nil in the current buffer. +Goes backward if ARG is negative; error if CHAR not found. +Ignores CHAR at point." + (interactive "p\ncZap up to char: ") + (let ((direction (if (>= arg 0) 1 -1))) + (kill-region (point) + (progn + (forward-char direction) + (unwind-protect + (search-forward (char-to-string char) nil nil arg) + (backward-char direction)) + (point))))) + ;; These were added with an eye to making possible a more CCA-compatible ;; command set; but that turned out not to be interesting. @@ -72,7 +89,7 @@ (push-mark (point-max))) (defun upcase-char (arg) - "Uppercasify ARG chars starting from point. Point doesn't move" + "Uppercasify ARG chars starting from point. Point doesn't move." (interactive "p") (save-excursion (upcase-region (point) (progn (forward-char arg) (point)))))