unofficial mirror of emacs-devel@gnu.org 
 help / color / mirror / code / Atom feed
* About `image-load-path'
@ 2005-09-22  8:44 David PONCE
  2005-09-22 10:55 ` Kim F. Storm
  0 siblings, 1 reply; 12+ messages in thread
From: David PONCE @ 2005-09-22  8:44 UTC (permalink / raw)


Hello,

In image.el the new variable `image-load-path' is set to:

(list
 (file-name-as-directory (expand-file-name "images" data-directory))
 'data-directory
 'load-path)

So images are first searched in the Emacs data directory which is an
installation dependent directory. Wouldn't it be more relevant to
search in `load-path' first so it would be easier to overload standard
images?

(list
 'load-path
 (file-name-as-directory (expand-file-name "images" data-directory))
 'data-directory)

Sincerely,
David

^ permalink raw reply	[flat|nested] 12+ messages in thread

* Re: About `image-load-path'
  2005-09-22  8:44 David PONCE
@ 2005-09-22 10:55 ` Kim F. Storm
  0 siblings, 0 replies; 12+ messages in thread
From: Kim F. Storm @ 2005-09-22 10:55 UTC (permalink / raw)
  Cc: emacs-devel

David PONCE <david.ponce@wanadoo.fr> writes:

> So images are first searched in the Emacs data directory which is an
> installation dependent directory. Wouldn't it be more relevant to
> search in `load-path' first so it would be easier to overload standard
> images?

Can't you just your local directory to image-load-path ?

I think there are some potentially wierd implications of searching
load-path first.


-- 
Kim F. Storm <storm@cua.dk> http://www.cua.dk

^ permalink raw reply	[flat|nested] 12+ messages in thread

* Re: About `image-load-path'
@ 2005-09-22 11:28 David PONCE
  2005-09-22 13:03 ` Kim F. Storm
                   ` (2 more replies)
  0 siblings, 3 replies; 12+ messages in thread
From: David PONCE @ 2005-09-22 11:28 UTC (permalink / raw)
  Cc: emacs-devel

>>So images are first searched in the Emacs data directory which is an
>>installation dependent directory. Wouldn't it be more relevant to
>>search in `load-path' first so it would be easier to overload standard
>>images?
> 
> 
> Can't you just your local directory to image-load-path ?

Yes it makes sense to let-bind `image-load-path' in my own code but it
is not so easy for libraries which are part of Emacs for example.  Do
you suggest that I change the default value of `image-load-path' in my
init file? So perhaps making `image-load-path' customizable would be a
good idea?

> I think there are some potentially wierd implications of searching
> load-path first.

I don't see them.  

^ permalink raw reply	[flat|nested] 12+ messages in thread

* Re: About `image-load-path'
  2005-09-22 11:28 David PONCE
@ 2005-09-22 13:03 ` Kim F. Storm
  2005-09-22 14:08   ` Jason Rumney
  2005-09-23  0:17 ` Chong Yidong
  2005-09-23  7:24 ` Richard M. Stallman
  2 siblings, 1 reply; 12+ messages in thread
From: Kim F. Storm @ 2005-09-22 13:03 UTC (permalink / raw)
  Cc: emacs-devel

David PONCE <david.ponce@wanadoo.fr> writes:

>> I think there are some potentially wierd implications of searching
>> load-path first.
>
> I don't see them.  

If a user (accidentally) has e.g. both the current gnus (with icons in
etc/images) and an older version of gnus in load-path, the current
gnus might use the wrong icons.

-- 
Kim F. Storm <storm@cua.dk> http://www.cua.dk

^ permalink raw reply	[flat|nested] 12+ messages in thread

* Re: About `image-load-path'
  2005-09-22 13:03 ` Kim F. Storm
@ 2005-09-22 14:08   ` Jason Rumney
  0 siblings, 0 replies; 12+ messages in thread
From: Jason Rumney @ 2005-09-22 14:08 UTC (permalink / raw)
  Cc: david.ponce, emacs-devel

Kim F. Storm wrote:

>If a user (accidentally) has e.g. both the current gnus (with icons in
>etc/images) and an older version of gnus in load-path, the current
>gnus might use the wrong icons.
>  
>
More likely the old gnus might use the correct icons, since site-lisp is 
listed first in the load-path.

^ permalink raw reply	[flat|nested] 12+ messages in thread

* Re: About `image-load-path'
  2005-09-22 11:28 David PONCE
  2005-09-22 13:03 ` Kim F. Storm
@ 2005-09-23  0:17 ` Chong Yidong
  2005-09-23  7:24 ` Richard M. Stallman
  2 siblings, 0 replies; 12+ messages in thread
From: Chong Yidong @ 2005-09-23  0:17 UTC (permalink / raw)
  Cc: emacs-devel, storm

David PONCE <david.ponce@wanadoo.fr> writes:

>>>So images are first searched in the Emacs data directory which is an
>>>installation dependent directory. Wouldn't it be more relevant to
>>>search in `load-path' first so it would be easier to overload standard
>>>images?
>> 
>> 
>> Can't you just your local directory to image-load-path ?
>
> Yes it makes sense to let-bind `image-load-path' in my own code but it
> is not so easy for libraries which are part of Emacs for example. 

Libraries that are part of Emacs ought to put the images in
etc/images.

^ permalink raw reply	[flat|nested] 12+ messages in thread

* Re: About `image-load-path'
  2005-09-22 11:28 David PONCE
  2005-09-22 13:03 ` Kim F. Storm
  2005-09-23  0:17 ` Chong Yidong
@ 2005-09-23  7:24 ` Richard M. Stallman
  2 siblings, 0 replies; 12+ messages in thread
From: Richard M. Stallman @ 2005-09-23  7:24 UTC (permalink / raw)
  Cc: emacs-devel, storm

    Yes it makes sense to let-bind `image-load-path' in my own code but it
    is not so easy for libraries which are part of Emacs for example.

Could you give an example of where you would want to do this
in the code of a library that is part of Emacs?

Chong Yidong wrote:

    Libraries that are part of Emacs ought to put the images in
    etc/images.

That is how this is intended to be used.

^ permalink raw reply	[flat|nested] 12+ messages in thread

* Re: About `image-load-path'
@ 2005-09-23  8:47 David PONCE
  2005-09-24  7:04 ` Richard M. Stallman
  0 siblings, 1 reply; 12+ messages in thread
From: David PONCE @ 2005-09-23  8:47 UTC (permalink / raw)
  Cc: emacs-devel

Hello,

>     Yes it makes sense to let-bind `image-load-path' in my own code
>     but it is not so easy for libraries which are part of Emacs for
>     example.
> 
> Could you give an example of where you would want to do this
> in the code of a library that is part of Emacs?

I don't want to change the code of existing libraries.  Just to easily
use different sets of images.

For example, I use a different set of toolbar icons. I just put the
new ones (with same names) in a directory in my `load-path' (I have to
add 'tool-bar-setup' to `after-init-hook' too to refresh the pre-built
`tool-bar-map'), and voilà!

With the current setting of `image-load-path', if the default toolbar
icons are put in etc/images those in my `load-path' will be
ignored. To take them into account again, I'll have to change the
default value of `image-load-path' in my init file to search the
`load-path' first, or to add it my own image directory.  That's why I
suggested to at least make `image-load-path' customizable.

Anyway no problem for me ;-)

