From mboxrd@z Thu Jan 1 00:00:00 1970 Path: news.gmane.org!not-for-mail From: pjb@informatimago.com (Pascal J. Bourguignon) Newsgroups: gmane.emacs.help Subject: Re: Help with upcasing words first char Date: Mon, 24 Aug 2009 17:20:46 +0200 Organization: Anevia SAS Message-ID: <7cpralutkh.fsf@pbourguignon.anevia.com> References: <87ab1ru9zt.fsf@newsguy.com> <87fxbjwquk.fsf@galatea.local> NNTP-Posting-Host: lo.gmane.org Mime-Version: 1.0 Content-Type: text/plain; charset=us-ascii X-Trace: ger.gmane.org 1251129603 31377 80.91.229.12 (24 Aug 2009 16:00:03 GMT) X-Complaints-To: usenet@ger.gmane.org NNTP-Posting-Date: Mon, 24 Aug 2009 16:00:03 +0000 (UTC) To: help-gnu-emacs@gnu.org Original-X-From: help-gnu-emacs-bounces+geh-help-gnu-emacs=m.gmane.org@gnu.org Mon Aug 24 17:59:56 2009 Return-path: Envelope-to: geh-help-gnu-emacs@m.gmane.org Original-Received: from lists.gnu.org ([199.232.76.165]) by lo.gmane.org with esmtp (Exim 4.50) id 1Mfbxb-0005nH-6u for geh-help-gnu-emacs@m.gmane.org; Mon, 24 Aug 2009 17:59:55 +0200 Original-Received: from localhost ([127.0.0.1]:37753 helo=lists.gnu.org) by lists.gnu.org with esmtp (Exim 4.43) id 1Mfbxa-00073X-GR for geh-help-gnu-emacs@m.gmane.org; Mon, 24 Aug 2009 11:59:54 -0400 Original-Path: news.stanford.edu!newsfeed.stanford.edu!newsserver.news.garr.it!kanaga.switch.ch!switch.ch!news.in2p3.fr!in2p3.fr!feeder1-2.proxad.net!proxad.net!feeder1-1.proxad.net!cleanfeed4-a.proxad.net!nnrp13-2.free.fr!not-for-mail Original-Newsgroups: gnu.emacs.help Face: iVBORw0KGgoAAAANSUhEUgAAADAAAAAwAQMAAABtzGvEAAAABlBMVEUAAAD///+l2Z/dAAAA oElEQVR4nK3OsRHCMAwF0O8YQufUNIQRGIAja9CxSA55AxZgFO4coMgYrEDDQZWPIlNAjwq9 033pbOBPtbXuB6PKNBn5gZkhGa86Z4x2wE67O+06WxGD/HCOGR0deY3f9Ijwwt7rNGNf6Oac l/GuZTF1wFGKiYYHKSFAkjIo1b6sCYS1sVmFhhhahKQssRjRT90ITWUk6vvK3RsPGs+M1RuR mV+hO/VvFAAAAABJRU5ErkJggg== X-Accept-Language: fr, es, en X-Disabled: X-No-Archive: no User-Agent: Gnus/5.101 (Gnus v5.10.10) Emacs/22.2 (gnu/linux) Cancel-Lock: sha1:B8AfCUUcScbPhzjWUuZ1RshsGFE= Original-Lines: 69 Original-NNTP-Posting-Date: 24 Aug 2009 17:20:46 MEST Original-NNTP-Posting-Host: 88.170.236.224 Original-X-Trace: 1251127246 news-2.free.fr 14578 88.170.236.224:40792 Original-X-Complaints-To: abuse@proxad.net Original-Xref: news.stanford.edu gnu.emacs.help:172330 X-BeenThere: help-gnu-emacs@gnu.org X-Mailman-Version: 2.1.5 Precedence: list List-Id: Users list for the GNU Emacs text editor List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Original-Sender: help-gnu-emacs-bounces+geh-help-gnu-emacs=m.gmane.org@gnu.org Errors-To: help-gnu-emacs-bounces+geh-help-gnu-emacs=m.gmane.org@gnu.org Xref: news.gmane.org gmane.emacs.help:67472 Archived-At: Harry Putnam writes: > pjb@informatimago.com (Pascal J. Bourguignon) writes: > >> Now you are ready to write an emacs lisp command doing the same: >> >> (defun camelize-region (start end) >> (interactive "r") >> (capitalize-region start end) >> (let ((end (let ((m (make-marker))) (set-marker m end) m))) >> (unwind-protect >> (progn >> (goto-char start) >> (while (re-search-forward "\\s-+" end t) >> (delete-region (match-beginning 0) (match-end 0)))) >> (set-marker m nil)))) > > That works nicely but does throw an error when it finishes. My > non-existent lisp skills were not able to determine what is causing > it. > > (From *Messages* Buffer) > > Mark set > unwind-protect: Symbol's value as variable is void: m > Mark set The error is on the last line, replace m by end: (set-marker end nil)))) Sorry about that. > Also I tried it on a larger region consisting of several lines and > again it worked but in that case also removed the newlines. Since the case of newlines has not been specified, I considered them as whitespaces... > I don't really understand what the regex you used (\s-+) means. I > understand `\s' to mean any single occurrence of any whitespace. > > And also understand the `+' operator to mean `at least one plus any > number of matches to preceding regex. But again ... not sure what the > `-' operator does. > > But I wondered if that `\s' could be changed to something a little more > exclusive.... like maybe tabs and spaces only.. and if that would > allow the function to work on more than one line? See: (info "(emacs)Regexp Backslash") C-x C-e \s- represents any character having the syntax denoted by -, that is, any whitespace. + is 1 or more occurences of the previous expression. \s-+ is one or more occurences of whitespaces. If you want only spaces or tabs, you can use "[ \t]+" instead. -- __Pascal Bourguignon__