From kwright68 at gmail.com  Fri Mar 24 23:41:36 2006
From: kwright68 at gmail.com (Kevin Wright)
Date: Fri, 24 Mar 2006 16:41:36 -0600
Subject: [Rd] Undocumented features of 'browser' (and possible changes)
In-Reply-To: <x2lkuz7asy.fsf@turmalin.kubism.ku.dk>
References: <adf71a630603241332g4e592112icc2944d969207924@mail.gmail.com>
	<x2lkuz7asy.fsf@turmalin.kubism.ku.dk>
Message-ID: <adf71a630603241441u26d7f577ta1a4b9448bf0253b@mail.gmail.com>

Thanks for the clarification about ENTER and for explaining that
browser and debug use the same parser.  I'll crawl back into my
cubicle and keep using my hack.  Maybe I'll look into  re-writing
ess-eval-region to not send blank lines and comment lines.

Kevin


On 24 Mar 2006 23:11:25 +0100, Peter Dalgaard <p.dalgaard at biostat.ku.dk> wrote:
> "Kevin Wright" <kwright68 at gmail.com> writes:
>
> > I often use browser() when debugging a function.  After entering
> > browser, I would find it very useful to be able to cut-and-paste a
> > chunk of R code to the browser (or use ess-eval-region in Emacs).  An
> > inconvenience, however, is that both blank lines and comment lines
> > will exit the browser.
> >
> > The man page for browser says nothing about exiting the browser via
> > ENTER or via a line that begins with a comment, only that
> > "sub-interpreter can be exited by typing c" and "Typing Q quits the
> > current execution".
> >
> > A hack that does allow code pasting into the browser is to put "NULL"
> > at the start of blank lines and comment lines.
> >
> > Question: How would people react to a request to change the browser so
> > that blank lines and comment lines do not exit the browser?
> >
> > Possible answers (check one or write your own)
> > [ ] - Who are you kidding?
> > [ ] - Even though it is undocumented and redundant, I use ENTER to exit browser
> > [x] - You are forgetting about this scenario...
>
> ENTER does not actually quit the browser, it repeats the last command,
> as in
>
> > f(2)
> Called from: f(2)
> Browse[1]> n
> debug: x <- 2
> Browse[1]>
> debug: y <- x + 1
> Browse[1]>
>
> This is useful, since it drives you nuts to type "n",ENTER if you're
> debugging a lengthy piece of code (possibly more noticeable when
> you're using debug() than with browser(), but the two need to be
> consistent). This is also the way things work in e.g. the gdb
> debugger.
>
> Having "c" as the initial default is still open for discussion, of
> course. The scenario where browser() is in a function that gets called
> repeatedly does require some attention; it might be convenient to be
> able to continue with a single keystroke in that case.
>
>
> > [ ] - A patch would be welcome
> > [ ] - Sounds great and I committed the changes already.  :-)
> >
> >
> > Kevin Wright, Windows 2000, R 2.2.1
> >
> > ______________________________________________
> > R-devel at r-project.org mailing list
> > https://stat.ethz.ch/mailman/listinfo/r-devel
> >
>
> --
>    O__  ---- Peter Dalgaard             ?ster Farimagsgade 5, Entr.B
>   c/ /'_ --- Dept. of Biostatistics     PO Box 2099, 1014 Cph. K
>  (*) \(*) -- University of Copenhagen   Denmark          Ph:  (+45) 35327918
> ~~~~~~~~~~ - (p.dalgaard at biostat.ku.dk)                  FAX: (+45) 35327907
>



[Rd] Undocumented features of 'browser' (and possible changes)
Kevin Wright