From mboxrd@z Thu Jan 1 00:00:00 1970 Path: news.gmane.org!not-for-mail From: "B. T. Raven" Newsgroups: gmane.emacs.help Subject: Re: Combining two short lisp routines Date: Sat, 07 May 2011 17:37:26 -0500 Message-ID: References: NNTP-Posting-Host: lo.gmane.org Mime-Version: 1.0 Content-Type: text/plain; charset=ISO-8859-1 Content-Transfer-Encoding: 7bit X-Trace: dough.gmane.org 1306268674 18394 80.91.229.12 (24 May 2011 20:24:34 GMT) X-Complaints-To: usenet@dough.gmane.org NNTP-Posting-Date: Tue, 24 May 2011 20:24:34 +0000 (UTC) To: help-gnu-emacs@gnu.org Original-X-From: help-gnu-emacs-bounces+geh-help-gnu-emacs=m.gmane.org@gnu.org Tue May 24 22:24:30 2011 Return-path: Envelope-to: geh-help-gnu-emacs@m.gmane.org Original-Received: from lists.gnu.org ([140.186.70.17]) by lo.gmane.org with esmtp (Exim 4.69) (envelope-from ) id 1QOy9S-0007gR-5A for geh-help-gnu-emacs@m.gmane.org; Tue, 24 May 2011 22:24:26 +0200 Original-Received: from localhost ([::1]:49072 helo=lists.gnu.org) by lists.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1QOy9R-0005bJ-ML for geh-help-gnu-emacs@m.gmane.org; Tue, 24 May 2011 16:24:25 -0400 Original-Path: usenet.stanford.edu!postnews.google.com!news1.google.com!Xl.tags.giganews.com!border1.nntp.dca.giganews.com!nntp.giganews.com!local2.nntp.dca.giganews.com!nntp.sysmatrix.net!news.sysmatrix.net.POSTED!not-for-mail Original-NNTP-Posting-Date: Sat, 07 May 2011 17:37:09 -0500 User-Agent: Thunderbird 2.0.0.23 (Windows/20090812) Original-Newsgroups: gnu.emacs.help In-Reply-To: X-No-Archive: yes Original-Lines: 92 X-Usenet-Provider: http://www.giganews.com Original-NNTP-Posting-Host: 12.73.129.144 Original-X-Trace: sv3-SJtpemNqd5PnWt1/AIP8rzUHJV/USZ2t9u+Nvm4oy7tMVxlKVV78+VQSB9n76bxHZ4tNz+ssekj9R2w!wbrNY4TftxZydale7LdiK+eURQDRxw8U0IRtyDU8fA6dwA83RkST1KbFTLpn3h+R1JBCjuf32WIu!Nx9QNXq5z6PpKXgpo78mfdzCuqcP4Os= Original-X-Complaints-To: abuse@sysmatrix.net X-Abuse-and-DMCA-Info: Please be sure to forward a copy of ALL headers X-Abuse-and-DMCA-Info: Otherwise we will be unable to process your complaint properly X-Postfilter: 1.3.40 X-Original-Bytes: 5047 Original-Xref: usenet.stanford.edu gnu.emacs.help:186810 X-BeenThere: help-gnu-emacs@gnu.org X-Mailman-Version: 2.1.14 Precedence: list List-Id: Users list for the GNU Emacs text editor List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: help-gnu-emacs-bounces+geh-help-gnu-emacs=m.gmane.org@gnu.org Original-Sender: help-gnu-emacs-bounces+geh-help-gnu-emacs=m.gmane.org@gnu.org X-Gmane-Expiry: 2011-06-07 Xref: news.gmane.org gmane.emacs.help:81141 Archived-At: Barry Margolin wrote: > In article , > "B. T. Raven" wrote: > >> Barry Margolin wrote: >>> In article , >>> "B. T. Raven" wrote: >>> >>>> Barry Margolin wrote: >>>>> In article , >>>>> "B. T. Raven" wrote: >>>>> >>>>>> Can these two routines be combined, maybe by not even visiting dict.txt, >>>>>> but transferring everything to end of line from that buffer? >>>>>> >>>>>> (defun sld (word);; run from rcirc channel >>>>>> "Regex Search dictionary for Eng Word at line beginning" >>>>>> (interactive"sWord:") >>>>>> (switch-to-buffer "dict.txt") >>>>>> (re-search-forward (concat "^" word)) >>>>>> ) >>>>>> >>>>>> (defun ttb (beg end);; run from dict.txt buffer >>>>>> "Transfer text to other buffer\n" >>>>>> (interactive "r") >>>>>> >>>>>> ;; in dict.txt buffer mark stretch of text here interactively for >>>>>> ;;;copying back to channel buffer >>>>>> >>>>>> (switch-to-buffer (other-buffer)) >>>>>> (yank) >>>>>> ) >>>>>> >>>>>> >>>>>> >>>>>> Thanks, >>>>>> >>>>>> Ed >>>>> (defun insert-definition (word) >>>>> "Search for WORD in dictionary, insert definition here." >>>>> (interactive "sWord:") >>>>> (switch-to-buffer "dict.txt") >>>>> (re-search-forward (concat "^" word) >>>>> (let ((text (buffer-substring (point) ;; let isn't in re-search-forward >>>>> is it? >>>>> (progn (end-of-line) >>>>> (point))))) >>>>> (other-buffer) >>>>> (insert text))) >>>>> >>>> Thanks, Barry. Am I right to assume that it's not possible somewhere in >>>> that (let.. form to do interactive highlighting of just the part of the >>>> definition that is of interest? There are usually many different foreign >>>> language words associated with the English one at the beginning of the >>>> line in dict.txt. >>> Sure you can. I didn't see anything like that in the functions you >>> asked to combine. >>> >> >> Okay, how would that be done? Also, what was Stefan complaining about >> where he wanted to use set-buffer? The only thing suspicious I saw was >> that the re-search-forward needed a close paren. My wish for interactive >> selection in dict.txt was expressed in the comment: >> >> ;; in dict.txt buffer, mark stretch of text here interactively for >> ;;;copying back to channel buffer > > You could start a recursive edit, during which you could mark the text > you care about. Then exit the recursive edit and the function can copy > the region and insert it into the other buffer. > >> Now I think other-buffer needs two more arguments in case it's visible >> >> (other-buffer nil t) >> >> Is that right or does the first argument have to be a string? > > What Stefan was saying is that you should do something like: > > (let ((first-buffer (current-buffer))) > (set-buffer "dict.txt") > .... > (set-buffer first-buffer)) > > switch-to-buffer and other-buffer are intended for interactive use, not > use from programs. > Thanks, Barry. recursive-edit may be a little too advanced for me right now. I only use it by accident when I notice all those brackets around the buffer name in the mode line. top-level I can understand but not that (throw 'exit nil).