[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
Re: System operating detection
From: |
Richard Riley |
Subject: |
Re: System operating detection |
Date: |
Wed, 11 Aug 2010 11:22:32 +0200 |
User-agent: |
Gnus/5.13 (Gnus v5.13) Emacs/24.0.50 (gnu/linux) |
Andrea Crotti <andrea.crotti.0@gmail.com> writes:
> Is there a way to make this ugly thing:
>
>
>
>
> --8<---------------cut here---------------start------------->8---
> (defconst sysop
> (cond
> ((string-match "linux" system-configuration) "linux")
> ((string-match "apple" system-configuration) "mac")
> ((string-match "win" system-configuration) "win")
> (t "other")))
>
> (defconst linux (string= "linux" sysop))
> (defconst mac (string= "mac" sysop))
> (defconst win (string= "win" sysop))
> (defconst other (string= "other" sysop))
> --8<---------------cut here---------------end--------------->8---
>
>
>
> looking better?
> I would like to have all the constants defined (to nil or t) but
> avoiding this ugly repetition.
> One (small) problem is that without the "cond" also "darwin" matches
> "win", so I get a wrong constant...
I think you need to show your usage patterns for the variables you have
defined for a better answer. How are you using the results?
That said, maybe just define sysop and then load-library a filename stub
concat'ed with the sysop along the lines of
(load-library (concat "os-specific-" sysop))
is a better approach? And then os-specific-win etc all contain their OS
specific details.