|
From: | Seweryn Kokot |
Subject: | Re: How modify numbers in a region by a multiplier? |
Date: | Fri, 2 Jul 2010 06:41:26 +0000 (UTC) |
User-agent: | Loom/3.14 (http://gmane.org/) |
Juanma Barranquero <lekktu <at> gmail.com> writes: > > Try using a marker instead of just the number value of `point'. Good hint, now it seems ok! For interested see the current function (defun my-multiply-numbers-in-region-or-buffer (multiplier) (interactive "nSpecify a multiplier (default is 0.001): ") ;; if nil - RET multiplier is 0.001 (let (beg end object end-mark) (if (use-region-p) (progn (setq object "region") (setq beg (region-beginning)) (setq end (region-end))) (setq object "buffer") (setq beg (point-min)) (setq end (point-max))) (setq end-mark (copy-marker end)) (unless multiplier (setq multiplier 0.001)) (goto-char beg) ; (while (re-search-forward "\\([0-9.]+\\)" end t) (while (re-search-forward "\\([0-9.]+\\)" (marker-position end-mark) t) (replace-match (format "%.2f" (* (string-to-number (match-string 1)) multiplier)))) (message "Numbers in %s modified by multiplier %s." object multiplier)))
[Prev in Thread] | Current Thread | [Next in Thread] |