From: Mike Mattie <codermattie@gmail.com>
To: S??bastien Vauban <zthjwsqqafhv@spammotel.com>
Cc: help-gnu-emacs@gnu.org
Subject: Re: Nice Emacs Lisp
Date: Wed, 18 Mar 2009 14:31:16 -0700 [thread overview]
Message-ID: <20090318213115.GA6695@reforged> (raw)
In-Reply-To: <87mybiamwi.fsf@mundaneum.com>
[-- Attachment #1: Type: text/plain, Size: 2700 bytes --]
I use this in Grail:
;;----------------------------------------------------------------------
;; Host specific adaptation
;;
;; each host system has a site file that normalizes the platform
;; and extends the library search space for extra libraries it
;; manages.
;;
;; these files and platform specific customization are loaded by
;; platform here.
;;----------------------------------------------------------------------
(load-user-elisp
(cond
((string-equal "gnu/linux" system-type) "linux.el")
((string-equal "darwin" system-type) "darwin.el")
((string-equal "windows" system-type) "windows.el")))
note that load-user-elisp is a function of my own. You can substitute
that with (load) and a full path to the files.
I think the file approach is the cleanest, as it clearly separates
the logic of adapting to the platform from the platform code
itself which can become quite long, and more prone to simple
parentheses nesting errors when placed inside a form.
On Wed, Mar 18, 2009 at 04:09:01PM +0100, S??bastien Vauban wrote:
> Hello,
>
> I'd like to mix Linux and Windows settings in my .emacs file, so that I can
> use GNU Emacs on both platforms with the same init file.
>
> Currently, I've defined:
>
> --8<---------------cut here---------------start------------->8---
> (defmacro GNULinux (&rest body)
> (list 'if (string-match "linux" (prin1-to-string system-type)) (cons 'progn body)))
>
> (defmacro Windows (&rest body)
> (list 'if (string-match "windows" (prin1-to-string system-type)) (cons 'progn body)))
> --8<---------------cut here---------------end--------------->8---
>
> and I write (for example):
>
> --8<---------------cut here---------------start------------->8---
> (setq bcc-cache-directory
> (concat
> (Windows "~/.emacs.d/byte-cache-ms-windows")
> (GNULinux "~/.emacs.d/byte-cache-linux")))
> --8<---------------cut here---------------end--------------->8---
>
> But do you know some better way to write the above (the concat function is not
> that clear there...), while avoiding such a construction:
>
> --8<---------------cut here---------------start------------->8---
> (Windows
> (setq bcc-cache-directory "~/.emacs.d/byte-cache-ms-windows"))
> (GNULinux
> (setq bcc-cache-directory "~/.emacs.d/byte-cache-linux"))
> --8<---------------cut here---------------end--------------->8---
>
> as I hate duplicating things (error-prone when changing one and not the
> other).
>
> Best regards,
> Seb
>
> --
> S??bastien??Vauban
--
GnuPG Key: B9012279 is available from HKP server pgp.mit.edu
[-- Attachment #2: Type: application/pgp-signature, Size: 197 bytes --]
next prev parent reply other threads:[~2009-03-18 21:31 UTC|newest]
Thread overview: 9+ messages / expand[flat|nested] mbox.gz Atom feed top
2009-03-18 15:09 Nice Emacs Lisp Sébastien Vauban
2009-03-18 17:45 ` tyler
2009-03-18 21:31 ` Mike Mattie [this message]
2009-03-18 22:13 ` Peter Dyballa
2009-03-18 22:42 ` Mike Mattie
2009-03-18 23:34 ` Peter Dyballa
2009-03-19 15:33 ` Drew Adams
[not found] ` <mailman.3579.1237478655.31690.help-gnu-emacs@gnu.org>
2009-03-20 9:11 ` rustom
2009-03-20 13:31 ` Mike Mattie
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=20090318213115.GA6695@reforged \
--to=codermattie@gmail.com \
--cc=help-gnu-emacs@gnu.org \
--cc=zthjwsqqafhv@spammotel.com \
/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.