help-gnu-emacs
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

Re: Functions that need X


From: Tim X
Subject: Re: Functions that need X
Date: Mon, 03 Jan 2011 09:46:50 +1100
User-agent: Gnus/5.13 (Gnus v5.13) Emacs/24.0.50 (gnu/linux)

Barry Margolin <barmar@alum.mit.edu> writes:

> In article <8739pcwake.fsf@puma.rapttech.com.au>,
>  Tim X <timx@nospam.dev.null> wrote:
>
>> Cecil Westerhof <Cecil@decebal.nl> writes:
>> 
>> > I have a lot of functionality written for my Emacs. I was asked to
>> > maintain a server for a friend. I installed Emacs there and put my
>> > Emacs functionality there also. But some things are depending on X.
>> > Because of this I made those depended working with X. In the start of
>> > my .emacs I have:
>> >     (defconst +using-X+ (getenv "DISPLAY"))
>> >
>> 
>> Alternatively, just use the built-in variable window-system i.e.
>> 
>> (unless (eq 'x window-system)
>>         ....)
>> 
>> or even better, use one of the display capability predicates, such as
>> 
>> (unless (display-graphic-p)
>>         ...)
>> 
>> > And where I use X-functionality (not much at the moment) I have:
>> >     (unless (not +using-X+)
>> >       (set-scroll-bar-mode 'right)
>> >       (tool-bar-mode -1))
>> 
>> Do you actually need the above? Long time since I've used emacs in a
>> non-graphics mode, but when I did, you didn't get things like tool-bar
>> unless the display could support it.
>
> The reason is that if the display doesn't support it these functions 
> aren't even defined, so you get an error when you try to turn off the 
> nonexistent tool bar.

Actually, in emacs 24.0.50, you can call tool-bar-mode with no problems
from the console - it doesn't appear to do anything if the display
cannot handle tool-bars.

You are correct, set-scroll-bar-mode does not exist under the console. I
also find the documentation for that command a bit weak i.e. 

,----[ C-h f set-scroll-bar-mode RET ]
| set-scroll-bar-mode is a compiled Lisp function in `scroll-bar.el'.
| 
| (set-scroll-bar-mode VALUE)
| 
| Set `scroll-bar-mode' to VALUE and put the new value into effect.
`----

Documentation of that type reminds me of code comments you see like

              x := 3;      // set x to 3

100% accurate and 100% useless!

I think this one deserves a bug report. The documentation should at
least give some indication on what the allowed values for 'VALUE' are
and what they would do. 

>
> It probably would be better if there were stub versions of all these 
> functions in console Emacs, so that they would just be ignored.  But 
> since there aren't, you need to check first.

I'd not noticed this before as I use Xresources to disable much of this
sort of thing in my .emacs, but I think your correct and a stub for this
under non-scrolling environments whould be useful. I suspect the
reason it doesn't happen is to avoid namespace pollution and loading of
unnecessary packages (thinking that any stub would likely be part of
scroll-bar.el and without careful or considerable re-engineering, may be
difficul to only load sufficient code to just handle that endge case
without also loading lots of other unnecessary stuff - not a reason not
todo it, but possibly explains why it has not been done). 

I suspect this is also one of those situations where custom has an
advantage over hand crafted code in .emacs i.e. disabling scroll bars
using custom does not cause errors when run under the console. 

I think I'll log a bug report for set-scroll-bar-mode. If it is a
consistent mode and follows the norms for +/- 1 or nil etc, it should
jus say that. 

Tim


-- 
tcross (at) rapttech dot com dot au


reply via email to

[Prev in Thread] Current Thread [Next in Thread]