From: Juanma Barranquero <lekktu@gmail.com>
To: Emacs developers <emacs-devel@gnu.org>
Subject: Re: Adding GnuTLS to the Windows port
Date: Tue, 5 Oct 2010 06:00:10 +0200 [thread overview]
Message-ID: <AANLkTikJRoub5u98SGLYCnYtVWjFmWi4CNscdcCkdELw@mail.gmail.com> (raw)
In-Reply-To: <AANLkTi=htKJC8JYLb3pVxScQ7VBnhWnhErt_1YLaf_9+@mail.gmail.com>
On Sun, Oct 3, 2010 at 22:52, Juanma Barranquero <lekktu@gmail.com> wrote:
> An additional question related to 3: it would make sense to rename
> `image-library-alist' to `dynamic-library-alist' (with an obsolete
> alias `image-library-alist'), move it to some other suitable .c file
> (perhaps emacs.c?) and rewrite its doc to turn it into a more generic
> facility.
Patch attached.
Though the description of dynamic-library-alist, currently at
"(elisp)Image Formats" should be moved... where?
Juanma
2010-10-05 Juanma Barranquero <lekktu@gmail.com>
* emacs.c (Vdynamic_library_alist)
(syms_of_emacs) <dynamic-library-alist>: Move from image.c and rename.
Doc fix.
* lisp.h (Vdynamic_library_alist): Declare extern.
* image.c (Vimage_library_alist)
(syms_of_image) <image-library-alist>: Move to emacs.c and rename.
(lookup_image_type): Use Vdynamic_library_alist.
(Finit_image_library): Doc fix.
* image.el (image-library-alist): Declare as obsolete alias.
(image-type-available-p): Use `dynamic-library-alist'.
* term/w32-win.el (dynamic-library-alist):
Use instead of `image-library-alist'.
* display.texi (Image Formats): Describe `dynamic-library-alist'.
* NEWS: Mention `dynamic-library-alist'.
* INSTALL: Refer to `dynamic-library-alist'.
=== modified file 'doc/lispref/display.texi'
--- doc/lispref/display.texi 2010-09-09 02:18:38 +0000
+++ doc/lispref/display.texi 2010-10-05 02:58:35 +0000
@@ -4056,7 +4056,7 @@
Emacs can display a number of different image formats; some of them
are supported only if particular support libraries are installed on
your machine. In some environments, Emacs can load image
-libraries on demand; if so, the variable @code{image-library-alist}
+libraries on demand; if so, the variable @code{dynamic-library-alist}
can be used to modify the set of known names for these dynamic
libraries (though it is not possible to add new image formats).
@@ -4082,21 +4082,25 @@
@code{image-type-available-p}.
@end defvar
-@defvar image-library-alist
-This in an alist of image types vs external libraries needed to
-display them.
-
-Each element is a list @code{(@var{image-type} @var{library}...)},
-where the car is a supported image format from @code{image-types}, and
-the rest are strings giving alternate filenames for the corresponding
-external libraries to load.
-
-Emacs tries to load the libraries in the order they appear on the
-list; if none is loaded, the running session of Emacs won't support
-the image type. @code{pbm} and @code{xbm} don't need to be listed;
-they're always supported.
-
-This variable is ignored if the image libraries are statically linked
+@defvar dynamic-library-alist
+This is an alist of dynamic libraries vs external files implementing them.
+
+Each element is a list @code{(@var{library} @var{file}...)}, where the
+car is a symbol representing a supported external library, and the
+rest are strings giving alternate filenames for that library.
+
+Emacs tries to load the library from the files in the orden they
+appear on the list; if none is loaded, the running session of Emacs
+won't have access to that library.
+
+Note that image types @code{pbm} and @code{xbm} do not need entries in
+this variable because they do not depend on external libraries and are
+always available.
+
+Also note that this is not a generic facility for accessing external
+libraries; only those already known by Emacs will be loaded.
+
+This variable is ignored if the given libraries are statically linked
into Emacs.
@end defvar
=== modified file 'etc/NEWS'
--- etc/NEWS 2010-10-04 00:43:11 +0000
+++ etc/NEWS 2010-10-05 03:11:55 +0000
@@ -568,6 +568,10 @@
\f
* Lisp changes in Emacs 24.1
+** `image-library-alist' is renamed to `dynamic-library-alist'.
+The variable is now used to load all kind of supported dynamic libraries,
+not just image libraries.
+
** New variable syntax-propertize-function to set syntax-table properties.
Replaces font-lock-syntactic-keywords which are now obsolete.
This allows syntax-table properties to be set independently from font-lock:
=== modified file 'lisp/image.el'
--- lisp/image.el 2010-09-09 02:25:12 +0000
+++ lisp/image.el 2010-10-05 02:59:37 +0000
@@ -330,14 +330,16 @@
type)
-(defvar image-library-alist)
+(define-obsolete-variable-alias
+ 'image-library-alist
+ 'dynamic-library-alist "24.1")
;;;###autoload
(defun image-type-available-p (type)
"Return non-nil if image type TYPE is available.
Image types are symbols like `xbm' or `jpeg'."
(and (fboundp 'init-image-library)
- (init-image-library type image-library-alist)))
+ (init-image-library type dynamic-library-alist)))
;;;###autoload
=== modified file 'lisp/term/w32-win.el'
--- lisp/term/w32-win.el 2010-01-13 08:35:10 +0000
+++ lisp/term/w32-win.el 2010-10-05 02:27:57 +0000
@@ -196,10 +196,10 @@
"Report an error when a suspend is attempted."
(error "Suspending an Emacs running under W32 makes no sense"))
-(defvar image-library-alist)
+(defvar dynamic-library-alist)
-;;; Set default known names for image libraries
-(setq image-library-alist
+;;; Set default known names for external libraries
+(setq dynamic-library-alist
'((xpm "libxpm.dll" "xpm4.dll" "libXpm-nox4.dll")
(png "libpng12d.dll" "libpng12.dll" "libpng.dll"
;; these are libpng 1.2.8 from GTK+
=== modified file 'nt/INSTALL'
--- nt/INSTALL 2010-07-24 13:35:31 +0000
+++ nt/INSTALL 2010-10-05 02:50:31 +0000
@@ -258,7 +258,7 @@
library is not an error; the associated image format will simply be
unavailable. Note that once Emacs has determined that a library can
not be found, there's no way to force it to try again, other than
- restarting. See the variable `image-library-alist' to configure the
+ restarting. See the variable `dynamic-library-alist' to configure the
expected names of the libraries.
Some image libraries have dependencies on one another, or on zlib.
=== modified file 'src/emacs.c'
--- src/emacs.c 2010-10-03 13:59:56 +0000
+++ src/emacs.c 2010-10-05 02:37:56 +0000
@@ -187,6 +187,9 @@
Lisp code. */
Lisp_Object Vemacs_copyright, Vemacs_version;
+/* Alist of external libraries and files implementing them. */
+Lisp_Object Vdynamic_library_alist;
+
/* If non-zero, emacs should not attempt to use a window-specific code,
but instead should use the virtual terminal under which it was started. */
int inhibit_window_system;
@@ -2507,6 +2510,24 @@
doc: /* Version numbers of this version of Emacs. */);
Vemacs_version = build_string (emacs_version);
+ DEFVAR_LISP ("dynamic-library-alist", &Vdynamic_library_alist,
+ doc: /* Alist of dynamic libraries vs external files implementing them.
+Each element is a list (LIBRARY FILE...), where the car is a symbol
+representing a supported external library, and the rest are strings giving
+alternate filenames for that library.
+
+Emacs tries to load the library from the files in the orden they appear on
+the list; if none is loaded, the running session of Emacs won't have access
+to that library.
+
+Note that image types `pbm' and `xbm' do not need entries in this variable
+because they do not depend on external libraries and are always available.
+
+Also note that this is not a generic facility for accessing external
+libraries; only those already known by Emacs will be loaded. */);
+ Vdynamic_library_alist = Qnil;
+ Fput (intern_c_string ("dynamic-library-alist"), Qrisky_local_variable, Qt);
+
/* Make sure IS_DAEMON starts up as false. */
daemon_pipe[1] = 0;
}
=== modified file 'src/image.c'
--- src/image.c 2010-10-01 12:25:21 +0000
+++ src/image.c 2010-10-05 02:24:30 +0000
@@ -567,10 +567,6 @@
Lisp_Object Vimage_types;
-/* An alist of image types and libraries that implement the type. */
-
-Lisp_Object Vimage_library_alist;
-
/* Cache for delayed-loading image types. */
static Lisp_Object Vimage_type_cache;
@@ -645,7 +641,7 @@
struct image_type *type;
/* We must initialize the image-type if it hasn't been already. */
- if (NILP (Finit_image_library (symbol, Vimage_library_alist)))
+ if (NILP (Finit_image_library (symbol, Vdynamic_library_alist)))
return 0; /* unimplemented */
for (type = image_types; type; type = type->next)
@@ -1923,10 +1919,11 @@
}
/* Load a DLL implementing an image type.
- The `image-library-alist' variable associates a symbol,
- identifying an image type, to a list of possible filenames.
+ The argument LIBRARIES is usually the variable
+ `dynamic-library-alist', which associates a symbol, identifying
+ an external DLL library, to a list of possible filenames.
The function returns NULL if no library could be loaded for
- the given image type, or if the library was previously loaded;
+ the given symbol, or if the library was previously loaded;
else the handle of the DLL. */
static HMODULE
w32_delayed_load (Lisp_Object libraries, Lisp_Object type)
@@ -8583,7 +8580,7 @@
Image types pbm and xbm are prebuilt; other types are loaded here.
Libraries to load are specified in alist LIBRARIES (usually, the value
-of `image-library-alist', which see). */)
+of `dynamic-library-alist', which see). */)
(Lisp_Object type, Lisp_Object libraries)
{
Lisp_Object tested;
@@ -8659,20 +8656,6 @@
To check whether it is really supported, use `image-type-available-p'. */);
Vimage_types = Qnil;
- DEFVAR_LISP ("image-library-alist", &Vimage_library_alist,
- doc: /* Alist of image types vs external libraries needed to display them.
-
-Each element is a list (IMAGE-TYPE LIBRARY...), where the car is a symbol
-representing a supported image type, and the rest are strings giving
-alternate filenames for the corresponding external libraries.
-
-Emacs tries to load the libraries in the order they appear on the
-list; if none is loaded, the running session of Emacs won't
-support the image type. Types 'pbm and 'xbm don't need to be
-listed; they are always supported. */);
- Vimage_library_alist = Qnil;
- Fput (intern_c_string ("image-library-alist"), Qrisky_local_variable, Qt);
-
DEFVAR_LISP ("max-image-size", &Vmax_image_size,
doc: /* Maximum size of images.
Emacs will not load an image into memory if its pixel width or
=== modified file 'src/lisp.h'
--- src/lisp.h 2010-09-29 09:06:53 +0000
+++ src/lisp.h 2010-10-05 02:24:06 +0000
@@ -3300,6 +3300,7 @@
extern Lisp_Object Vinstallation_directory;
extern Lisp_Object empty_unibyte_string, empty_multibyte_string;
extern Lisp_Object Qfile_name_handler_alist;
+extern Lisp_Object Vdynamic_library_alist;
extern void (*fatal_error_signal_hook) (void);
EXFUN (Fkill_emacs, 1) NO_RETURN;
#if HAVE_SETLOCALE
next prev parent reply other threads:[~2010-10-05 4:00 UTC|newest]
Thread overview: 11+ messages / expand[flat|nested] mbox.gz Atom feed top
2010-10-03 20:52 Adding GnuTLS to the Windows port Juanma Barranquero
2010-10-05 4:00 ` Juanma Barranquero [this message]
2010-10-05 4:16 ` Christoph
2010-10-05 10:08 ` Juanma Barranquero
2010-10-05 11:46 ` Eli Zaretskii
2010-10-06 10:30 ` Juanma Barranquero
2010-10-06 11:52 ` Eli Zaretskii
2010-10-07 7:52 ` Stefan Monnier
2010-10-07 10:09 ` Juanma Barranquero
2010-10-07 14:06 ` Eli Zaretskii
2010-10-07 18:09 ` Stefan Monnier
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=AANLkTikJRoub5u98SGLYCnYtVWjFmWi4CNscdcCkdELw@mail.gmail.com \
--to=lekktu@gmail.com \
--cc=emacs-devel@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.