I've recently updated to R 2.4 and have noticed that when I type ?help.on.something in ESS from within emacs, the old text help doesn't show up in the "other" (other being the horizontally split windows) window. Instead the windows chm help file pops up. Is there any way to get R to revert back to the old "simple text based help in the top window" help? I couldn't find anything on the ESS archives about this behavoir so I thought I post a message here rather than revert back to an older version of R for the time being... Thanks, Jeff. --- Forest Informatics, Inc. PO Box 1421 Corvallis, Oregon 97339-1421
This is a change in the default in the Windows version of R in 2.4.0. It is not an ESS issue. To change it back, type options(chmhelp=FALSE) Duncan, I think this change in Help default should be added to the Windows FAQ. Rich
I agree with both Duncan and Martin. With Duncan, that this is not a Windows FAQ. With Martin, that it is an FAQ. I recommend that it go on the R FAQ page, prior to the current 7.24. Here is a draft of the question and an outline of the answer. 7.24 Why does the help information, for example when I type "?lm", show up in (a browser window, an emacs buffer in its own frame, an emacs buffer in the same frame as *R*, in a Windows-style help window, in a new frame inside the Rgui window, in a new frame on the computer screen)? I really want it in the (choose from the same list). The answer includes at least the following: On Windows, set options(chmhelp=TRUE/FALSE). With Java, use help.start() In emacs, set the emacs variable ess-help-frame .... On the correct default for ESS, I am not sure for myself. I can see a case both for help in emacs buffers and in the chmhelp window. This week I am tending to the chmhelp window, even when on emacs. Rich
I located what might be the problem. There is a different misbehavior with Gnu emacs. I don't have Xemacs. I have an idea how to fix it but haven't worked out the details. ess-inf.el in the lines (defconst inferior-R-1-input-help (format "^ *help *(%s)" ess-help-arg-regexp)) (defconst inferior-R-2-input-help (format "^ *\\? *%s" ess-help-arg-regexp)) (defconst inferior-R-page (format "^ *page *(%s)" ess-help-arg-regexp)) detects help requests from the commandline in the *R* buffer and redirects their output to an emacs *help[R] (whatever)* buffer. In gnu emacs on windows, with options(chmhelp=TRUE), the effect is an empty *help[R] (whatever)* buffer. What I think happened is that ESS trapped the request and created the buffer, then R never got the right content to send to that buffer because R thinks that chm is handling it. The fix probably requires ESS to check the value of the chmhelp option and suppress the interception of help requests if the option has the value TRUE. ESS also needs to monitor if that option has been changed. This might mean that ESS always intercepts help requests and checks the value of the option each time. Rich
I located what might be the problem. There is a different misbehavior with Gnu emacs. I don't have Xemacs. I have an idea how to fix it but haven't worked out the details. ess-inf.el in the lines (defconst inferior-R-1-input-help (format "^ *help *(%s)" ess-help-arg-regexp)) (defconst inferior-R-2-input-help (format "^ *\\? *%s" ess-help-arg-regexp)) (defconst inferior-R-page (format "^ *page *(%s)" ess-help-arg-regexp)) detects help requests from the commandline in the *R* buffer and redirects their output to an emacs *help[R] (whatever)* buffer. In gnu emacs on windows, with options(chmhelp=TRUE), the effect is an empty *help[R] (whatever)* buffer. What I think happened is that ESS trapped the request and created the buffer, then R never got the right content to send to that buffer because R thinks that chm is handling it. The fix probably requires ESS to check the value of the chmhelp option and suppress the interception of help requests if the option has the value TRUE. ESS also needs to monitor if that option has been changed. This might mean that ESS always intercepts help requests and checks the value of the option each time. Rich