all messages for Emacs-related lists mirrored at yhetil.org
 help / color / mirror / code / Atom feed
From: Tim X <timx@nospam.dev.null>
To: help-gnu-emacs@gnu.org
Subject: Re: Functions that need X
Date: Mon, 03 Jan 2011 09:46:50 +1100	[thread overview]
Message-ID: <87k4imncth.fsf@puma.rapttech.com.au> (raw)
In-Reply-To: barmar-85E4F4.18293501012011@news.eternal-september.org

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	other threads:[~2011-01-02 22:46 UTC|newest]

Thread overview: 11+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2011-01-01 19:35 Functions that need X Cecil Westerhof
2011-01-01 21:32 ` Barry Margolin
2011-01-01 21:58 ` Tim X
2011-01-01 23:29   ` Barry Margolin
2011-01-02 22:46     ` Tim X [this message]
2011-01-03 14:34       ` Cecil Westerhof
2011-01-03 15:55         ` Drew Adams
2011-01-03  4:52     ` Stefan Monnier
2011-01-03  5:45       ` Tim X
2011-01-03 14:46   ` Cecil Westerhof
2011-01-11  0:24 ` Kevin Rodgers

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=87k4imncth.fsf@puma.rapttech.com.au \
    --to=timx@nospam.dev.null \
    --cc=help-gnu-emacs@gnu.org \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
Code repositories for project(s) associated with this external index

	https://git.savannah.gnu.org/cgit/emacs.git
	https://git.savannah.gnu.org/cgit/emacs/org-mode.git

This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.