Sincerely,
David

^ permalink raw reply	[flat|nested] 12+ messages in thread

* Re: About `image-load-path'
  2005-09-23  8:47 About `image-load-path' David PONCE
@ 2005-09-24  7:04 ` Richard M. Stallman
  2005-09-24  8:04   ` David Kastrup
  0 siblings, 1 reply; 12+ messages in thread
From: Richard M. Stallman @ 2005-09-24  7:04 UTC (permalink / raw)
  Cc: emacs-devel

    For example, I use a different set of toolbar icons. I just put the
    new ones (with same names) in a directory in my `load-path' (I have to
    add 'tool-bar-setup' to `after-init-hook' too to refresh the pre-built
    `tool-bar-map'), and voilà!

With the new code, you wou have to modify image-load-path too.
I don't think that is so difficult.

    To take them into account again, I'll have to change the
    default value of `image-load-path' in my init file to search the
    `load-path' first, or to add it my own image directory.  That's why I
    suggested to at least make `image-load-path' customizable.

It does not need to be officially customizable
for you to set it in your init file.
(There are problems using Custom to set variables like this one.)

^ permalink raw reply	[flat|nested] 12+ messages in thread

* Re: About `image-load-path'
  2005-09-24  7:04 ` Richard M. Stallman
@ 2005-09-24  8:04   ` David Kastrup
  2005-09-24 11:54     ` Reiner Steib
  2005-09-25  2:40     ` Richard M. Stallman
  0 siblings, 2 replies; 12+ messages in thread
From: David Kastrup @ 2005-09-24  8:04 UTC (permalink / raw)
  Cc: david.ponce, emacs-devel

"Richard M. Stallman" <rms@gnu.org> writes:

>     For example, I use a different set of toolbar icons. I just put the
>     new ones (with same names) in a directory in my `load-path' (I have to
>     add 'tool-bar-setup' to `after-init-hook' too to refresh the pre-built
>     `tool-bar-map'), and voilà!
>
> With the new code, you wou have to modify image-load-path too.
> I don't think that is so difficult.

Maybe image-load-path could also allow symbols.  Then one could make
its last element the symbol `load-path', and thus it would be able to
track changes of load-path.

-- 
David Kastrup, Kriemhildstr. 15, 44793 Bochum

^ permalink raw reply	[flat|nested] 12+ messages in thread

* Re: About `image-load-path'
  2005-09-24  8:04   ` David Kastrup
@ 2005-09-24 11:54     ` Reiner Steib
  2005-09-25  2:40     ` Richard M. Stallman
  1 sibling, 0 replies; 12+ messages in thread
From: Reiner Steib @ 2005-09-24 11:54 UTC (permalink / raw)


On Sat, Sep 24 2005, David Kastrup wrote:

> Maybe image-load-path could also allow symbols.  Then one could make
> its last element the symbol `load-path', and thus it would be able to
> track changes of load-path.

`image-load-path' already allows symbols (rev. 1.50 of `image.el').  I
think making it customizable would make sense if paths like
(file-name-as-directory (expand-file-name "images" data-directory) do
not end up in the custom file in *expanded* form.

Instead of...

'(image-load-path
  (quote ("/some/user/image/dir"
          "/some/path/to/emacs/prefix/share/emacs/22.0.50/etc/images/"
	  data-directory
	  load-path)))

...  it should read...

'(image-load-path
  (quote ("/some/user/image/dir"
          (file-name-as-directory (expand-file-name "images" data-directory))
	  data-directory
	  load-path)))

... in the custom file.

Here's an attempt (maybe my tests are not the most suitable ones?) to
achieve this:

--8<---------------cut here---------------start------------->8---
--- image.el	19 Sep 2005 11:36:26 +0200	1.50
+++ image.el	22 Sep 2005 14:52:09 +0200	
@@ -49,15 +49,18 @@
 with one argument, a string containing the image data.  If PREDICATE returns
 a non-nil value, TYPE is the image's type.")

-(defvar image-load-path
-  (list (file-name-as-directory (expand-file-name "images" data-directory))
+(defcustom image-load-path
+  (list '(file-name-as-directory (expand-file-name "images" data-directory))
 	'data-directory 'load-path)
   "List of locations in which to search for image files.
 If an element is a string, it defines a directory to search.
 If an element is a variable symbol whose value is a string, that
 value defines a directory to search.
 If an element is a variable symbol whose value is a list, the
-value is used as a list of directories to search.")
+value is used as a list of directories to search."
+  :type '(repeat (choice (string)
+			 (sexp)
+			 (symbol))))

 (defun image-jpeg-p (data)
   "Value is non-nil if DATA, a string, consists of JFIF image data.
@@ -297,7 +300,11 @@
 		 (setq pathname (expand-file-name file element)))))
 	 ((consp element)
 	  (if (setq pathname (image-search-load-path file element))
-	      (setq found t))))))
+	      (setq found t)))))
+       ((or (and (consp element) (fboundp (car element)))
+	    (fboundp element))
+	(let ((string) (eval element))
+	  (and (stringp string) string))))
       (setq path (cdr path)))
     (if found pathname)))
--8<---------------cut here---------------end--------------->8---

Bye, Reiner.
-- 
       ,,,
      (o o)
---ooO-(_)-Ooo---  |  PGP key available  |  http://rsteib.home.pages.de/

^ permalink raw reply	[flat|nested] 12+ messages in thread

* Re: About `image-load-path'
  2005-09-24  8:04   ` David Kastrup
  2005-09-24 11:54     ` Reiner Steib
@ 2005-09-25  2:40     ` Richard M. Stallman
  1 sibling, 0 replies; 12+ messages in thread
From: Richard M. Stallman @ 2005-09-25  2:40 UTC (permalink / raw)
  Cc: david.ponce, emacs-devel

    Maybe image-load-path could also allow symbols.  Then one could make
    its last element the symbol `load-path', and thus it would be able to
    track changes of load-path.

That is how it works already.

^ permalink raw reply	[flat|nested] 12+ messages in thread

end of thread, other threads:[~2005-09-25  2:40 UTC | newest]

Thread overview: 12+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2005-09-23  8:47 About `image-load-path' David PONCE
2005-09-24  7:04 ` Richard M. Stallman
2005-09-24  8:04   ` David Kastrup
2005-09-24 11:54     ` Reiner Steib
2005-09-25  2:40     ` Richard M. Stallman
  -- strict thread matches above, loose matches on Subject: below --
2005-09-22 11:28 David PONCE
2005-09-22 13:03 ` Kim F. Storm
2005-09-22 14:08   ` Jason Rumney
2005-09-23  0:17 ` Chong Yidong
2005-09-23  7:24 ` Richard M. Stallman
2005-09-22  8:44 David PONCE
2005-09-22 10:55 ` Kim F. Storm

Code repositories for project(s) associated with this public inbox

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

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for read-only IMAP folder(s) and NNTP newsgroup(s).