2013-03-18  Thien-Thi Nguyen  <ttn@gnuvola.org>

	Release: 0.4.2

2013-03-18  Thien-Thi Nguyen  <ttn@gnuvola.org>

	[build] Add support for configure var ‘IMFI_CFLAGS’.

	* SDL_gfx/Makefile.am (libSDL_gfx_la_SOURCES):
	Move SDL_imageFilter.c and SDL_imageFilter.h from here...
	(noinst_LTLIBRARIES): Add libimfi.la.
	(libimfi_la_SOURCES): ...to here.
	(libimfi_la_CFLAGS): New var.
	* Makefile.am (gfx_la_LIBADD): Add SDL_gfx/libimfi.la.

2013-03-18  Thien-Thi Nguyen  <ttn@gnuvola.org>

	[build int] Transfer configure's ‘CFLAGS’ to ‘NORMAL_CFLAGS’.

	* Makefile.am (AM_CFLAGS): New var.
	* SDL_gfx/Makefile.am (AM_CFLAGS): Likewise.
	(libSDL_gfx_la_CFLAGS): Delete var.

2013-03-18  Thien-Thi Nguyen  <ttn@gnuvola.org>

	[build int] Use ‘SDL_CFLAGS’ directly.

	* Makefile.am (AM_CPPFLAGS): New var.
	* SDL_gfx/Makefile.am (AM_CPPFLAGS): Likewise.

2012-11-15  Thien-Thi Nguyen  <ttn@gnuvola.org>

	Release: 0.4.1

2012-11-14  Thien-Thi Nguyen  <ttn@gnuvola.org>

	Fix bug: Convert Scheme character to C correctly.

	* sdlttf.c (ttf_glyph_metrics):
	Use ‘C_CHAR’ to convert ‘ch’ from Scheme to C.

2012-11-14  Thien-Thi Nguyen  <ttn@gnuvola.org>

	[sdl] No longer accept integer arg for ‘grab-input’.

	* sdlvideo.c (wm_grab_input): Drop support for integer ‘mode’.

2012-11-14  Thien-Thi Nguyen  <ttn@gnuvola.org>

	[build int] Don't barf if decrufting is unnecessary.

	Apparently, w/ Automake 1.12.4, there is no longer any need for
	2011-12-07, "Decruft: Zonk $(pkglibdir) for !LAME "make install"".
	However, we keep it around, in subdued form, for hysterical raisins.

	* Makefile.am (install-data-hook) [!LAME]: If $(pkglibdir)
	doesn't exist, don't fail on the attempt to delete it.
	Also, include $(DESTDIR) prefix and single quotes.

2012-11-14  Thien-Thi Nguyen  <ttn@gnuvola.org>

	[slog] Use C func for Guile 1.8+ to make hash table.

	Suggested by Andy Wingo.

	* sdlenums.c (REASONABLE_BUCKET_COUNT):
	Move inside preproc cond ‘#if GI_LEVEL_NOT_YET_1_8’.
	(MAKE_HASH_TABLE): Bifurcate on ‘GI_LEVEL_NOT_YET_1_8’,
	using ‘scm_c_make_hash_table’ for Guile 1.8+.

2011-12-15  Thien-Thi Nguyen  <ttn@gnuvola.org>

	Release: 0.4.0

2011-12-14  Thien-Thi Nguyen  <ttn@gnuvola.org>

	[doc] Mention planned retirment of integer ‘mode’ to ‘grab-input’.

	* sdlvideo.c (wm_grab_input): Don't tie retirement to Guile-SDL
	version number; instead, state the date 2012-05-31 explicitly.

2011-12-14  Thien-Thi Nguyen  <ttn@gnuvola.org>

	[int] Use ‘INTEGERP’ more.

	* sdlvideo.c (wm_grab_input): Use ‘INTEGERP’.

2011-12-13  Thien-Thi Nguyen  <ttn@gnuvola.org>

	[int] Add abstractions: IF_BOUND_ASSERT_{INTEGER,LONG,ULONG}_COPY

	* guile-sdl.h (IF_BOUND_ASSERT_INTEGER_COPY)
	(IF_BOUND_ASSERT_LONG_COPY, IF_BOUND_ASSERT_ULONG_COPY): New macros.
	* sdlcdrom.c: Use new macros throughout.
	* sdlmixer.c: Likewise.

2011-12-13  Thien-Thi Nguyen  <ttn@gnuvola.org>

	[int] Add abstractions: {IF_BOUND_}ASSERT_DOUBLE_COPY

	* sdlgfx.c (ASSERT_DOUBLE_COPY): New macro.
	(IF_BOUND_ASSERT_DOUBLE_COPY): Likewise.
	(roto_zoom_surface, roto_zoom_surface_xy)
	(zoom_surface): Use them.

2011-12-12  Thien-Thi Nguyen  <ttn@gnuvola.org>

	[int] Add abstractions: ASSERT_{INTEGER,INT,LONG,ULONG}_COPY

	* guile-sdl.h (ASSERT_INTEGER_COPY, ASSERT_INT_COPY)
	(ASSERT_LONG_COPY, ASSERT_ULONG_COPY): New macros.
	* sdlcdrom.c: Use new macros throughout.
	* sdlevent.c: Likewise.
	* sdljoystick.c: Likewise.
	* sdlmixer.c: Likewise.
	* sdlvideo.c: Likewise.

2011-12-12  Thien-Thi Nguyen  <ttn@gnuvola.org>

	Tighten arg type-check from ‘exact?’ to ‘integer?’.

	* guile-sdl.h (EXACTP): Delete macro/#define.
	(INTEGERP): New macro/#define.
	(ASSERT_EXACT): Delete macro.
	(ASSERT_INTEGER): New macro.
	(GSDL_NUMBER_SETTER): Use ‘ASSERT_INTEGER’.
	* sdl.c: Do ‘s/ASSERT_EXACT/ASSERT_INTEGER/g’.
	* sdlcdrom.c: Likewise.
	* sdlcolor.c: Likewise.
	* sdlenums.c: Likewise.
	* sdlevent.c: Likewise.
	* sdlgfx.c: Likewise.
	* sdljoystick.c: Likewise.
	* sdlmixer.c: Likewise.
	* sdlrect.c: Likewise.
	* sdlsurface.c: Likewise.
	* sdlttf.c: Likewise.
	* sdlvideo.c: Likewise.

2011-12-11  Thien-Thi Nguyen  <ttn@gnuvola.org>

	Validate args for ‘peep-events’ action ‘SDL_ADDEVENT’.

	* sdlevent.c (EVENT_P): New macro.
	(peep_events) <SDL_ADDEVENT>: Validate ‘events’;
	use ‘SCM_MISC_ERROR’ to report insufficient ‘events’ length.

2011-12-11  Thien-Thi Nguyen  <ttn@gnuvola.org>

	[int] Add abstraction: ASSERT_TYPE

	* guile-sdl.h (ASSERT_TYPE): New macro.
	(ASSERT_EXACT, ASSERT_SMOB): Use ‘ASSERT_TYPE’.
	* sdlvideo.c (assert_colormap_copy): Likewise.

2011-12-10  Thien-Thi Nguyen  <ttn@gnuvola.org>

	[int] Avoid ‘quotient’.

	* misc-utils.scm (rotate-square): Use ‘ash’.

2011-12-10  Thien-Thi Nguyen  <ttn@gnuvola.org>

	[int] Add abstraction: NEW_EVENT_X

	* sdlevent.c (NEW_EVENT_X): New macro.
	(peep_events, the_event_filter): Use ‘NEW_EVENT_X’.

2011-12-10  Thien-Thi Nguyen  <ttn@gnuvola.org>

	On smob "wrong type arg" throw, report expected type.

	U ≡ "Update call to ‘ASSERT_SMOB’".
	* guile-sdl.h (enum_nick, flagstash_nick): New ‘#define’s.
	(ASSERT_SMOB): Use ‘SCM_ASSERT_TYPE’, ‘SCM_SMOB_PREDICATE’;
	take ‘lpre’ instead of ‘tag’; compute _tag and _nick internally.
	(color_nick, pixel_format_nick): New ‘#define’s.
	(ASSERT_COLOR, ASSERT_RECT, ASSERT_SURFACE, ASSERT_PIXEL_FORMAT)
	(GSDL_NUMBER_GETTER, GSDL_PF_NUMBER_GETTER, GSDL_NUMBER_SETTER)
	(GSDL_ENUM_GETTER, GSDL_ENUM_SETTER, GSDL_FLAG_GETTER)
	(GSDL_FLAG_SETTER): U.
	* sdlcdrom.c (ASSERT_CDROM): U.
	* sdlcolor.c (color_nick): Delete #define.
	* sdlenums.c (ASSERT_ENUM, ASSERT_FLAGSTASH): U.
	(gsdl_init_enums): Use ‘enum_nick’, ‘flagstash_nick’.
	* sdlevent.c (ASSERT_EVENT, ASSERT_KEYSYM): U.
	* sdlgfx.c (ASSERT_FPSMGR): U.
	* sdljoystick.c (ASSERT_JOYSTICK): U.
	* sdlmixer.c (mix_music_nick, mix_audio_nick): New ‘#define’s.
	(init_module): Use ‘mix_music_nick’, ‘mix_audio_nick’.
	* sdlttf.c (ttf_font_nick): New #define.
	(ASSERT_TTFONT): U.
	(init_module): Use ‘ttf_font_nick’.
	* sdlvideo.c (overlay_nick): New #define.
	(ASSERT_CURSOR, ASSERT_OVERLAY): U.
	(gsdl_init_video): Use ‘overlay_nick’.

2011-12-10  Thien-Thi Nguyen  <ttn@gnuvola.org>

	[int] Use more <libguile/validate.h> abstractions.

	* b-uv.h (ASSERT_UVEC): Use ‘SCM_ASSERT_TYPE’.
	* guile-sdl.h (ASSERT_EXACT): Likewise.
	(ASSERT_VECTOR): Use ‘SCM_VALIDATE_VECTOR’.
	(ASSERT_SYMBOL): Use ‘SCM_VALIDATE_SYMBOL’.
	(ASSERT_STRING): Use ‘SCM_VALIDATE_STRING’.
	(SCM_VALIDATE_NUMBER): New macro, if not already defined.
	(ASSERT_NUMBER): Use ‘SCM_VALIDATE_NUMBER’.
	(ASSERT_CHAR): Use ‘SCM_VALIDATE_CHAR’.
	(ASSERT_LIST): Use ‘SCM_VALIDATE_LIST’.

2011-12-09  Thien-Thi Nguyen  <ttn@gnuvola.org>

	Fully validate  ‘set-colors!’, ‘set-palette’ colormap arg.

	* guile-sdl.h (VECREF): New macro/#define.
	* sdlvideo.c: Don't #include <alloca.h>.
	(ALLOCA_COLORS): Delete macro.
	(assert_colormap_copy): New static func.
	(ASSERT_COLORMAP_COPY): New macro.
	(set_colors, set_palette): Don't ‘alloca’; make auto var
	‘ccolors’ a 256-element array; use ‘ASSERT_COLORMAP_COPY’.

2011-12-08  Thien-Thi Nguyen  <ttn@gnuvola.org>

	[int] Use ‘SCM_MISC_ERROR’.

	* guile-sdl.h (THROW_NOT_YET_IMPLEMENTED): Use ‘SCM_MISC_ERROR’.
	* sdlevent.c (peep_events): Likewise.
	* sdlvideo.c (wm_grab_input): Likewise.

2011-12-08  Thien-Thi Nguyen  <ttn@gnuvola.org>

	[doc] Document uniform vs ordinary vectors; spiff docstrings.

	* sdlgfx.c (draw_polygon, draw_aa_polygon)
	(draw_textured_polygon, draw_bezier): Spiff doc.
	* sdlvideo.c (create_cursor)
	(get_gamm_ramp, set_gamma_ramp): Likewise.

2011-12-07  Thien-Thi Nguyen  <ttn@gnuvola.org>

	Relax uvec restriction; re-allow ordinary vectors.

	* b-uv.h (DEFINE_ANY_TO): New macro.
	(ASSERT_UVEC): If ‘obj’ is a vector, substitute it w/ a new uvec.
	* sdlgfx.c (s16): New ‘DEFINE_ANY_TO’.
	* sdlvideo.c (u8, u16): New ‘DEFINE_ANY_TO’s.

2011-12-07  Thien-Thi Nguyen  <ttn@gnuvola.org>

	[int] Add abstraction: SELECT_UVEC_PREDICATE

	* b-uv.h (SELECT_UVEC_PREDICATE): New macro.
	* sdlgfx.c: Use it.
	* sdlvideo.c: Likewise.

2011-12-07  Thien-Thi Nguyen  <ttn@gnuvola.org>

	[int] Add abstraction: IMPORT_SRFI4

	* b-uv.h (IMPORT_SRFI4): New macro.
	* sdlgfx.c: Use it.
	* sdlvideo.c: Likewise.

2011-12-07  Thien-Thi Nguyen  <ttn@gnuvola.org>

	[build int] Decruft: Zonk $(pkglibdir) for !LAME "make install".

	This is a temporary workaround.  Long term, it would be better to
	instruct Automake not to create that directory in the first place.

	* Makefile.am (install-data-hook) [!LAME]: Delete $(pkglibdir).

2011-12-05  Thien-Thi Nguyen  <ttn@gnuvola.org>

	[int] Declare (sdl sdl) shared state "hidden" for GCC 4.1+.

	This leaves one visible func per module, the module init thunk.
	To verify, do ‘nm --defined-only -g .libs/*.so’ under GNU/Linux.

	* guile-sdl.h (GCC_VERSION, DSOPRIVATE, GBO): New #define:s.
	[!GUILE_SDL_OPTIONAL_MODULE] (btw): Use ‘GBO’, not ‘extern’.
	* sdl.c (DECLARE_INIT_THUNK): New macro.
	(gsdl_init_enums, gsdl_init_rect, gsdl_init_color)
	(gsdl_init_video, gsdl_init_surface, gsdl_init_event)
	(gsdl_init_joystick, gsdl_init_cdrom, gsdl_init_misc): Use it.

2011-12-05  Thien-Thi Nguyen  <ttn@gnuvola.org>

	[int] Move ‘gsdl_video_flags’ into ‘btw’.

	* guile-sdl.h (struct obtw): Add member ‘video_flags’.
	[!GUILE_SDL_OPTIONAL_MODULE] (gsdl_video_flags): Delete var decl.
	* sdlsurface.c (make_surface, create_rgb_surface)
	(GSDL_FLAG_GETTER, set_color_key, set_alpha)
	(convert_surface): Use ‘btw->video_flags’.
	* sdlvideo.c (gsdl_video_flags): Delete var.
	(get_video_flags, list_modes, video_mode_ok)
	(set_video_mode): Use ‘btw->video_flags’.
	(gsdl_init_video): Init ‘btw->video_flags’.

2011-12-05  Thien-Thi Nguyen  <ttn@gnuvola.org>

	[int] Move ‘gsdl_make_flagstash’ into ‘btw’.

	* sdlenums.c (make_flagstash): Rename
	from ‘gsdl_make_flagstash’; make static.
	(gsdl_init_enums): Init ‘btw->make_flagstash’.
	* sdl.c (init_module): Don't init ‘btw->make_flagstash’;
	use ‘btw->make_flagstash’.
	* sdlevent.c (gsdl_init_event): Use ‘btw->make_flagstash’.
	* sdlvideo.c (gsdl_init_video): Likewise.
	* guile-sdl.h (gsdl_make_flagstash): Delete func decl.

2011-12-05  Thien-Thi Nguyen  <ttn@gnuvola.org>

	Replace ‘(sdl misc-utils) exact-floor’ w/ ‘exact-truncate’.

	Rounding to zero is more useful in practice.  Ah, symmetry!

	* misc-utils.scm (exact-truncate): New proc, exported.
	(exact-floor): Delete proc.
	(fader/3p): Use ‘exact-truncate’.

2011-12-03  Thien-Thi Nguyen  <ttn@gnuvola.org>

	[int] Add abstractions: ALLOCA_EVENTS, ALLOCA_COLORS

	* sdlevent.c (ALLOCA_EVENTS): New macro.
	(peep_events): Use ‘ALLOCA_EVENTS’.
	* sdlcolors.c (ALLOCA_COLORS): New macro.
	(set_colors): Use ‘ALLOCA_COLORS’.

2011-12-03  Thien-Thi Nguyen  <ttn@gnuvola.org>

	[doc] Generate documentation for smob enum-access procs.

	* guile-sdl.h (GSDL_ENUM_GETTER, GSDL_ENUM_SETTER): Rewrite.
	* sdlevent.c (ENUM_GETTER, ENUM_SETTER): Update calls
	to ‘GSDL_ENUM_GETTER’ and ‘GSDL_ENUM_SETTER’, respectively.

2011-12-03  Thien-Thi Nguyen  <ttn@gnuvola.org>

	[doc] Generate documentation for smob flag-access procs.

	* guile-sdl.h (GSDL_FLAG_GETTER, GSDL_FLAG_SETTER): Rewrite.
	* sdlevent.c (FLAG_GETTER, FLAG_SETTER): Update calls
	to ‘GSDL_FLAG_GETTER’ and ‘GSDL_FLAG_SETTER’, respectively.
	* sdlsurface.c (surface_get_flags): Update call to ‘GSDL_FLAG_GETTER’.

2011-12-03  Thien-Thi Nguyen  <ttn@gnuvola.org>

	[doc] Don't mention SDL type in smob number-access procs.

	* guile-sdl.h (SMOBF): New macro.
	(SMOBFIELD): Use ‘SMOBF’.
	(GSDL_NUMBER_GETTER, GSDL_PF_NUMBER_GETTER)
	(GSDL_NUMBER_SETTER): Rewrite.
	* sdlcolor.c (NUMBER_GETTER, NUMBER_SETTER): Update calls
	to ‘GSDL_NUMBER_GETTER’ and ‘GSDL_NUMBER_SETTER’, respectively.
	* sdlevent.c (NUMBER_GETTER, NUMBER_SETTER): Likewise.
	* sdlrect.c (NUMBER_GETTER, NUMBER_SETTER): Likewise.
	* sdlsurface.c (NUMBER_GETTER):
	Update call to ‘GSDL_PF_NUMBER_GETTER’.

2011-12-02  Thien-Thi Nguyen  <ttn@gnuvola.org>

	[doc] Don't mention "object->" in PF smob getter docstring.

	Omission from 2011-11-27, "Fix bug:
	Don't ‘SDL_FreeSurface’ internal surfaces".

	* guile-sdl.h (GSDL_PF_NUMBER_GETTER): New macro.
	* sdlsurface.c (NUMBER_GETTER): Use ‘GSDL_PF_NUMBER_GETTER’.
	(get_surface_w, get_surface_h, get_surface_depth): Update.

2011-12-02  Thien-Thi Nguyen  <ttn@gnuvola.org>

	Fix bug: Make ‘get-caption’ handle NULL title, icon.

	* sdlvideo.c (wm_get_caption): If ‘title’ or ‘icon’
	is NULL, don't cons a string; instead, yield ‘#f’.

2011-12-02  Thien-Thi Nguyen  <ttn@gnuvola.org>

	Redesign ‘show-cursor’.

	* sdlvideo.c (show_cursor): Rewrite.

2011-12-01  Thien-Thi Nguyen  <ttn@gnuvola.org>

	Decruft: Assume ‘surface:flags’ returns a list of symbols.

	Omission from 2011-04-29, "Fix bug: Make
	‘number->flags’ return symbols, not strings".

	* misc-utils.scm (copy-surface conv): Don't
	bother mapping ‘string->symbol’ over ‘surface:flags’ rv.

2011-12-01  Thien-Thi Nguyen  <ttn@gnuvola.org>

	[int] Use ‘PF_Surface’ more.

	Omission from 2011-11-27, "Fix bug:
	Don't ‘SDL_FreeSurface’ internal surfaces".

	* sdlsurface.c (surface_get_flags): Specify ‘PF_Surface *’
	and ‘object->flags’ for unpacking and internal access.

2011-12-01  Thien-Thi Nguyen  <ttn@gnuvola.org>

	[int] Increase ‘string->image’ safety.

	* sdlsurface.c (string_to_image): Use ‘SDL_RWFromConstMem’.

2011-12-01  Thien-Thi Nguyen  <ttn@gnuvola.org>

	[doc int] Use ‘-args:’ in docstrings.

	* misc-utils.scm (rotate-square, rectangle-closure)
	(poll-with-push-on-timeout-proc, copy-surface)
	(toroidal-panner/3p): Use ‘-args:’ in docstring.
	* sdlevent.c (set_event_filter): Likewise.
	* simple.scm (simple-vpacked-image): Likewise.

2011-11-30  Thien-Thi Nguyen  <ttn@gnuvola.org>

	[int] Fix bug: Define ‘GET_PARTICULARS’ consistently.

	Omission from 2011-11-30, "Add uvec wrangling abstractions".

	* b-uv.h [GI_LEVEL_NOT_YET_1_8] (GET_PARTICULARS):
	Invert order of arguments.

2011-11-30  Thien-Thi Nguyen  <ttn@gnuvola.org>

	Return / take u16 uvec for gamma-ramp getter / setter procs.

	* sdlvideo.c (gsdl_scm_to_uint16s): Delete func.
	(gsdl_scm_from_uint16s): Likewise.
	[GI_LEVEL_NOT_YET_1_8] (u16v_p): New scheme object proc.
	[GI_LEVEL_NOT_YET_1_8] (mk_u16v, u16v_x): Likewise.
	[GI_LEVEL_NOT_YET_1_8] (scm_u16vector_p): New macro.
	[GI_LEVEL_NOT_YET_1_8] (scm_make_u16vector): Likewise.
	(u16_stuff, copy_u16): New, via ‘DEFINE_STRUCT_AND_COPY_FUNC’.
	(ASSERT_UVEC_U16, U16_STUFF)
	(GET_U16_PARTICULARS, HOWDY_U16): New macros.
	(GAMMAVEC): Delete macro.
	(get_gamma_ramp): Rewrite.
	(ASSERT_VSZFIT): Delete macro.
	(set_gamma_ramp): Rewrite.

2011-11-30  Thien-Thi Nguyen  <ttn@gnuvola.org>

	Restrict type to u8 uvec for some ‘create-cursor’ args.

	* sdlvideo.c: #include "b-uv.h".
	(gsdl_scm_to_uint8s): Delete func.
	[GI_LEVEL_NOT_YET_1_8] (srfi4): New module object.
	[GI_LEVEL_NOT_YET_1_8] (u8v_p): New scheme proc object.
	[GI_LEVEL_NOT_YET_1_8] (scm_u8vector_p): New macro.
	(u8_stuff, copy_u8): New, via ‘DEFINE_STRUCT_AND_COPY_FUNC’.
	(ASSERT_UVEC_U8, U8_STUFF, GET_U8_PARTICULARS, HOWDY_U8): New macros.
	(create_cursor): Rewrite.

2011-11-30  Thien-Thi Nguyen  <ttn@gnuvola.org>

	Make ‘get-gamma-ramp’ return a simple list, not an alist.

	* sdlvideo.c (redtable, greentable, bluetable): Delete symbols.
	(get_gamma_ramp): Return a simple list.

2011-11-30  Thien-Thi Nguyen  <ttn@gnuvola.org>

	[slog] Add abstraction: CALL2

	* guile-sdl.h (CALL2): New #define.

2011-11-30  Thien-Thi Nguyen  <ttn@gnuvola.org>

	[int] Add uvec wrangling abstractions.

	* b-uv.h: New file.
	* Makefile.am (headers): Add b-uv.h.
	* sdlgfx.c: #include "b-uv.h".
	(S16VECTORP): Delete macro.
	(ASSERT_UVEC_S16): Use ‘ASSERT_UVEC’.
	(ST, VBITS, VLEN, STUFF, GET_PARTICULARS)
	(HOWDY, LATER): Delete macros.
	(struct s16_stuff, copy_16): Delete explicit definitions;
	instead, define via ‘DEFINE_STRUCT_AND_COPY_FUNC’.
	(STUFF2): Use ‘S16_STUFF’.
	(HOWDY2): Use ‘HOWDY_S16’.

2011-11-29  Thien-Thi Nguyen  <ttn@gnuvola.org>

	[doc] Use ‘@code’ around ‘#t’ and ‘#f’ in doc strings.

	* misc-utils.scm: Use ‘@code’ around ‘#t’ and ‘#f’ in doc strings.
	* misc.c: Likewise.
	* sdl.c: Likewise.
	* sdlcdrom.c: Likewise.
	* sdlcolor.c: Likewise.
	* sdlevent.c: Likewise.
	* sdlgfx.c: Likewise.
	* sdljoystick.c: Likewise.
	* sdlmixer.c: Likewise.
	* sdlrect.c: Likewise.
	* sdlsurface.c: Likewise.
	* sdlttf.c: Likewise.
	* sdlvideo.c: Likewise.
	* simple.scm: Likewise.

2011-11-29  Thien-Thi Nguyen  <ttn@gnuvola.org>

	[int] Use ‘zero?’.

	* misc-utils.scm (rectangle<-geometry-string): Use ‘zero?’.
	(poll-with-push-on-timeout-proc, toroidal-panner/3p): Likewise.
	* simple.scm (simple-canvas, simple-vpacked-image): Likewise.

2011-11-29  Thien-Thi Nguyen  <ttn@gnuvola.org>

	[dist] Also distribute sdl.tsar.

	This file is needed to generate sdl.exports.
	TODO: Make do without.

	* Makefile.am [MAINTAINER_MODE] (EXTRA_DIST): Add sdl.tsar.

2011-11-28  Thien-Thi Nguyen  <ttn@gnuvola.org>

	[build] Fix bug: Define old-style suffix rule .fs.c unconditionally.

	Omission from 2011-10-23, "Don't use gperf(1);
	use hash table for flagstash lookup".

	* Makefile.am (.fs.c): Move old-style
	suffix rule out of am-cond ‘MAINTAINER_MODE’.

2011-11-28  Thien-Thi Nguyen  <ttn@gnuvola.org>

	[int] Move vector conversion funcs into unique .c client.

	* Makefile.am (sdlimpl): Remove convert.c.
	* guile-sdl.h (gsdl_scm_to_uint16s): Delete func decl.
	(gsdl_scm_to_uint8s, gsdl_scm_from_uint16s): Likewise.
	* convert.c: Delete file; move funcs to...
	* sdlvideo.c (gsdl_scm_to_uin16s): ...here; make static.
	(gsdl_scm_to_uint8s, gsdl_scm_from_uint16s): Likewise.

2011-11-28  Thien-Thi Nguyen  <ttn@gnuvola.org>

	[int] Move flags conversion funcs dispatch into ‘btw’.

	* guile-sdl.h (flags2ulong_t, ulong2flags_t): New typedefs.
	(gsdl_flags2ulong, gsdl_ulong2flags): Delete func decls.
	(GSDL_FLAGS2ULONG): Use ‘btw->flags2ulong’.
	(struct obtw): Add members ‘flags2ulong’, ‘ulong2flags’.
	(GSDL_FLAG_GETTER): Use ‘btw->ulong2flags’.
	* sdlenums.c (flags2ulong): Rename from
	‘gsdl_flags2ulong’; make static.
	(ulong2flags): Rename from ‘gsdl_ulong2flags’; make static.
	(number_to_flags): Use ‘ulong2flags’.
	(gsdl_init_enums): Init ‘btw->flags2ulong’, ‘btw->ulong2flags’.
	* sdl.c (was_init): Use ‘btw->ulong2flags’.
	* sdlevent.c (get_mod_state): Likewise.
	* sdlttf.c (ttf_get_font_style): Likewise.

2011-11-28  Thien-Thi Nguyen  <ttn@gnuvola.org>

	[int] Use ‘GSDL_FLAGS2ULONG’ more.

	* sdlevent.c (peep_events): Use ‘GSDL_FLAGS2ULONG’.
	* sdlvideo.c (create_yuv_overlay): Likewise.

2011-11-28  Thien-Thi Nguyen  <ttn@gnuvola.org>

	[int] Decruft: Internalize enum definition func.

	Omission from (it was already moved into ‘btw’ by) 2011-11-23,
	"Support "make install" and "make check" under Guile 1.8+".

	* guile-sdl.h (gsdl_define_enum): Delete func decl.
	* sdl.c (init_module): Don't init ‘btw->define_enum’.
	* sdlenums.c (define_enum): Rename from
	‘gsdl_define_enum’; make static.
	(gsdl_init_enums): Init ‘btw->define_enum’.

2011-11-28  Thien-Thi Nguyen  <ttn@gnuvola.org>

	For import, use #:prefix instead of #:renamer.

	* misc-utils.scm: Use #:prefix in ‘define-module’ form.
	* simple.scm: Likewise.

2011-11-28  Thien-Thi Nguyen  <ttn@gnuvola.org>

	New (sdl gfx) elements: font-rotation!, font-rotations

	* sdlgfx.c (frot_enum): New static ‘SCM’.
	(frot_eback): New static array of ‘valaka_t’.
	(font_rotation_x): New PRIMPROC.
	(init_module): Init ‘frot_enum’ w/ Scheme name ‘font-rotations’.

2011-11-27  Thien-Thi Nguyen  <ttn@gnuvola.org>

	[int] Move enum conversion funcs dispatch into ‘btw’.

	* guile-sdl.h (gsdl_enum2long, gsdl_long2enum): Delete func decls.
	(enum2long_t, long2enum_t): New typedefs.
	(GSDL_ENUM2LONG): Use ‘btw->enum2long’.
	(struct obtw): Add members ‘enum2long’, ‘long2enum’.
	(GSDL_ENUM_GETTER): Use ‘btw->long2enum’.
	* sdlenums.c (enum2long): Rename from ‘gsdl_enum2long’; make static.
	(long2enum): Rename from ‘gsdl_long2enum’; make static.
	(gsdl_init_enums): Init ‘btw->enum2long’ and ‘btw->long2enum’.
	* sdlevent.c (the_event_filter)
	(event_state, get_key_state): Use ‘btw->long2enum’.
	* sdlmixer.c (RETURN_FADINGSTATUS): Likewise.

2011-11-27  Thien-Thi Nguyen  <ttn@gnuvola.org>

	[int] Decruft: Don't #include <SDL/SDL.h> unnecessarily.

	It's no longer necessary due to 2011-11-27, "Add
	abstractions: DECLARE_PF, RETURN_NEW_PF_OR_FALSE".

	* misc.c: Don't #include <SDL/SDL.h>.
	* sdl.c: Likewise.
	* sdlcdrom.c: Likewise.
	* sdlcolor.c: Likewise.
	* sdlgfx.c: Likewise.
	* sdljoystick.c: Likewise.
	* sdlrect.c: Likewise.
	* sdlsurface.c: Likewise.
	* sdlvideo.c: Likewise.

2011-11-27  Thien-Thi Nguyen  <ttn@gnuvola.org>

	Fix bug: Don't ‘SDL_FreeSurface’ internal surfaces.

	* guile-sdl.h (surface_nick): Move #define here from sdlsurface.c.
	(Surface): New ‘DECLARE_PF’.
	(UNPACK_PF_SURFACE): New macro.
	(UNPACK_SURFACE): Use ‘UNPACK_PF_SURFACE’.
	(RETURN_PF_SURFACE): New macro.
	(RETURN_NEW_SURFACE): Use ‘RETURN_PF_SURFACE’.
	(RETURN_INT_SURFACE): New macro.
	* sdlsurface.c (surface_nick): Move #define to guile-sdl.h.
	(free_surface): Rewrite.
	(NUMBER_GETTER): Use ‘PF_Surface’.
	(surface_get_w, surface_get_h, surface_depth):
	Update to look in actual ‘object’.
	* sdlvideo.c (get_video_surface, set_video_mode):
	Use ‘RETURN_INT_SURFACE’.

2011-11-27  Thien-Thi Nguyen  <ttn@gnuvola.org>

	[int] Use pf to wrap ‘SDL_Cursor’.

	* sdlvideo.c (xSDL_Cursor): Delete struct.
	(GCMALLOC_CURSOR): Delete macro.
	(Cursor): New ‘DECLARE_PF’.
	(UNPACK_PF_CURSOR): New macro.
	(UNPACK_CURSOR): Use ‘UNPACK_PF_CURSOR’.
	(RETURN_PF_CURSOR): New macro.
	(RETURN_NEW_CURSOR): Use ‘RETURN_PF_CURSOR’.
	(RETURN_INT_CURSOR): New macro.
	(free_cursor): Rewrite.
	(create_cursor): Update call to ‘RETURN_NEW_CURSOR’.
	(set_cursor): Use ‘UNPACK_CURSOR’ directly.
	(get_cursor): Use ‘RETURN_INT_CURSOR’.

2011-11-27  Thien-Thi Nguyen  <ttn@gnuvola.org>

	[int] Add abstractions: DECLARE_PF, RETURN_NEW_PF_OR_FALSE

	* guile-sdl.h: #include <SDL/SDL.h>.
	(DECLARE_PF, RETURN_NEW_PF_OR_FALSE): New macros.

2011-11-26  Thien-Thi Nguyen  <ttn@gnuvola.org>

	[int] Use UNPACK_{SURFACE,RECT} more.

	* sdlgfx.c (roto_zoom_surface, roto_zoom_surface_xy)
	(zoom_surface, shrink_surface): Use ‘UNPACK_SURFACE’.
	* sdlsurface.c (vertical_flip_surface)
	(horizontal_flip_surface): Likewise.
	* sdlrect.c (print_rect): Use ‘UNPACK_RECT’.

2011-11-26  Thien-Thi Nguyen  <ttn@gnuvola.org>

	[int] Decruft: Don't stone enumstash and its hash.

	* sdlenums.c (gsdl_define_enum): Don't stone the hash or smob.

2011-11-25  Thien-Thi Nguyen  <ttn@gnuvola.org>

	New (sdl gfx) proc: draw-thick-line

	* sdlgfx.c (draw_thick_line): New PRIMPROC.

2011-11-24  Thien-Thi Nguyen  <ttn@gnuvola.org>

	[gfx] Fix typo in rounded-rectangle subroutine.

	TODO: Send this to Andreas Schiffler.

	* SDL_gfx/SDL_gfxPrimitives.c (_murphyWideline):
	Fix typo: Swap ‘y1’ and ‘y2’ correctly.

2011-11-24  Thien-Thi Nguyen  <ttn@gnuvola.org>

	New (sdl gfx) proc: draw-rounded-rectangle

	* sdlgfx.c (draw_rounded_rectangle): New PRIMPROC.

2011-11-23  Thien-Thi Nguyen  <ttn@gnuvola.org>

	[slog] Add abstraction: VECTORP

	* guile-sdl.h (VECTORP): New #define.
	(ASSERT_VECTOR): Use ‘VECTORP’.

2011-11-23  Thien-Thi Nguyen  <ttn@gnuvola.org>

	[slog] Support "make install" and "make check" under Guile 1.8+.

	* guile-sdl.h (CALL0): New #define.
	(PACK_POINTER, UNPACK_POINTER): New macros.
	(define_enum_t): New typedef.
	(DEFINE_ENUM): Use ‘btw->define_enum’.
	(make_flagstash_t): New typedef.
	(struct obtw): New.
	[GUILE_SDL_OPTIONAL_MODULE] (btw): New ‘static’ var decl.
	[!GUILE_SDL_OPTIONAL_MODULE] (btw): New ‘extern’ var decl.
	(GSTX_COLOR, GSTX_RECT, GSTX_SURFACE, GSTX_PIXEL_FORMAT)
	(GSTX_RESERVED4, GSTX_RESERVED5, GSTX_RESERVED6, GSTX_RESERVED7)
	(GSTX_TOO_MUCH): Delete #define:s.
	(gsdl_smob_tags): Delete var.
	(color_tag, rect_tag, surface_tag, pixel_format_tag): Use ‘btw’.
	(gsdl_video_flags, gsdl_scm_to_uint16s, gsdl_scm_to_uint8s)
	(gsdl_scm_from_uint16s): Move var and func decls inside
	cpp conditional ‘!defined GUILE_SDL_OPTIONAL_MODULE’.
	* sdl.c (btw): New var.
	(gsdl_smob_tags): Delete var.
	(obtw): New PRIMPROC.
	(init_module): Init ‘btw’.
	* sdlgfx.c (GUILE_SDL_OPTIONAL_MODULE): New #define.
	(obtw): New Scheme proc object.
	(init_module): Init ‘btw’.
	* sdlmixer.c (GUILE_SDL_OPTIONAL_MODULE): New #define.
	(obtw): New Scheme proc object.
	(init_module): #include "sdlmixer.x" earlier; init ‘btw’.
	* sdlttf.c (GUILE_SDL_OPTIONAL_MODULE): New #define.
	(obtw): New Scheme proc object.
	(init_module): #include "sdlttf.x" earlier; init ‘btw’.
	* Makefile.am [LAME] (genwrap, basic, CLEANFILES): New vars.
	[LAME] (cmod_DATA): Add $(basic).
	[LAME] (pkglib_LTLIBRARIES): New var.
	[LAME] (sdl.exports, gfx.exports, sdl, gfx): New targets.
	[!LAME] (cmod_LTLIBRARIES): Move var into this am-cond.
	(soargs): Bifurcate var on am-cond ‘LAME’.
	(install-data-hook): Drop "past mistakes" decrufting;
	if ‘LAME’, do ‘FOR_MAKE_CHECK’ handling; move $(updatemodcat)
	into am-cond ‘!LAME’; drop am-cond ‘HAVE_MKPIMMC’.
	(uninstall-hook): Move $(updatemodcat) into am-cond ‘!LAME’;
	drop am-cond ‘HAVE_MKPIMMC’; delete both $(cmoddir), $(pkglibdir).
	[HAVE_MIXER, LAME] (cmod_DATA): Add mixer.
	[HAVE_MIXER, LAME] (pkglib_LTLIBRARIES): Add mixer.la.
	[HAVE_MIXER, LAME] (CLEANFILES): Add mixer, mixer.exports.
	[HAVE_MIXER, LAME] (mixer.exports, mixer): New targets.
	[HAVE_MIXER] (cmod_LTLIBRARIES): Move ‘+=’ into am-cond ‘!LAME’.
	[HAVE_TTF, LAME] (cmod_DATA): Add ttf.
	[HAVE_TTF, LAME] (pkglib_LTLIBRARIES): Add ttf.la.
	[HAVE_TTF, LAME] (CLEANFILES): add ttf, ttf.exports.
	[HAVE_TTF, LAME] (ttf.exports, ttf): New targets.
	[HAVE_TTF] (cmod_LTLIBRARIES): Move ‘+=’ into am-cond ‘!LAME’.
	[HAVE_MKPIMMC] (noinst_DATA): Delete var ‘+=’.
	[HAVE_MKPIMMC] (.module-catalog, clean-local): Delete targets.
	(group-stamp): New target.
	(noinst_DATA): Add group-stamp.
	(update-libsite-module-catalog): Move out
	of am-cond ‘HAVE_MKPIMMC’; use $(GUILE_TOOLS).

2011-11-23  Thien-Thi Nguyen  <ttn@gnuvola.org>

	Restrict type to s16 uvec for some gfx primitives.

	These used accept arbitrary vectors, doing a costly
	internal conversion on every call.  Good-bye slack!

	* sdlgfx.c: #include <SDL/SDL.h>.
	[GI_LEVEL_NOT_YET_1_8] (srfi4): New module object.
	[GI_LEVEL_NOT_YET_1_8] (s16v_p): New Scheme proc object.
	(S16VECTORP, ASSERT_UVEC_S16): New macros.
	(s16_stuff): New struct.
	(copy_s16): New static func.
	(ST, VBITS, VLEN, STUFF, GET_PARTICULARS, HOWDY, LATER)
	(STUFF2, HOWDY2, LATER2): New macros.
	(draw_polygon, draw_aa_polygon)
	(draw_textured_polygon, draw_bezier): Rewrite.
	* convert.c (gsdl_scm_to_int16s): Delete func.
	* guile-sdl.h (gsdl_scm_to_int16s): Delete func decl.

2011-11-23  Thien-Thi Nguyen  <ttn@gnuvola.org>

	[int] Add abstractions: MODULE_LOOKUP, SELECT_MODULE_VAR

	* guile-sdl.h (MODULE_LOOKUP, SELECT_MODULE_VAR):
	New #define:s and macros.

2011-11-22  Thien-Thi Nguyen  <ttn@gnuvola.org>

	[slog] Add smob abstractions; rework smob free funcs.

	* guile-sdl.h (DEFSMOB, GCMALLOC, GCFREE, GCRV): New macros.
	(rect_nick): New #define.
	(GCMALLOC_RECT): New macro.
	* sdlcdrom.c (cdrom_nick): New #define.
	(print_cd): Use ‘cdrom_nick’.
	(gsdl_init_cdrom): Use ‘DEFSMOB’, ‘cdrom_nick’.
	* sdlcolor.c (color_nick): New #define.
	(free_color): Use ‘GCFREE’, ‘GCRV’, ‘color_nick’.
	(print_color): Use ‘color_nick’.
	(color_p): Say "SDL-Color" in docstring; nfc.
	(make_color): Use ‘GCMALLOC’, ‘color_nick’.
	(gsdl_init_color): Use ‘DEFSMOB’, ‘color_nick’.
	* sdlenums.c (gsdl_init_enums): Use ‘DEFSMOB’.
	* sdlevent.c (event_nick): New #define.
	(free_event): Use ‘GCFREE’, ‘GCRV’, ‘event_nick’.
	(keysym_nick): New #define.
	(free_keysym): Use ‘GCFREE’, ‘GCRV’, ‘keysym_nick’.
	(GCMALLOC_EVENT): New macro.
	(make_event): Use ‘GCMALLOC_EVENT’.
	(make_keysym): Use ‘GCMALLOC’, ‘keysym_nick’.
	(peep_events, the_event_filter): Use ‘GCMALLOC_EVENT’.
	(gsdl_init_event): Use ‘DEFSMOB’, ‘event_nick’, ‘keysym_nick’.
	* sdlgfx.c (fpsmgr_nick): New #define.
	(free_fpsmgr): Use ‘GCFREE’, ‘GCRV’, ‘fpsmgr_nick’.
	(make_fps_manager): Use ‘GCMALLOC’, ‘fpsmgr_nick’.
	(init_module): Use ‘DEFSMOB’, ‘fpsmgr_nick’.
	* sdljoystick.c (joystick_nick): New #define.
	(print_joy): Use ‘joystick_nick’.
	(gsdl_init_joystick): Use ‘DEFSMOB’, ‘joystick_nick’.
	* sdlmixer.c (init_module): Use ‘DEFSMOB’.
	* sdlrect.c (free_rect): ‘GCFREE’, ‘GCRV’, ‘rect_nick’.
	(print_rect): Use ‘rect_nick’.
	(make_rect): Use ‘GCMALLOC_RECT’.
	(gsdl_init_rect): Use ‘DEFSMOB’, ‘rect_nick’.
	* sdlsurface.c (surface_nick): New #define.
	(print_surface): Use ‘surface_nick’.
	(get_clip_rect): Use ‘GCMALLOC_RECT’.
	(gsdl_init_surface): Use ‘DEFSMOB’, ‘surface_nick’.
	* sdlttf.c (init_module): Use ‘DEFSMOB’.
	* sdlvideo.c (cursor_nick): New #define.
	(GCMALLOC_CURSOR): New macro.
	(MALLOC_XSDL_CURSOR): Delete macro.
	(free_cursor): Use ‘GCFREE’, ‘cursor_nick’, ‘GCRV’.
	(pixel_format_nick): New #define.
	(print_pixel_format): Use ‘pixel_format_nick’.
	(create_cursor, get_cursor): Use ‘GCMALLOC_CURSOR’.
	(gsdl_init_video): Use ‘DEFSMOB’, ‘cursor_nick’, ‘pixel_format_nick’.

2011-11-22  Thien-Thi Nguyen  <ttn@gnuvola.org>

	[int] Stack-allocate temp ‘SDL_SysWMinfo’ object.

	* misc.c (get_wm_info): Convert auto var ‘info’ from
	pointer to object; don't ‘malloc’ and ‘free’; update refs.

2011-11-22  Thien-Thi Nguyen  <ttn@gnuvola.org>

	[int] Stack-allocate temp ‘SDL_Color’ array.

	* sdlvideo.c (set_colors, set_palette):
	Use ‘alloca’; don't ‘scm_must_free’ afterwards.

2011-11-22  Thien-Thi Nguyen  <ttn@gnuvola.org>

	Fix bug: Allocate enough memory for temp ‘SDL_Color’ array.

	* sdlvideo.c (set_colors, set_palette):
	Use ‘length * sizeof (SDL_Color)’ in
	the allocation request, not just ‘length’.

2011-11-21  Thien-Thi Nguyen  <ttn@gnuvola.org>

	[slog] Add abstraction: STRINGP

	* guile-sdl.h (STRINGP): New #define.
	(ASSERT_STRING): Use ‘STRINGP’.

2011-11-21  Thien-Thi Nguyen  <ttn@gnuvola.org>

	[slog] Use ‘scm_c_read_string’ instead of ‘scm_read_0str’.

	* guile-sdl.h [!GI_LEVEL_NOT_YET_1_8] (IMPORT_MODULE):
	Use ‘scm_c_read_string’.

2011-11-21  Thien-Thi Nguyen  <ttn@gnuvola.org>

	[int] Add abstraction: MOD_INIT_LINK_THUNK

	* guile-sdl.h [GI_LEVEL_NOT_YET_1_8] (MOD_INIT_LINK_THUNK):
	New #define.
	[!GI_LEVEL_NOT_YET_1_8] (MOD_INIT_LINK_THUNK):
	Rename from ‘GH_MODULE_LINK_FUNC’; rewrite.
	* sdl.c: Use ‘MOD_INIT_LINK_THUNK’.
	* sdlgfx.c: Likewise.
	* sdlmixer.c: Likewise.
	* sdlttf.c: Likewise.

2011-11-21  Thien-Thi Nguyen  <ttn@gnuvola.org>

	[int] Say ‘IMPORT_MODULE’ instead of ‘GH_USE_MODULE’.

	* guile-sdl.h [GI_LEVEL_NOT_YET_1_8] (IMPORT_MODULE): New #define.
	[!GI_LEVEL_NOT_YET_1_8] (IMPORT_MODULE): Rename from ‘GH_USE_MODULE’.
	* sdlgfx.c (sdlsup): Use ‘IMPORT_MODULE’.
	* sdlmixer.c (sdlsup): Likewise.
	* sdlttf.c (sdlsup): Likewise.

2011-11-21  Thien-Thi Nguyen  <ttn@gnuvola.org>

	[build int] Remove tsar files on maintainer-mode "make clean".

	* Makefile.am [MAINTAINER_MODE] (CLEANFILES): New var.

2011-11-21  Thien-Thi Nguyen  <ttn@gnuvola.org>

	[int] Fix bug: Define ‘C_CHAR’ correctly for Guile 1.8.7.

	Regression introduced 2011-04-28,
	"Add abstractions: C_{BOOL,CHAR,INT,LONG,ULONG,DOUBLE}".

	* guile-sdl.h [!GI_LEVEL_NOT_YET_1_8] (C_CHAR):
	Rewrite to use ‘scm_char_to_integer’ and ‘C_INT’.

2011-11-21  Thien-Thi Nguyen  <ttn@gnuvola.org>

	[int] Say ‘PERMANENT’ instead of ‘GH_STONED’.

	* guile-sdl.h (PERMANENT): New #define.
	(GH_STONED): Delete #define.
	(GH_USE_MODULE): Use ‘PERMANENT’.
	* sdlenums.c (gsdl_make_flagstash): Likewise.

2011-11-21  Thien-Thi Nguyen  <ttn@gnuvola.org>

	[uninstall] Fix bug: Make sure everything is properly deleted.

	* Makefile.am (bx, soargs): New vars.
	(install-data-hook): Use $(bx), $(soargs).
	(uninstall-hook): Invoke $(bx)/uninstall-sofixed.

2011-11-21  Thien-Thi Nguyen  <ttn@gnuvola.org>

	[int] Internalize "palette" flagstash object.

	* sdlvideo.c (palette_flags):
	Rename from ‘gsdl_palette_flags’; make static.
	(get_palette_flags, set_palette, gsdl_init_video): Update refs.
	* guile-sdl.h (gsdl_palette_flags): Delete var decl.

2011-11-21  Thien-Thi Nguyen  <ttn@gnuvola.org>

	[int] Internalize "alpha" enumstash object.

	* sdlsurface.c (alpha_enums, alpha_eback): New static vars.
	(set_alpha): Use ‘alpha_enums’.
	(gsdl_init_surface): Init ‘alpha_enums’.
	* sdlvideo.c (gsdl_alpha_enums, alpha_eback): Delete vars.
	(gsdl_init_video): Don't init ‘gsdl_alpha_enums’.
	* guile-sdl.h (gsdl_alpha_enums): Delete var decl.

2011-11-19  Thien-Thi Nguyen  <ttn@gnuvola.org>

	Add (sdl misc-utils) proc: exact-floor

	* misc-utils.scm (exact-floor): New proc, exported.
	(fader/3p): Use ‘exact-floor’.

2011-10-25  Thien-Thi Nguyen  <ttn@gnuvola.org>

	[slog] Use ‘GI_LEVEL_NOT_YET_1_8’ everywhere possible.

	Omission from 2011-10-24, "Use libguile
	version (ugh) for abstraction bifurcation".

	* convert.c (gsdl_scm_to_int16s, gsdl_scm_to_uint16s)
	(gsdl_scm_to_uint8s, gsdl_scm_from_uint16s):
	Use ‘GI_LEVEL_NOT_YET_1_8’.
	* guile-sdl.h: Fix typo: Use ‘#if’, not ‘#ifdef’.

2011-10-24  Thien-Thi Nguyen  <ttn@gnuvola.org>

	[slog] Avoid ‘SCM_MAKINUM’.

	* sdlenums.c (REASONABLE_BUCKET_COUNT): Use ‘NUM_INT’.

2011-10-24  Thien-Thi Nguyen  <ttn@gnuvola.org>

	Fix bug: Use correct s_FOO for ‘#define FUNC_NAME’.

	* sdlmixer.c (mix_paused): Use ‘s_mix_paused’.
	* sdlsurface.c (load_image): Use ‘s_load_image’.
	* sdlvideo.c (set_gamma_ramp): Use ‘s_set_gamma_ramp’.

2011-10-24  Thien-Thi Nguyen  <ttn@gnuvola.org>

	[slog] Bifurcate C-byte-range finangling.

	U ≡ "Use ‘FINANGLE’, ‘UNFINANGLE’".
	* guile-sdl.h (BSTRING): New #define.
	(range_t): New typedef.
	(RS, RLEN, FINANGLABLE_SCHEME_STRING_FROM_SYMBOL)
	(_FINANGLE, UNFINANGLE): New macros.
	[GI_LEVEL_NOT_YET_1_8] (ROZT_X, ROZT): New macros.
	[!GI_LEVEL_NOT_YET_1_8] (REND, NUL_AT_END_X): New macros.
	(FINANGLE_RAW, FINANGLE): New macros.
	* sdlgfx.c (draw_string): U.
	* sdlmixer.c (mix_load_music)
	(mix_load_wave, mix_set_music_cmd): U.
	* sdlsurface.c (load_bmp, load_image, save_bmp): U.
	(string_to_image): Use ‘FINANGLE_RAW’, ‘UNFINANGLE’.
	* sdlttf.c (ttf_load_font, ttf_size_text, ttf_size_utf8)
	(ttf_render_text, ttf_render_utf8): U.
	* sdlvideo.c (wm_set_caption): U.

2011-10-24  Thien-Thi Nguyen  <ttn@gnuvola.org>

	[slog] Use libguile version (ugh) for abstraction bifurcation.

	* guile-sdl.h (GI_LEVEL_NOT_YET_1_8): New #define,
	based on ‘SCM_MAJOR_VERSION’, ‘SCM_MINOR_VERSION’ values.

2011-10-23  Thien-Thi Nguyen  <ttn@gnuvola.org>

	[build] Don't use gperf(1); use hash table for flagstash lookup.

	* guile-sdl.h (recognition_t, lookup_t): Delete.
	(flagstash_t): Drop member ‘lookup’; add member ‘ht’.
	* sdlenums.c (mark_flagstash): New static func.
	(gsdl_make_flagstash): Rewrite.
	(gsdl_flags2ulong LOOKUP_IOR): New internal macro.
	(gsdl_flags2ulong): Use ‘LOOKUP_IOR’.
	(gsdl_init_enums): Set the mark function for ‘flagstash_tag’.
	* Makefile.am [MAINTAINER_MODE] (.fs.c): Don't specify ‘-g $(GPERF)’.

2011-10-22  Thien-Thi Nguyen  <ttn@gnuvola.org>

	[int] Add abstractions: GC_PROTECT, GC_UNPROTECT

	* guile-sdl.h (GC_PROTECT, GC_UNPROTECT): New #define:s.

2011-10-22  Thien-Thi Nguyen  <ttn@gnuvola.org>

	[int] Incorporate ‘GSDL_FLAG2ULONG’ into unique caller.

	* sdlvideo.c (GSDL_FLAG2ULONG): Delete macro.
	(create_yuv_overlay): Use ‘gsdl_flags2ulong’ directly.

2011-10-22  Thien-Thi Nguyen  <ttn@gnuvola.org>

	[int] Don't #include "config.h" twice.

	It's enough to #include "guile-sdl.h".

	* misc.c: Don't #include "config.h".
	* sdl.c: Likewise.
	* sdlcdrom.c: Likewise.
	* sdlcolor.c: Likewise.
	* sdlenums.c: Likewise.
	* sdlevent.c: Likewise.
	* sdlgfx.c: Likewise.
	* sdljoystick.c: Likewise.
	* sdlmixer.c: Likewise.
	* sdlrect.c: Likewise.
	* sdlsurface.c: Likewise.
	* sdlttf.c: Likewise.
	* sdlvideo.c: Likewise.

2011-10-22  Thien-Thi Nguyen  <ttn@gnuvola.org>

	[build int] Don't distribute src/modsup.h.

	Omission from 2011-08-25, "Incorporate
	selected modsup.h elements if needed".

	* Makefile.am (headers): Remove modsup.h.

2011-10-21  Thien-Thi Nguyen  <ttn@gnuvola.org>

	[int] Use ‘%zu’ for ‘size_t’ arg to ‘snprintf’.

	* sdlenums.c (print_flagstash):
	Use ‘%zu’ for ‘size_t’ arg to ‘snprintf’.

2011-10-21  Thien-Thi Nguyen  <ttn@gnuvola.org>

	[build] Require gperf(1) for maintenance; support env var override.

	* Makefile.am [MAINTAINER_MODE] (.fs.c): Specify ‘-g $(GPERF)’.

2011-08-25  Thien-Thi Nguyen  <ttn@gnuvola.org>

	[build int] Incorporate selected modsup.h elements if needed.

	Implicit: "[!HAVE_GUILE_MODSUP_H]".
	* guile-sdl.h (GH_DEFPROC, GH_MODULE_LINK_FUNC)
	(GH_STONED, GH_USE_MODULE): New macros.
	[!SCM___GH__H] (gh_module_lookup, gh_call0)
	(gh_call1, gh_call2, gh_call3): New func decls.

2011-05-07  Thien-Thi Nguyen  <ttn@gnuvola.org>

	[build int] Use Guile-BAUX for init snarfing.

	* Makefile.am (SUFFIXES): Remove .x.
	(.c.x): Use ‘$(gx) c2x’ instead of $(c2x).

2011-05-05  Thien-Thi Nguyen  <ttn@gnuvola.org>

	[build int] Don't bother making convert.x.

	* Makefile.am (WRAPPER_SOURCES): Remove convert.c.
	(sdlimpl): New var.
	(sdl_la_SOURCES, sdl.tsar): Use $(sdlimpl).

2011-05-02  Thien-Thi Nguyen  <ttn@gnuvola.org>

	[int] Use single hash for enums; init from static arrays.

	* sdlenums.c: Don't #include <stdarg.h>.
	(enum_struct): Drop members ‘min’, ‘max’, ‘rev’;
	add members ‘backing’, ‘count’.
	(gsdl_define_enum): Rewrite to take count and table directly,
	store reverse mapping in the hash, store only backing index
	of forward mapping.
	(lookup): Don't take enumstash; instead, take ‘enum_struct *’.
	(gsdl_enum2long): Update call to ‘lookup’
	and handling of non-‘#f’ return value.
	(gsdl_long2enum): Use ‘lookup’.
	(enumstash_enums): Filter out non-symbols.
	(enum_to_number): Update call to ‘lookup’
	and handling of non-‘#f’ return value.
	(number_to_enum): Use ‘lookup’.
	* guile-sdl.h (GSDL_CSCS): Delete macro.
	(valaka_t): New struct/typedef.
	(VALAKA): New macro.
	(gsdl_define_enum): Update func decl.
	(DEFINE_ENUM): New macro.
	* sdlevent.c (event_type_eback, event_state_eback, event_keysym_eback)
	(event_action_eback): New static arrays of ‘valaka_t’.
	(gsdl_init_event): Use ‘DEFINE_ENUM’, ‘event_type_eback’,
	‘event_keysym_eback’, ‘event_action_eback’, ‘event_state_eback’.
	* sdlmixer.c (fading_status_eback): New static array of ‘valaka_t’.
	(init_module): Use ‘DEFINE_ENUM’, ‘fading_status_eback’.
	* sdlvideo.c (gl_eback, alpha_eback): New static arrays of ‘valaka_t’.
	(gsdl_init_video): Use ‘DEFINE_ENUM’, ‘alpha_eback’, ‘gl_eback’.

2011-05-02  Thien-Thi Nguyen  <ttn@gnuvola.org>

	[int] Internalize event enum vars.

	* sdlevent.c (event_type_enum, event_state_enum)
	(event_keysym_enum, event_action_enum): Make static.

2011-05-02  Thien-Thi Nguyen  <ttn@gnuvola.org>

	[int] Make each enumstash a permanent object.

	* sdlenums.c (free_enum): Delete func.
	(gsdl_define_enum): Make the new object permanent.
	(gsdl_init_enums): Don't set a smob-free func for ‘enum_tag’.

2011-05-01  Thien-Thi Nguyen  <ttn@gnuvola.org>

	[int] Make print funcs more efficient.

	Implicit in all files is "#include <stdio.h>".
	* sdlcdrom.c (print_cd): Use ‘snprintf’
	to a local buffer and only one ‘scm_puts’.
	* sdlcolor.c (print_color): Likewise.
	* sdlenums.c (print_flagstash): Likewise.
	* sdlgfx.c (print_fpsmgr): Likewise.
	* sdljoystick.c (print_joy): Likewise.
	* sdlrect.c (print_rect): Likewise.
	* sdlsurface.c (print_surface): Likewise.
	* sdlvideo.c (print_pixel_format): Likewise.

2011-05-01  Thien-Thi Nguyen  <ttn@gnuvola.org>

	[build int] Sort flagstash linear vals; move work to build time.

	* guile-sdl.h (val_and_name_t): Delete typedef and struct.
	(in_word_set_t): Delete typedef.
	(recognition, recognition_t): New struct and typedef.
	(lookup_t, aka_t): New typedefs.
	(flagstash_t): Dose member ‘name’ w/ ‘const’; drop members
	‘sparse’, ‘linear’; use ‘size_t’ for total and make it ‘const’;
	change type of ‘lookup’ to ‘lookup_t *’; drop unused
	member ‘reverse_lookup_cache’; add members ‘val’, ‘aka’.
	* sdlenums.c (free_flagstash): Delete func.
	(gsdl_make_flagstash): Rewrite.
	(gsdl_flags2ulong): Update to consult stash's ‘val’ array.
	(gsdl_ulong2flags): Update to scan stash's
	‘val’ array and cons symbols from its ‘aka’ array.
	(flagstash_flags): Update to consult stash's ‘aka’ array.
	(gsdl_init_enums): Don't set a smob-free func for ‘flagstash_tag’.

2011-04-29  Thien-Thi Nguyen  <ttn@gnuvola.org>

	[build int] Specify fs2c line regexp symbolically.

	* evmask.fs (#:regexp): Delete.
	(#:symrgx): New keyword + value.
	* init.fs: Likewise.
	* kmod.fs: Likewise.
	* overlay.fs: Likewise.
	* palette.fs: Likewise.
	* ttf.fs: Likewise.
	* video.fs: Likewise.

2011-04-29  Thien-Thi Nguyen  <ttn@gnuvola.org>

	Fix bug: Require exact bitwise match in ‘gsdl_ulong2flags’.

	* sdlenums.c (gsdl_ulong2flags): Don't consider a flag
	matched unless all of its bits are set in the candidate value.

2011-04-29  Thien-Thi Nguyen  <ttn@gnuvola.org>

	Fix bug: Make ‘number->flags’ return symbols, not strings.

	* sdlenums.c (gsdl_make_flagstash): Save a symbol,
	not a string, for each flag's ‘val_and_name_t.sname’.

2011-04-29  Thien-Thi Nguyen  <ttn@gnuvola.org>

	[int] Decruft: Drop unused ‘val_and_name_t.sval’.

	* guile-sdl.h (val_and_name_t): Delete member ‘.sval’.
	* sdlenums.c (gsdl_make_flagstash): Don't init ‘->sval’.

2011-04-29  Thien-Thi Nguyen  <ttn@gnuvola.org>

	[int] Internalize flagstash objects.

	* evmask.fs: New file.
	* init.fs: New file.
	* kmod.fs: New file.
	* overlay.fs: New file.
	* palette.fs: New file.
	* ttf.fs: New file.
	* video.fs: New file.
	* Makefile.am (FLAGSTASH): Remove initf.c, kmodf.c,
	videof.c, palettef.c, overlayf.c, evmaskf.c; add initf.c,
	kmodf.c, videof.c, palettef.c, overlayf.c, evmaskf.c
	(headers): Remove gperfsup.h.
	(BUILT_SOURCES): Move $(FLAGSTASH) first.
	(EXTRA_DIST): Update ‘FLAGSTASH’ ext-transform to say ‘.fs’.
	(sdl_la_SOURCES): Remove $(FLAGSTASH).
	(SUFFIXES): Remove .fspec; add .fs.
	(fspec2c): Delete var.
	(.fspec.c): Delete old-style suffix rule.
	(.fs.c): Add old-style suffix rule.
	[HAVE_TTF] (EXTRA_DIST, BUILT_SOURCES): Do ‘s/ttff/ttf/g’.
	[HAVE_TTF] (BUILT_SOURCES): Move ttf.c first.
	[HAVE_TTF] (ttf_la_SOURCES): Remove ttff.c.
	* sdl.c (gsdl_init_flagstash): Delete var decl;
	instead, #include "init.c".
	(init_module): Use ‘init_flagstash’.
	* sdlevent.c (gsdl_kmod_flagstash, gsdl_evmask_flagstash):
	Delete var decls; instead #include "kmod.c", "evmask.c".
	(gsdl_init_event): Use ‘kmod_flagstash’, ‘evmask_flagstash’.
	* sdlttf.c (gsdl_ttf_flagstash): Delete var decl;
	instead, #include "ttf.c".
	(init_module): Use ‘ttf_flagstash’.
	* sdlvideo.c (gsdl_video_flagstash, gsdl_palette_flagstash)
	(gsdl_overlay_flagstash): Delete var decls;
	intstead, #include "video.c", "palette.c", "overlay.c".
	(gsdl_init_video): Use ‘vid_flagstash’,
	‘pal_flagstash’, ‘ov_flagstash’.
	* evmaskf.fspec: Delete file.
	* initf.fspec: Delete file.
	* kmodf.fspec: Delete file.
	* overlayf.fspec: Delete file.
	* palettef.fspec: Delete file.
	* ttff.fspec: Delete file.
	* videof.fspec: Delete file.
	* gperfsup.h: Delete file.

2011-04-28  Thien-Thi Nguyen  <ttn@gnuvola.org>

	[build] Move module-catalog facilities check to configure time.

	C(X) ≡ "Conditionalize X on automake conditional ‘HAVE_MKPIMMC’".
	* Makefile.am (install-data-hook, uninstall-hook):
	C ($(updatemodcat) invocation).
	(noinst_DATA): C (adding .module-catalog).
	(.module-catalog): C (target); rewrite actions.
	(clean-local): C (target).
	(update-libsite-module-catalog): C (target); rewrite actions.

2011-04-28  Thien-Thi Nguyen  <ttn@gnuvola.org>

	[doc] Don't say "return value unspecified".

	U ≡ Remove inanity from docstring.
	* sdl.c (delay): U.
	* sdlcdrom.c (cd_close): U.
	* sdlevent.c (pump_events, set_mod_state): U.
	* sdljoystick.c (joystick_close): U.
	* sdlmixer.c (mix_pause, mix_resume, mix_pause_music)
	(mix_resume_music, mix_rewind_music): U.
	* sdlsurface.c (unlock_surface): U.
	* sdlvideo.c (update_rect, update_rects, flip)
	(warp_mouse, set_cursor, gl_set_attribute)
	(gl_swap_buffers, unlock_yuv_overlay): U.

2011-04-28  Thien-Thi Nguyen  <ttn@gnuvola.org>

	[build] Switch to Guile-BAUX for doc maintenance.

	* Makefile.am (SUFFIXES): Remove .doc.
	(gx): New var.
	(c2doc, scm2doc, mkdocindex, dotdocfiles): Delete vars.
	(.c.doc, .scm.doc): Delete old-style suffix rules.
	(.doc-index): Delete target.
	[MAINTAINER_MODE] (coding, c_docscan, c_usual_args): New vars.
	[MAINTAINER_MODE] (noinst_DATA): Add sdl.tsar.
	[MAINTAINER_MODE] (sdl.tsar): New target.
	[MAINTAINER_MODE] (noinst_DATA): Add gfx.tsar.
	[MAINTAINER_MODE] (gfx.tsar): New target.
	[MAINTAINER_MODE] (noinst_DATA): Add scheme.tsar.
	[MAINTAINER_MODE] (scheme.tsar): New target.
	(noinst_DATA): Remove .doc-index.
	(MAINTAINERCLEANFILES): Delete var.
	[HAVE_MIXER] (dotdocfiles): Delete var.
	[HAVE_MIXER, MAINTAINER_MODE] (noinst_DATA): Add mixer.tsar.
	[HAVE_MIXER, MAINTAINER_MODE] (mixer.tsar): New target.
	[HAVE_TTF] (dotdocfiles): Delete var.
	[HAVE_TTF, MAINTAINER_MODE] (noinst_DATA): Add ttf.tsar.
	[HAVE_TTF, MAINTAINER_MODE] (ttf.tsar): New target.

2011-04-27  Thien-Thi Nguyen  <ttn@gnuvola.org>

	[build] Make sure snarfing looks in $(srcdir).

	* Makefile.am (snarfcppopts): Use $(DEFAULT_INCLUDES).

2011-04-27  Thien-Thi Nguyen  <ttn@gnuvola.org>

	[int] Add abstractions: C_{BOOL,CHAR,INT,LONG,ULONG,DOUBLE}

	* guile-sdl.h (C_BOOL, C_CHAR, C_INT)
	(C_LONG, C_ULONG, C_DOUBLE): New macros.
	* sdl.c: Do ‘s/gh_scm2bool/C_BOOL/g’, ‘s/gh_scm2char/C_CHAR/g’,
	‘s/gh_scm2int/C_INT/g’, ‘s/gh_scm2long/C_LONG/g’,
	‘s/gh_scm2ulong/C_ULONG/g’, ‘s/gh_scm2double/C_DOUBLE/g’.
	* sdlcdrom.c: Likewise.
	* sdlcolor.c: Likewise.
	* sdlenums.c: Likewise.
	* sdlevent.c: Likewise.
	* sdlgfx.c: Likewise.
	* sdljoystick.c: Likewise.
	* sdlmixer.c: Likewise.
	* sdlrect.c: Likewise.
	* sdlsurface.c: Likewise.
	* sdlttf.c: Likewise.
	* sdlvideo.c: Likewise.

2011-04-27  Thien-Thi Nguyen  <ttn@gnuvola.org>

	[int] Add abstraction: STRING

	* guile-sdl.h (STRING): New macro.
	(RETURN_0STR): Use it.
	* sdlenums.c (gsdl_make_flagstash): Likewise.
	* sdlvideo.c (wm_get_caption): Likewise.

2011-04-27  Thien-Thi Nguyen  <ttn@gnuvola.org>

	[int] Add abstraction: SYMBOL

	* guile-sdl.h (SYMBOL): New macro.
	* sdlenums.c (gsdl_define_enum, flagstash_flags): Use it.

2011-04-27  Thien-Thi Nguyen  <ttn@gnuvola.org>

	[int] Add abstraction: BOOLEAN

	* guile-sdl.h (BOOLEAN): New macro.
	(RETURN_BOOL): Use it.
	* sdlvideo.c (get_video_info): Likewise.

2011-04-27  Thien-Thi Nguyen  <ttn@gnuvola.org>

	[int] Use ‘scm_vector_ref’ more.

	* sdlvideo.c (set_colors, set_palette): Use ‘scm_vector_ref’.

2011-04-27  Thien-Thi Nguyen  <ttn@gnuvola.org>

	[int] Add abstractions: NUM_INT, NUM_LONG, NUM_ULONG

	* guile-sdl.h (NUM_INT, NUM_LONG, NUM_ULONG): New macros.
	(RETURN_INT): Use ‘NUM_LONG’.
	(RETURN_UINT): Use ‘NUM_ULONG’.
	* misc.c: Do ‘s/gh_int2scm/NUM_INT/g’,
	‘s/gh_long2scm/NUM_LONG/g’, ‘s/gh_ulong2scm/NUM_ULONG/g’.
	* sdlcdrom.c: Likewise.
	* sdlenums.c: Likewise.
	* sdlevent.c: Likewise.
	* sdlgfx.c: Likewise.
	* sdljoystick.c: Likewise.
	* sdlmixer.c: Likewise.
	* sdlttf.c: Likewise.
	* sdlvideo.c: Likewise.

2011-04-27  Thien-Thi Nguyen  <ttn@gnuvola.org>

	[int] Use C array instead of Scheme vector for enum table.

	* sdlenums.c (enum_struct): Drop member ‘.vec’; add member ‘.rev’.
	(mark_enum): Update.
	(free_enum): Also ‘free’ the ‘rev’.
	(gsdl_define_enum): Allocate and init ‘.rev’.
	(lookup): New static func.
	(gsdl_enum2long): Use ‘lookup’; rename args for clarity.
	(gsdl_long2enum): Update; also, if value out of range, return ‘#f’.
	(enumstash_enums): Rename arg; nfc.
	(enum_to_number): Rename arg; use ‘lookup’.
	(number_to_enum): Use ‘gsdl_long2enum’.

2011-04-27  Thien-Thi Nguyen  <ttn@gnuvola.org>

	[int] Add abstraction: LOOKUP

	Suggested by Brian Templeton.

	* guile-sdl.h (LOOKUP): New macro.
	* sdlenums.c (gsdl_init_enums): Use it.

2011-04-27  Thien-Thi Nguyen  <ttn@gnuvola.org>

	[int] Add abstractions: CALL1, CALL3

	* guile-sdl.h (CALL1, CALL3): New macros.
	* sdlenums.c (enumstash_enums): Use ‘CALL3’.
	* sdlevent.c (the_event_filter): Use ‘CALL1’.

2011-04-27  Thien-Thi Nguyen  <ttn@gnuvola.org>

	[int] Avoid ‘gh_list’.

	* misc.c (LIST3): New macro.
	(get_wm_info): Use it.

2011-04-27  Thien-Thi Nguyen  <ttn@gnuvola.org>

	[int] Add abstraction: DEFINE_PUBLIC

	Suggested by Brian Templeton.

	* guile-sdl.h (DEFINE_PUBLIC): New macro.
	* sdlenums.c (gsdl_define_enum): Use it.

2011-04-27  Thien-Thi Nguyen  <ttn@gnuvola.org>

	[int] Add abstractions: VECLENGTH, UVECLENGTH

	* guile-sdl.h (VECLENGTH, UVECLENGTH): New macros.
	* sdlgfx.c (draw_polygon, draw_aa_polygon)
	(draw_textured_polygon, draw_bezier): Use ‘UVECLENGTH’.
	* sdlvideo.c (create_cursor, set_colors)
	(set_palette, get_gamma_ramp): Use ‘VECLENGTH’.

2011-04-27  Thien-Thi Nguyen  <ttn@gnuvola.org>

	[int] Add abstraction: EQ

	* guile-sdl.h (EQ): New macro.
	* sdlvideo.c (wm_grab_input): Use it.

2011-04-27  Thien-Thi Nguyen  <ttn@gnuvola.org>

	[int] Add abstraction: SETCAR

	* guile-sdl.h (SETCAR): New macro.
	* sdlenums.c (enumstash_enums): Use it.

2011-04-27  Thien-Thi Nguyen  <ttn@gnuvola.org>

	[int] Add abstractions: CONS, CAR, CAAR, CDR

	Suggested by Brian Templeton.

	* guile-sdl.h (CONS, CAR, CAAR, CDR): New macros.
	(_rv_PUSH): Use ‘CONS’.
	* misc.c: Do s/gh_foo/FOO/g, foo ∈ {cons, car, caar, cdr}.
	* sdlcdrom.c: Likewise.
	* sdlenums.c: Likewise.
	* sdlevent.c: Likewise.
	* sdljoystick.c: Likewise.
	* sdlmixer.c: Likewise.
	* sdlttf.c: Likewise.
	* sdlvideo.c: Likewise.

2011-04-27  Thien-Thi Nguyen  <ttn@gnuvola.org>

	[int] Add abstractions: NULLP, PAIRP, EXACTP, SYMBOLP

	Suggested by Brian Templeton.

	* guile-sdl.h: #include <libguile> unconditionally.
	(NULLP, PAIRP, EXACTP, SYMBOLP): New macros.
	(ASSERT_LIST): Use ‘NULLP’, ‘PAIRP’.
	* sdlenums.c (enumstash_enums): Use ‘NULLP’.
	(gsdl_flags2ulong): Use ‘NULLP’, ‘PAIRP’.
	* sdlevent.c (peep_events): Use ‘NULLP’.
	* sdlmixer.c (mix_volume): Use ‘EXACTP’.
	* sdlsurface.c (set_alpha): Use ‘NULLP’.
	* sdlvideo.c (create_yuv_overlay): Use ‘SYMBOLP’.
	(update_rects): Use ‘NULLP’.

2011-04-27  Thien-Thi Nguyen  <ttn@gnuvola.org>

	[int] Add abstraction: PRIMPROC

	Suggested by Brian Templeton.

	* guile-sdl.h (PRIMPROC): New macro.
	(GSDL_NUMBER_GETTER, GSDL_NUMBER_SETTER, GSDL_ENUM_GETTER)
	(GSDL_ENUM_SETTER, GSDL_FLAG_GETTER, GSDL_FLAG_SETTER): Use it.
	* misc.c: Do s/GH_DEFPROC/PRIMPROC/g.
	* sdl.c: Likewise.
	* sdlcdrom.c: Likewise.
	* sdlcolor.c: Likewise.
	* sdlenums.c: Likewise.
	* sdlevent.c: Likewise.
	* sdlgfx.c: Likewise.
	* sdljoystick.c: Likewise.
	* sdlmixer.c: Likewise.
	* sdlrect.c: Likewise.
	* sdlsurface.c: Likewise.
	* sdlttf.c: Likewise.
	* sdlvideo.c: Likewise.

2011-04-27  Thien-Thi Nguyen  <ttn@gnuvola.org>

	[int] Add/use vector conversion funcs by Brian Templeton.

	* convert.c: New file.
	* Makefile.am (WRAPPER_SOURCES): Add convert.c.
	* guile-sdl.h: #include <stdint.h>.
	(gsdl_scm_to_int16s): New func decl.
	(gsdl_scm_to_uint16s): Likewise.
	(gsdl_scm_to_uint8s): Likewise.
	(gsdl_scm_from_uint16s): Likewise.
	* sdlgfx.c (draw_polygon, draw_aa_polygon)
	(draw_textured_polygon, draw_bezier): Use ‘gsdl_scm_to_int16s’.
	* sdlvideo.c (create_cursor): Use ‘gsdl_scm_to_uint8s’.
	(GAMMAVEC): Use ‘gsdl_scm_from_uint16s’.
	(set_gamma_ramp): Use ‘gsdl_scm_to_uint16s’.

2011-04-27  Thien-Thi Nguyen  <ttn@gnuvola.org>

	[int] Stack-allocate cursor data and mask.

	* sdlvideo.c: #include <alloca.h>
	(create_cursor): Use ‘alloca’; don't ‘free’ afterwards.

2011-04-27  Thien-Thi Nguyen  <ttn@gnuvola.org>

	[maint] Move module-catalog machinery into src/.

	* Makefile.am (noinst_DATA): New var.
	[MAINTAINER_MODE] (noinst_DATA): Convert ‘=’ to ‘+=’.
	(updatemodcat): New var.
	(install-data-hook, uninstall-hook): Also $(updatemodcat).
	(noinst_DATA): Add .module-catalog.
	(.module-catalog): New target.
	(clean-local, update-libsite-module-catalog): Likewise.

2011-04-26  Thien-Thi Nguyen  <ttn@gnuvola.org>

	[gfx] Extend ‘imfi-mmx?’ to also wrap SDL_imageFilterMMX{on,off}.

	* sdlgfx.c (imfi_mmx_p): Take optional arg SETTING;
	enable MMX if ‘#t’; disable if ‘#f’; do nothing otherwise.

2011-04-26  Thien-Thi Nguyen  <ttn@gnuvola.org>

	[gfx] Upgrade to SDL_gfx 2.0.22.

	* SDL_gfx/README: Update
	* SDL_gfx/SDL_framerate.h: Update; plus use #include
	<SDL/foo.h> instead of #include <foo.h> or "foo.h".
	* SDL_gfx/SDL_gfxBlitFunc.h: Likewise.
	* SDL_gfx/SDL_gfxPrimitives.h: Likewise.
	* SDL_gfx/SDL_gfxPrimitives_font.h: Likewise.
	* SDL_gfx/SDL_imageFilter.h: Likewise.
	* SDL_gfx/SDL_rotozoom.h: Likewise.
	* SDL_gfx/SDL_framerate.c: Update; plus #include "config.h".
	* SDL_gfx/SDL_gfxBlitFunc.c: Likewise.
	* SDL_gfx/SDL_gfxPrimitives.c: Likewise.
	* SDL_gfx/SDL_imageFilter.c: Likewise.
	* SDL_gfx/SDL_rotozoom.c: Likewise.

2011-04-26  Thien-Thi Nguyen  <ttn@gnuvola.org>

	[build] Use _LIBADD instead of _LDFLAGS to embed SDL_gfx.

	* Makefile.am (gfx_la_LDFLAGS): Remove ‘-L’ and ‘-l’ args.
	(gfx_La_LIBADD): New var.

2011-04-26  Thien-Thi Nguyen  <ttn@gnuvola.org>

	[int] Make ‘free’ decl available to sdlenums.c.

	* sdlenums.c: #include <stdlib.h>.

2010-06-26  Thien-Thi Nguyen  <ttn@gnuvola.org>

	[dist] Add copyright notice to SDL_gfx source files.

	* SDL_gfx/SDL_framerate.c: Add copyright notice.
	* SDL_gfx/SDL_framerate.h: Likewise.
	* SDL_gfx/SDL_gfxBlitFunc.c: Likewise.
	* SDL_gfx/SDL_gfxBlitFunc.h: Likewise.
	* SDL_gfx/SDL_gfxPrimitives.c: Likewise.
	* SDL_gfx/SDL_gfxPrimitives.h: Likewise.
	* SDL_gfx/SDL_gfxPrimitives_font.h: Likewise.
	* SDL_gfx/SDL_imageFilter.c: Likewise.
	* SDL_gfx/SDL_imageFilter.h: Likewise.
	* SDL_gfx/SDL_rotozoom.c: Likewise.
	* SDL_gfx/SDL_rotozoom.h: Likewise.

2010-06-26  Thien-Thi Nguyen  <ttn@gnuvola.org>

	[dist] Fix omission bug: Also distribute SDL_gfx LICENSE.

	* SDL_gfx/Makefile.am: Add copyright notice.
	(EXTRA_DIST): New var.

2009-10-20  Thien-Thi Nguyen  <ttn@gnuvola.org>

	Consolidate headers; nfc.

	Implicit for each *.c is: don't #include <guile/gh.h>;
	#include "guile-sdl.h"; dont't #include FOO.

	* guile-sdl.h: New file.
	* Makefile.am (headers): Add guile-sdl.h; delete argcheck.h,
	bool,h, retval.h, sdlenums.h, sdlsmobs.h, sdlvideo.h, sym.h, wholefuns.h.
	* gperfsup.h: Don't #include "sdlenums.h"; #include "guile-sdl.h".
	* misc.c: "sym.h".
	* sdl.c: "argcheck.h", "sdlenums.h", "sdlsmobs.h", "retval.h".
	* sdlcdrom.c: "argcheck.h", "sdlsmobs.h", "retval.h", "sym.h", "bool.h".
	* sdlcolor.c: "argcheck.h", "sdlsmobs.h", "wholefns.h".
	* sdlenums.c: "argcheck.h", "sdlenums.h",
	"sdlsmobs.h", "retval.h", "bool.h".
	* sdlevent.c: "argcheck.h", "sdlsmobs.h",
	"sdlenums.h", "wholefns.h", "retval.h", "sym.h".
	* sdlgfx.c: "argcheck.h", "sdlsmobs.h", "retval.h", "bool.h".
	* sdljoystick.c: "argcheck.h", "sdlsmobs.h", "retval.h", "sym.h".
	* sdlmixer.c: "argcheck.h", "sdlenums.h"
	"sdlsmobs.h", "retval.h", "sym.h", "bool.h".
	* sdlrect.c: "argcheck.h", "sdlsmobs.h", "wholefns.h".
	* sdlsurface.c: "argcheck.h", "wholefns.h",
	"sdlenums.h", "sdlsmobs.h", "sdlvideo.h", "retval.h", "bool.h".
	* sdlttf.c: "argcheck.h", "sdlsmobs.h",
	"sdlenums.h", "retval.h", "sym.h", "bool.h".
	* sdlvideo.c: "argcheck.h", "sdlenums.h",
	"sdlsmobs.h", "retval.h", "sym.h", "bool.h".

2009-10-19  Thien-Thi Nguyen  <ttn@gnuvola.org>

	[build] Ensure "config.h" is first to be #include:d.

	* SDL_gfx/SDL_imageFilter.c: Move #include "config.h" first.
	* misc.c: Likewise.
	* sdl.c: Likewise.
	* sdlcdrom.c: Likewise.
	* sdlcolor.c: Likewise.
	* sdlenums.c: Likewise.
	* sdlevent.c: Likewise.
	* sdlgfx.c: Likewise.
	* sdljoystick.c: Likewise.
	* sdlmixer.c: Likewise.
	* sdlrect.c: Likewise.
	* sdlsurface.c: Likewise.
	* sdlttf.c: Likewise.
	* sdlvideo.c: Likewise.

2009-04-24  Thien-Thi Nguyen  <ttn@gnuvola.org>

	Release: 0.3.10

2009-04-23  Thien-Thi Nguyen  <ttn@gnuvola.org>

	Implement `set-event-filter', `get-event-filter'.

	* sdlevent.c (event_filter_info): New struct.
	(efi): New static `struct event_filter_info'.
	(the_event_filter): New static func.
	(set_event_filter, get_event_filter): Implement.
	(gsdl_init_event): Init `efi.proc'.

2009-04-04  Thien-Thi Nguyen  <ttn@gnuvola.org>

	New (sdl gfx) proc: draw-arc

	* sdlgfx.c (draw_arc): New GH_DEFPROC.

2009-04-04  Thien-Thi Nguyen  <ttn@gnuvola.org>

	Clean up some SDL_gfx warnings.

	* SDL_gfx/SDL_gfxPrimitives.c (circleColor):
	Delete unused local variables `ocx', `ocy'.
	(arcColor): Likewise.  Also, init `stopval_start', `temp'.
	* SDL_gfx/SDL_rotozoom.c (transformSurfaceRGBA):
	Init `c00', `c01', `c10', `c11'.
	(rotozoomSurfaceXY): Init `colorkey'.

2009-04-03  Thien-Thi Nguyen  <ttn@gnuvola.org>

	Update SDL_gfx to 2.0.18.

	* SDL_gfx/SDL_gfxPrimitives.c: Update.
	* SDL_gfx/SDL_gfxPrimitives.h: Likewise.
	* SDL_gfx/SDL_rotozoom.c: Likewise.
	* SDL_gfx/SDL_rotozoom.h: Likewise.

2009-04-02  Thien-Thi Nguyen  <ttn@gnuvola.org>

	Allocate `gh_scm2shorts' dest on the stack (use `alloca').

	* sdlgfx.c: #include <alloca.h>.
	(draw_polygon, draw_aa_polygon, draw_textured_polygon)
	(draw_bezier): Use `alloca' for `cvx', `cvy'.

2009-04-02  Thien-Thi Nguyen  <ttn@gnuvola.org>

	Hide symbols of embedded libSDL_gfx, if compiling w/ GCC.

	* SDL_gfx/Makefile.am (libSDL_gfx_la_CFLAGS): New var.

2009-04-02  Thien-Thi Nguyen  <ttn@gnuvola.org>

	Decruft: Use 1..8 instead of ARGH1..ARGH8.

	* argcheck.h (ARGH1, ARGH2, ARGH3, ARGH4, ARGH5, ARGH6)
	(ARGH7, ARGH8, ARGHn): Delete macros.
	* sdl.c: Throughout, use 1..8 instead of ARGH1..ARGH8.
	* sdlcdrom.c: Likewise.
	* sdlcolor.c: Likewise.
	* sdlenums.c: Likewise.
	* sdlevent.c: Likewise.
	* sdlgfx.c: Likewise.
	* sdljoystick.c: Likewise.
	* sdlmixer.c: Likewise.
	* sdlrect.c: Likewise.
	* sdlsurface.c: Likewise.
	* sdlttf.c: Likewise.
	* sdlvideo.c: Likewise.
	* wholefns.h: Likewise.

2009-01-05  Thien-Thi Nguyen  <ttn@gnuvola.org>

	Decruft: Use 1..7 instead of SCM_ARG1..SCM_ARG7.

	* argcheck.h (ARGH1, ARGH2, ARGH3)
	(ARGH4, ARGH5, ARGH6, ARGH7): Use 1..7 directly.

2008-06-16  Thien-Thi Nguyen  <ttn@gnuvola.org>

	Detect MMX availability at configure-time.

	* SDL_gfx/SDL_imageFilter.c: #include "config.h".

2008-05-29  Thien-Thi Nguyen  <ttn@gnuvola.org>

	Fix bug introduced in Guile-SDL 0.3.9 (2008-04-02):
	New (sdl mixer) procs: set-panning, set-distance, set-position:
	Specify correct number of args for `set-position'.

	* mix_set_position (mix_set_position): Fix bug: Specify 3 args.

2008-04-19  Thien-Thi Nguyen  <ttn@gnuvola.org>

	Install foo.so instead of foo.so.0.0.0; delete .0.0.0 if found.

	* Makefile.am (modflags): New var.
	(sdl_la_LDFLAGS, gfx_la_LDFLAGS): Use $(modflags).
	(install-data-hook): Delete "$(DESTDIR)$(cmoddir)/*.0.0.0", as well.
	[HAVE_MIXER] (mixer_la_LDFLAGS): Use $(modflags).
	[HAVE_TTF] (ttf_la_LDFLAGS): Use $(modflags).

2008-04-19  Thien-Thi Nguyen  <ttn@gnuvola.org>

	Clean up Makefile.am files.

	* SDL_gfx/Makefile.am (AM_CPPFLAGS): Delete var.
	(EXTRA_DIST): Delete var.
	(libSDL_gfx_la_SOURCES): Add SDL_framerate.h, SDL_gfxBlitFunc.h,
	SDL_gfxPrimitives.h, SDL_imageFilter.h, SDL_rotozoom.h.
	(libSDL_gfx_la_CFLAGS, libSDL_gfx_la_LIBADD): Delete vars.

	* Makefile.am (AUTOMAKE_OPTIONS): Delete var.
	(headers): New var.
	(EXTRA_DIST): Remove argcheck.h, bool.h, gperfsup.h, modsup.h,
	retval.h, sdlenums.h, sdlsmobs.h, sdlvideo.h, sym.h, wholefuns.h.
	(sdl_la_SOURCES): Add $(headers).
	(gfx_la_SOURCES): Add $(headers).

2008-04-02  Thien-Thi Nguyen  <ttn@gnuvola.org>

	Make "make uninstall" DTRT.

	* Makefile.am (uninstall-hook): New target.

2008-04-02  Thien-Thi Nguyen  <ttn@gnuvola.org>

	New (sdl mixer) procs: set-panning, set-distance, set-position

	* sdlmixer.c (mix_set_panning): New GH_DEFPROC.
	(mix_set_distance, mix_set_position): Likewise.

2008-04-01  Thien-Thi Nguyen  <ttn@gnuvola.org>

	Move config.h to src/.

	* Makefile.am (snarfcppopts): No longer specify `-I..'.

2008-04-01  Thien-Thi Nguyen  <ttn@gnuvola.org>

	Consolidate Scheme source into src/.

	* OLD.scm.ChangeLog: Rename from ../sdl/ChangeLog.
	* misc-utils.scm: Rename from ../sdl/misc-utils.scm.
	* simple.scm: Rename from ../sdl/simple.scm.
	* Makefile.am: No longer include $(top_srcdir)/am/common.
	(cmmoddir, scheme, cmod_DATA): New vars.
	(SUFFIXES): Convert from appending-var to var.
	(scm2doc): New var.
	(dotdocfiles): Add $(scheme:.scm=.doc).
	(.scm.doc): New pattern rule.
	(DISTCLEANFILES, noinst_DATA): Convert from appending-var to var.

2008-04-01  Thien-Thi Nguyen  <ttn@gnuvola.org>

	Consolidate C source into src/.

	* OLD.gfx.ChangeLog: Rename from ../sdl-gfx/ChangeLog.
	* OLD.include.ChangeLog: Rename from ../include/ChangeLog.
	* OLD.mixer.ChangeLog: Rename from ../sdl-mixer/ChangeLog.
	* OLD.ttf.ChangeLog: Rename from ../sdl-ttf/ChangeLog.
	* SDL_gfx: Rename from ../sdl-gfx/SDL_gfx.
	* argcheck.h: Rename from ../include/argcheck.h.
	* bool.h: Rename from ../include/bool.h.
	* gperfsup.h: Rename from ../include/gperfsup.h.
	* retval.h: Rename from ../include/retval.h.
	* sdlenums.h: Rename from ../include/sdlenums.h.
	* sdlsmobs.h: Rename from ../include/sdlsmobs.h.
	* sdlvideo.h: Rename from ../include/sdlvideo.h.
	* sym.h: Rename from ../include/sym.h.
	* wholefns.h: Rename from ../include/wholefns.h.
	* sdlgfx.c: Rename from ../sdl-gfx/sdlgfx.c.
	Also, use `#include "SDL_gfx/foo"' explicitly.
	* sdlmixer.c: Rename from ../sdl-mixer/sdlmixer.c.
	* sdlttf.c: Rename from ../sdl-ttf/sdlttf.c.
	* ttff.fspec: Rename from ../sdl-ttf/ttff.fspec.

	* Makefile.am: No longer include $(top_srcdir)/am/fspec.
	No longer include $(top_srcdir)/am/snarfing.
	(SUBDIRS): New var.
	(cmod_LTLIBRARIES): Add gfx.la.
	(BUILT_SOURCES): Add sdlgfx.x.
	(EXTRA_DIST): Init to *.fspec and *.h files.
	(gfx_la_SOURCES, gfx_la_LDFLAGS): New vars.
	(SUFFIXES): New appending-var.
	(snarfcppopts, c2doc, mkdocindex, dotdocfiles): New vars.
	(.c.x, .c.doc): New pattern rules.
	(.doc-index): New target.
	(DISTCLEANFILES): New appending-var.
	[MAINTAINER_MODE] (fspec2c): New var.
	[MAINTAINER_MODE] (.fpsec.c): New pattern rule.
	[MAINTAINER_MODE] (noinst_DATA): New appending-var.
	[MAINTAINER_MODE] (MAINTAINERCLEANFILES): New appending-var.
	(SOFIXFLAGS): New var.
	(install-data-hook): Add command to "sofix" installed modules.
	[HAVE_MIXER] (BUILT_SOURCES): New appending-var.
	[HAVE_MIXER] (dotdocfiles, cmod_LTLIBRARIES): Likewise.
	[HAVE_MIXER] (mixer_la_SOURCES, mixer_la_LDFLAGS): New vars.
	[HAVE_TTF] (BUILT_SOURCES): New appending-var.
	[HAVE_TTF] (EXTRA_DIST, dotdocfiles, cmod_LTLIBRARIES): Likewise.
	[HAVE_TTF] (ttf_la_SOURCES, ttf_la_LDFLAGS): New vars.

2008-04-01  Thien-Thi Nguyen  <ttn@gnuvola.org>

	Move flip funcs into sdlsurface.c.

	* sdlsurface.c (vertical_flip_surface): New GH_DEFPROC.
	(horizontal_flip_surface): Likewise.
	(vh_flip_surface): Likewise.
	* sdlgfx.c: Delete file.
	* sdl.c (gsdl_init_gfx): Delete extern decl.
	(init_module): No longer call `gsdl_init_gfx'.
	* Makefile.am (WRAPPER_SOURCES): Remove sdlgfx.c.

2008-03-19  Thien-Thi Nguyen  <ttn@gnuvola.org>

	Clean up (a little) before quitting.

	* sdl.c (quit, quit_subsystem): Do a garbage collection
	prior to calling the SDL quitting function.

2008-02-14  Thien-Thi Nguyen  <ttn@gnuvola.org>

	Replace CVS-isms w/ Git-isms.

	* .cvsignore: Delete file.

2007-09-15  Thien-Thi Nguyen  <ttn@gnuvola.org>

	* Makefile.am (install-data-hook): Rewrite.

2007-09-14  Thien-Thi Nguyen  <ttn@gnuvola.org>

	* misc.c, sdl.c, sdlcdrom.c, sdlcolor.c, sdlenums.c, sdlevent.c
	* sdlgfx.c, sdljoystick.c, sdlrect.c, sdlsurface.c, sdlvideo.c:
	Convert docstrings into doc: comments.

2007-01-02  Thien-Thi Nguyen  <ttn@ambire>

	* sdlevent.c (NUM2_GETTER, NUM2_SETTER, NUM3_GETTER, NUM3_SETTER):
	Prettify docstrings; remove whitespace between C struct components.

2007-01-01  Thien-Thi Nguyen  <ttn@ambire>

	* sdlcdrom.c (GETCUR): New macro.
	(cd_get_num_tracks, cd_get_cur_track, cd_get_cur_frame): Use it.

2006-12-19  Thien-Thi Nguyen  <ttn@ambire>

	* sdlcdrom.c (RETURN_NEW_CDROM): Use `NEWSMOB_OR_FALSE'.

	* sdlcolor.c (make_color): Don't init `color' if it is NULL.

	* sdlevent.c (RETURN_NEW_EVENT)
	(RETURN_NEW_KEYSYM): Use `NEWSMOB_OR_FALSE'.
	(make_event): Don't init `event' if it is NULL.
	(make_keysym): Likewise for `keysym'.

	* sdljoystick.c (RETURN_NEW_JOYSTICK): Use `NEWSMOB_OR_FALSE'.

	* sdlrect.c (make_rect): Don't init `rect' if it is NULL.

	* sdlsurface.c (load_image): Use `RETURN_NEW_SURFACE'.
	(get_clip_rect): Don't init `rect' if it is NULL;

	* sdlvideo.c (RETURN_NEW_CURSOR)
	(RETURN_NEW_OVERLAY): Use `NEWSMOB_OR_FALSE'.
	(create_cursor, get_cursor): Don't init `cursor' if it is NULL.
	(set_colors, set_palette): Likewise for `ccolors'.

2006-12-15  Thien-Thi Nguyen  <ttn@ambire>

	* sdlsurface.c (load_image): Return #f if there are problems.

2006-12-07  Thien-Thi Nguyen  <ttn@ambire>

	* sdlvideo.c (wm_grab_input): Handle MODE being -1, 0, 1.

2006-12-07  Thien-Thi Nguyen  <ttn@ambire>

	* sdlvideo.c (query, off, on): New simple symbols.
	(wm_grab_input): Rewrite.

2006-11-16  Thien-Thi Nguyen  <ttn@ambire>

	* sdlsurface.c (make_surface): Fix bug: If there
	is no current surface, don't try to get its flags.

2006-11-16  Thien-Thi Nguyen  <ttn@ambire>

	* sdlsurface.c (make_surface): Fix bug: Get default
	pixel-format info from current video surface, if available.

2006-11-16  Thien-Thi Nguyen  <ttn@ambire>

	* sdlsurface.c (set_clip_rect):
	If RECT is #f, clear the the clip rect.

2006-11-16  Thien-Thi Nguyen  <ttn@ambire>

	* sdlvideo.c (update_rects): Use `ASSERT_LIST'.

2006-11-14  Thien-Thi Nguyen  <ttn@ambire>

	* sdl.c (quit, quit_subsystem): Return true.

2006-10-27  Thien-Thi Nguyen  <ttn@surf.glug.org>

	* sdlvideo.c (get_video_info): Fix typo: "wm-available".
	Also, use boolean for `blit-fill' alist element.

2006-10-26  Thien-Thi Nguyen  <ttn@surf.glug.org>

	* sdlvideo.c (map_rgb, map_rgba): Fix bug: Return unsigned integer.

2006-07-21  Thien-Thi Nguyen  <ttn@surf.glug.org>

	* sdlevent.c (peep_events): Typecheck NUMEVENTS.
	Throw "bad action" error on unrecognized ACTION.

2006-07-20  Thien-Thi Nguyen  <ttn@surf.glug.org>

	* sdlevent.c (peep_events): Doc fix.

2006-05-28  Thien-Thi Nguyen  <ttn@surf.glug.org>

	* sdlrect.c (rect_p): New GH_DEFPROC.
	* sdlcolor.c (color_p): New GH_DEFPROC.

2006-01-27  Thien-Thi Nguyen  <ttn@surf.glug.org>

	* sdlevent.c (get_key_state): Write implementation.

2005-05-17  Thien-Thi Nguyen  <ttn@surf.glug.org>

	* misc.c: Include <SDL/SDL_syswm.h>.
	(x11): New symbol.
	(get_wm_info): New GH_DEFPROC.

2005-05-16  Thien-Thi Nguyen  <ttn@surf.glug.org>

	* sdlcdrom.c (mark_cd): Delete func.
	(gsdl_init_cdrom): Don't register a mark func for "SDL-CD".

	* sdlcolor.c (mark_color): Delete func.
	(gsdl_init_color): Don't register a mark func for "SDL-Color".

	* sdlenums.c (mark_flagstash): Delete func.
	(gsdl_init_enums): Don't register a mark func for "flagstash".

	* sdlevent.c (mark_event, mark_keysym): Delete funcs.
	(gsdl_init_event): Don't register mark
	funcs for "SDL-Event" and "SDL-Keysym".

	* sdljoystick.c (mark_joy): Delete func.
	(gsdl_init_joystick): Don't register a mark func for "SDL-Joystick".

	* sdlrect.c (mark_rect): Delete func.
	(gsdl_init_rect): Don't register a mark func for "SDL-Rect".

	* sdlsurface.c (mark_surface): Delete func.
	(gsdl_init_surface): Don't register a mark func for "SDL-Surface".

	* sdlvideo.c (mark_cursor, mark_yuv_overlay)
	(mark_pixel_format): Delete funcs.
	(gsdl_init_video): Don't register mark funcs
	for "SDL-Cursor", "SDL-Pixel-Format" and "SDL-Overlay".

2005-05-16  Thien-Thi Nguyen  <ttn@surf.glug.org>

	* sdlenums.c (free_enum): Fix bug: return amount freed.

2005-05-16  Thien-Thi Nguyen  <ttn@surf.glug.org>

	* sdlvideo.c (xSDL_Cursor): New struct typedef.
	(MALLOC_XSDL_CURSOR): New macro.
	(UNPACK_CURSOR): Use `xSDL_Cursor'.
	(mark_cursor): Return SCM_BOOL_F.
	(mark_yuv_overlay, mark_pixel_format): Likewise.
	(free_cursor): Rewrite.
	(create_cursor): Use `xSDL_Cursor'.
	(set_cursor, get_cursor): Likewise.
	(gsdl_init_video): For `cursor' smob, use `xSDL_Cursor'.

2005-05-15  Thien-Thi Nguyen  <ttn@surf.glug.org>

	* sdlsurface.c (mark_surface): Return SCM_BOOL_F.
	(gsdl_init_surface): Fix bug: For `surface' smob, arrange
	to allocate space for `SDL_Surface *' only, not `SDL_Surface'.

	* sdlrect.c (mark_rect): Return SCM_BOOL_F.
	(free_rect): Fix bug: return amount freed.
	Also, use `UNPACK_RECT'.

	* sdlevent.c (mark_event, mark_keysym): Return SCM_BOOL_F.
	(free_event): Fix bug: return amount freed.
	(free_keysym): Elide auto var; nfc.

	* sdlcolor.c (mark_color): Return SCM_BOOL_F.
	(free_color): Fix bug: return amount freed.

	* sdljoystick.c (mark_joy): Return SCM_BOOL_F.

	* sdlcdrom.c (mark_cd): Return SCM_BOOL_F.
	(gsdl_init_cdrom): Fix bug: For `cdrom' smob, arrange
	to allocate space for `SDL_CD *' only, not `SDL_CD'.

2005-04-02  Thien-Thi Nguyen  <ttn@surf.glug.org>

	* sdlenums.c (gsdl_flags2ulong):
	If `flags' is #f or the empty list, return 0.

2005-04-02  Thien-Thi Nguyen  <ttn@surf.glug.org>

	* misc.c: New file.
	* Makefile.am (WRAPPER_SOURCES): Add misc.c.
	* sdl.c (gsdl_init_misc): New extern func decl.
	(init_module): Call `gsdl_init_misc'.

2005-02-07  Thien-Thi Nguyen  <ttn@surf.glug.org>

	* sdlvideo.c (print_pixel_format): New static func.
	(gsdl_init_video): Register new func as pixel format printer.

2005-02-07  Thien-Thi Nguyen  <ttn@surf.glug.org>

	* sdlsurface.c (print_surface): Use `scm_putc' and `scm_intprint'.
	* sdlrect.c (print_rect): Likewise.
	* sdljoystick.c (print_joy): Likewise.
	* sdlenums.c (print_flagstash): Likewise.
	* sdlcolor.c (print_color): Likewise.

2005-02-06  Thien-Thi Nguyen  <ttn@surf.glug.org>

	* sdlsurface.c (set_alpha): Make third arg optional.
	If unspecified, take it as zero.
	Also, take #f for `flag' as zero, as well.

2005-02-06  Thien-Thi Nguyen  <ttn@surf.glug.org>

	* sdlsurface.c (create_rgb_surface): Fix signedness bug:
	Use `gh_scm2ulong'.  Also, remove redundant casts.

	* sdlvideo.c (map_rgb): Likewise.
	(map_rgba): Likewise.
	(get_rgb): Likewise.
	(get_rgba): Likewise.
	(warp_mouse): Likewise.

2005-02-06  Thien-Thi Nguyen  <ttn@surf.glug.org>

	* sdlsurface.c (make_surface): Remove redundant casts.
	(create_rgb_surface): Likewise.
	(set_color_key): Likewise.
	(set_alpha): Likewise.
	(convert_surface): Likewise.

	* sdlvideo.c (list_modes): Likewise.
	(video_mode_ok): Likewise.
	(set_video_mode): Likewise.
	(update_rect): Likewise.

2005-02-06  Thien-Thi Nguyen  <ttn@surf.glug.org>

	* sdlcolor.c (NUMBER_SETTER):
	Pass additional arg to `GSDL_NUMBER_SETTER'.

	* sdlevent.c (NUMBER_SETTER): Likewise.

	* sdlrect.c (NUMBER_SETTER):
	Take additional arg `conv'; pass it to `GSDL_NUMBER_SETTER'.
	(NUMBER_GETSET): Take additional arg `c2s'. Update callers.

2005-02-06  Thien-Thi Nguyen  <ttn@surf.glug.org>

	* sdlevent.c (make_event): Use `GSDL_ENUM2LONG'.
	(make_keysym): Likewise.
	(peep_events): Likewise.
	(event_state): Likewise.

	* sdlsurface.c (set_alpha): Likewise.

2005-02-05  Thien-Thi Nguyen  <ttn@surf.glug.org>

	* sdlsurface.c (get_clip_rect): Fix omission bug: Allocate rect.

2005-01-22  Thien-Thi Nguyen  <ttn@surf.glug.org>

	* sdlroto.c: Delete file.

	* sdl.c (gsdl_init_rotozoom): Delete extern func decl.
	(init_module): No longer call `gsdl_init_rotozoom'.

	* Makefile.am (AM_CPPFLAGS): Delete var.
	(SUBDIRS): Likewise.
	(WRAPPER_SOURCES): Remove sdlroto.c.
	(sdl_la_LDFLAGS): No longer specify "-LSDL_rotozoom" and "-lrotozoom".

2005-01-21  Thien-Thi Nguyen  <ttn@surf.glug.org>

	* sdlvideo.c (fill_rect): Fix bug: Use `gh_scm2ulong'.

2005-01-08  Thien-Thi Nguyen  <ttn@surf.glug.org>

	* sdlevent.c (peep_events): Use structure assignment instead of `memcpy'.

2005-01-06  Thien-Thi Nguyen  <ttn@surf.glug.org>

	* sdlevent.c (event_action_enum): New var, global.
	(event_mask_flags): New var, static.
	(get_event_mask_flags): New GH_DEFPROC.
	(peep_events): Write implementation.
	(gsdl_evmask_flagstash): New extern var decl.
	(gsdl_init_event): Init `event_action_enum' and `event_mask_flags'.

2005-01-06  Thien-Thi Nguyen  <ttn@surf.glug.org>

	* initf.fspec (#:struct): Arrange to quote the key.
	* kmodf.fspec: Likewise.
	* overlayf.fspec: Likewise.
	* palettef.fspec: Likewise.
	* videof.fspec: Likewise.

2005-01-06  Thien-Thi Nguyen  <ttn@surf.glug.org>

	* evmaskf.fspec: New file.
	* Makefile.am (FLAGSTASH): Add evmaskf.c.

2005-01-06  Thien-Thi Nguyen  <ttn@surf.glug.org>

	* sdlevent.c (event_state): Write implementation.

2005-01-06  Thien-Thi Nguyen  <ttn@surf.glug.org>

	* sdlenums.c (print_flagstash): Start w/ hash char per convention.

2005-01-06  Thien-Thi Nguyen  <ttn@surf.glug.org>

	* sdlgfx.c (scale_surface): Delete func.

2005-01-04  Thien-Thi Nguyen  <ttn@surf.glug.org>

	* sdlsurface.c (make_surface): Fix bug: Use `cflags'.
	(create_rgb_surface): Likewise.

2004-07-23  Thien-Thi Nguyen  <ttn@surf.glug.org>

	* sdl.c: Move "#define FUNC_NAME" inside func scope; nfc.
	* sdlcdrom.c: Likewise.
	* sdlcolor.c: Likewise.
	* sdlenums.c: Likewise.
	* sdlevent.c: Likewise.
	* sdlgfx.c: Likewise.
	* sdljoystick.c: Likewise.
	* sdlrect.c: Likewise.
	* sdlroto.c: Likewise.
	* sdlsurface.c: Likewise.
	* sdlvideo.c: Likewise.

2004-07-23  Thien-Thi Nguyen  <ttn@surf.glug.org>

	* sdlevent.c (gsdl_init_event):
	Remove `SDL_DISABLE' from `event-states' enumstash.

2004-07-22  Thien-Thi Nguyen  <ttn@surf.glug.org>

	* sdlvideo.c (gsdl_init_video): Use macro `GSDL_CSCS'.
	* sdlevent.c (gsdl_init_event): Likewise.

2004-07-22  Thien-Thi Nguyen  <ttn@surf.glug.org>

	* sdlenums.c (hfold): New static var.
	(acons): Likewise.
	(MAKE_HASH_TABLE): Init w/ `SCM_EOL'.
	(enumstash_enums): New GH_DEFPROC.
	(gsdl_init_enums): Init `acons' and `hfold'.

2004-07-12  Thien-Thi Nguyen  <ttn@surf.glug.org>

	* Makefile.am (install-data-hook): In $(cmoddir),
	symlink each foo.la in $(cmod_LTLIBRARIES) to libfoo.la.

2004-06-28  Thien-Thi Nguyen  <ttn@surf.glug.org>

	* sdl.c (scm_init_sdl_sdl_module): Rename
	from `sdl_init_sdl_sdl_sup_module'.

	* Makefile.am (cmod_LTLIBRARIES): Remove sdl-sup.la, add sdl.la.
	(sdl_sup_la_SOURCES): Delete.
	(sdl_sup_la_LDFLAGS): Likewise.
	(sdl_la_SOURCES): New automake var/directive.
	(sdl_la_LDFLAGS): Likewise.
	(install-data-hook): New target.

2004-05-20  Thien-Thi Nguyen  <ttn@surf.glug.org>

	* sdl.c (gsdl_smob_tags): Init w/ dummy value.

2004-03-05  Thien-Thi Nguyen  <ttn@surf.glug.org>

	* sdl.c: Doc munging; nfc.

	* sdlcdrom.c: Doc munging.
	Simplify expressions comparing against NULL.
	Use new macros.
	(UNPACK_CDROM): New macro.
	(RETURN_NEW_CDROM): Likewise.
	(CDROM_P): Likewise.
	(TRAYEMTPY): New simple symbol.
	(STOPPED): Likewise.
	(PLAYING): Likewise.
	(PAUSED): Likewise.
	(ERROR): Likewise.
	(cd_status): Return symbol instead of number.
	(cd_get_nth_track): On error return #f.

	* sdlcolor.c: Use `UNPACK_COLOR'.

	* sdlenums.c: Use new macros.
	(ASSERT_ENUM): New macro.
	(UNPACK_ENUM): Likewise.
	(UNPACK_FLAGSTASH): Likewise.

	* sdlevent.c: Doc munging.
	Use new macros.
	(UNPACK_EVENT): New macro.
	(RETURN_NEW_EVENT): Likewise.
	(UNPACK_KEYSYM): Likewise.
	(RETURN_NEW_KEYSYM): Likewise.

	* sdlgfx.c: Use macro `THROW_NOT_YET_IMPLEMENTED'.

	* sdljoystick.c: Simplify expressions comparing against NULL.
	Use new macros.
	(UNPACK_JOYSTICK): New macro.
	(RETURN_NEW_JOYSTICK): Likewise.
	(JOYSTICK_P): Likewise.
	(joystick_get_ball): On error, return #f.

	* sdlroto.c: Refill; nfc.

	* sdlsurface.c: Use new macro.
	(SURFACE_P): New macro.

	* sdlvideo.c: Use new macros.
	(COLOR_P): New macro.
	(RECT_P): Likewise.

2004-03-04  Thien-Thi Nguyen  <ttn@surf.glug.org>

	* sdlsurface.c (string_to_image): New GH_DEFPROC.

2004-02-25  Thien-Thi Nguyen  <ttn@surf.glug.org>

	* sdlcdrom.c: Use `RETURN_LIST4',
	`RETURN_LIST0' and `RETURN_LIST3'.
	* sdlevent.c: Use `RETURN_LIST3'.
	* sdljoystick.c: Use `RETURN_LIST2' and `RETURN_LIST0'.
	* sdlvideo.c: Use `RETURN_LIST11', `RETURN_LIST3',
	`RETURN_LIST4' and `RETURN_LIST2'.

2004-02-25  Thien-Thi Nguyen  <ttn@surf.glug.org>

	* sdlvideo.c: Use `gh_bool2scm'.

2004-02-25  Thien-Thi Nguyen  <ttn@surf.glug.org>

	* sdlcdrom.c: Include "bool.h".
	Use `RETURN_FALSE' and `NOT_FALSEP'.

	* sdlenums.c: Include "bool.h".
	Use `RETURN_FALSE', `BOOL_FALSE' and `NOT_FALSEP'.

	* sdlevent.c: Include "bool.h". Use `NOT_FALSEP'.
	* sdlroto.c: Likewise.
	* sdlsurface.c: Likewise.

	* sdlvideo.c: Include "bool.h".
	Use `NOT_FALSEP', `SET_FALSE', `SET_TRUE',
	`BOOL_FALSE', `RETURN_FALSE' and `EXACTLY_FALSEP'.

2004-02-25  Thien-Thi Nguyen  <ttn@surf.glug.org>

	* sdlcdrom.c: Include "sym.h".
	Use `DECLARE_SIMPLE_SYM' and `SYM'.
	* sdlevent.c: Likewise.
	* sdljoystick.c: Likewise.
	* sdlvideo.c: Likewise.	Also, use `DECLARE_SYM'.

2004-02-24  Thien-Thi Nguyen  <ttn@surf.glug.org>

	* sdlenums.c: Include "retval.h".
	Use `RETURN_UINT'.

2004-02-24  Thien-Thi Nguyen  <ttn@surf.glug.org>

	* sdl.c: Use `RETURN_0STR'.
	* sdlcdrom.c: Likewise.
	* sdljoystick.c: Likewise.
	* sdlvideo.c: Likewise.

2004-02-24  Thien-Thi Nguyen  <ttn@surf.glug.org>

	* sdlcdrom.c: Use `RETURN_BOOL'.
	* sdlevent.c: Likewise.
	* sdljoystick.c: Likewise.
	* sdlsurface.c: Likewise.
	* sdlvideo.c: Likewise.

2004-02-24  Thien-Thi Nguyen  <ttn@surf.glug.org>

	* sdl.c: Use `RETURN_INT'.
	* sdlcdrom.c: Likewise.
	* sdlevent.c: Likewise.
	* sdljoystick.c: Likewise.
	* sdlsurface.c: Likewise.
	* sdlvideo.c: Likewise.

2004-02-24  Thien-Thi Nguyen  <ttn@surf.glug.org>

	* sdl.c: Include "retval.h".
	Use `RETURN_UNSPECIFIED'.
	* sdlcdrom.c: Likewise.
	* sdlevent.c: Likewise.
	* sdlgfx.c: Likewise.
	* sdljoystick.c: Likewise.
	* sdlsurface.c: Likewise.
	* sdlvideo.c: Likewise.

2004-02-08  Thien-Thi Nguyen  <ttn@surf.glug.org>

	* sdlvideo.c (video_mode_ok): Make fourth arg optional.
	(flip): Doc fix; nfc.
	(wm_set_caption): Make second arg optional.

2004-02-08  Thien-Thi Nguyen  <ttn@surf.glug.org>

	* sdlsurface.c (set_clip_rect): Make second arg optional.

2004-02-08  Thien-Thi Nguyen  <ttn@surf.glug.org>

	* sdlroto.c (roto_zoom_surface): Fix bug: Set `zoom' correctly.

2004-02-08  Thien-Thi Nguyen  <ttn@surf.glug.org>

	* sdlcdrom.c (cd_play_tracks): Handle #f same as unbound, for
	`s_start_track', `s_start_frame', `s_n_tracks' and `s_n_frames'.
	(cd_msf_to_frames): Likewise, for `s_s' and `s_f'.

	* sdlevent.c (make_keysym): Handle #f same as unbound for `sym'.

	* sdlroto.c (roto_zoom_surface): Handle #f same as unbound for `s_zoom'.
	(zoom_surface): Likewise, for `s_zoomy'.

	* sdlsurface.c (blit_surface): Handle #f same as
	unbound, for `s_srcrect', `s_dst' and `s_dstrect'.

	* sdlvideo.c (list_modes): Handle #f same as
	unbound, for `s_pixel_format' and `s_flags'.
	Also, fix bug: check `s_pixel_format', not SCM_UNDEFINED!

2004-01-18  Thien-Thi Nguyen  <ttn@surf.glug.org>

	* sdl.c, sdlcdrom.c, sdlcolor.c, sdlenums.c, sdlevent.c,
	sdlgfx.c, sdljoystick.c, sdlrect.c, sdlroto.c, sdlsurface.c,
	sdlvideo.c: Update copyright.

2003-11-23  Thien-Thi Nguyen  <ttn@surf.glug.org>

	* sdlevent.c (NUM2_GETTER, NUM2_SETTER, NUM3_GETTER, NUM3_SETTER):
	Fix over-specification bug: Remove redundant "##"
	pre-processor operators between "." and other tokens.

2003-11-21  Thien-Thi Nguyen  <ttn@surf.glug.org>

	* Makefile.am (sdl_sup_la_SOURCES): Add $(FLAGSTASH).
	Remove $(BUILT_SOURCES).
	(EXTRA_DIST): Add empty var to support $(top_srcdir)/am/fspec.

2003-11-21  Thien-Thi Nguyen  <ttn@surf.glug.org>

	* sdlgfx.c (gsdl_init_gfx): Rename from `gsdl_gfx_init'.
	* sdl.c (gsdl_init_gfx): Add forward decl.
	(init_module): Also call `gsdl_init_gfx'.

2003-11-21  Thien-Thi Nguyen  <ttn@surf.glug.org>

	* sdlcolor.c (make_color): Use abstraction `RETURN_NEW_COLOR'.

	* sdlgfx.c (vertical_flip_surface, horizontal_flip_surface):
	Use abstraction `RETURN_NEW_SURFACE'.

	* sdlrect.c (make_rect): Use abstraction `RETURN_NEW_RECT'.

2003-11-21  Thien-Thi Nguyen  <ttn@surf.glug.org>

	* sdlroto.c (vertical_flip_surface, horizontal_flip_surface,
	vh_flip_surface): Delete redundant funcs.

2003-11-21  Thien-Thi Nguyen  <ttn@surf.glug.org>

	* sdlevent.c: Use `(void)' instead of `()' for arglists.
	(make_keysym, pump_events, peep_events, poll_event, wait_event,
	push_event, set_event_filter, get_event_filter, event_state,
	enable_unicode, enable_key_repeat, button_p): Add docstring.
	(get_key_state): Update docstring.

2003-11-20  Thien-Thi Nguyen  <ttn@surf.glug.org>

	* sdlgfx.c (horizontal_flip_surface):
	Fix typo in scheme name.

	* sdlroto.c (horizontal_flip_surface):
	Rename from `horiztonal_flip_surface'.

2003-11-19  Thien-Thi Nguyen  <ttn@surf.glug.org>

	* sdl.c: Rename Scheme-visible objects to omit "sdl-" prefix.
	* sdlcolor.c: Likewise.
	* sdlevent.c: Likewise.
	* sdljoystick.c: Likewise.
	* sdlroto.c: Likewise.
	* sdlvideo.c: Likewise.
	* sdlcdrom.c: Likewise.
	* sdlenums.c: Likewise.
	* sdlgfx.c: Likewise.
	* sdlrect.c: Likewise.
	* sdlsurface.c: Likewise.

2003-11-19  Thien-Thi Nguyen  <ttn@surf.glug.org>

	* sdl.c (init_flags): Rename static var from `sdl_init_flags'.
	* sdlvideo.c (gl_enums): Rename static var from `sdl_gl_enums'.

2003-11-19  Thien-Thi Nguyen  <ttn@surf.glug.org>

	* sdl.c: Rename GH_DEFPROC funcs to omit leading "sdl_".
	Update associated "#define FUNC_NAME".
	* sdlcdrom.c: Likewise.
	* sdlevent.c: Likewise.
	* sdljoystick.c: Likewise.
	* sdlroto.c: Likewise.
	* sdlsurface.c: Likewise.
	* sdlvideo.c: Likewise.

2003-11-17  Thien-Thi Nguyen  <ttn@surf.glug.org>

	* sdlcdrom.c: Use GH_DEFPROC instead of MDEFLOCEXP.
	* sdlcolor.c: Likewise.
	* sdlenums.c: Likewise.
	* sdlevent.c: Likewise.
	* sdlgfx.c: Likewise.
	* sdljoystick.c: Likewise.
	* sdlrect.c: Likewise.
	* sdlroto.c: Likewise.
	* sdlsurface.c: Likewise.
	* sdlvideo.c: Likewise.

	* sdl.c: Use GH_DEFPROC instead of MDEFLOCEXP
	and GH_MODULE_LINK_FUNC instead of MDEFLINKFUNC.

2003-11-10  Thien-Thi Nguyen  <ttn@surf.glug.org>

	* Makefile.am: Include $(top_srcdir)/am/common.
	Include $(top_srcdir)/am/fspec.
	Include $(top_srcdir)/am/snarfing.
	(AM_CPPFLAGS): Change "=" to "+=".  Remove
	elements found in AM_CPPFLAGS set in $(top_srcdir)/am/common.
	(cmoddir, BUILT_DOCS, SUFFIXES, .c.x, fspec2c, .fspec.c,
	DISTCLEANFILES, GUILE_SNARF_DOCS, GUILE_SNARF_DOCS_TEXI,
	%.doc:%.c, .doc.texi): Delete.

2003-11-09  Thien-Thi Nguyen  <ttn@surf.glug.org>

	* sdlcdrom.c: Use gh_bool2scm.
	* sdlevent.c: Likewise.
	* sdljoystick.c: Likewise.
	* sdlsurface.c: Likewise.
	* sdlvideo.c: Likewise.

2003-11-09  Thien-Thi Nguyen  <ttn@surf.glug.org>

	* sdlcdrom.c: Use BOUNDP, UNBOUNDP, and UNBOUND_MEANS_FALSE macros.
	* sdlevent.c: Likewise.
	* sdljoystick.c: Likewise.
	* sdlroto.c: Likewise.
	* sdlsurface.c: Likewise.
	* sdlvideo.c: Likewise.

2003-11-09  Thien-Thi Nguyen  <ttn@surf.glug.org>

	* sdl.c: Use ARGH* instead of SCM_ARG*.
	* sdlcdrom.c: Likewise.
	* sdlcolor.c: Likewise.
	* sdlenums.c: Likewise.
	* sdlevent.c: Likewise.
	* sdlgfx.c: Likewise.
	* sdljoystick.c: Likewise.
	* sdlrect.c: Likewise.
	* sdlroto.c: Likewise.
	* sdlsurface.c: Likewise.
	* sdlvideo.c: Likewise.

2003-11-09  Thien-Thi Nguyen  <ttn@surf.glug.org>

	* Makefile.am (.c.x, .cspec.c): Use guile-tools
	instead of pre-inst-guile-tools.

2003-11-08  Thien-Thi Nguyen  <ttn@surf.glug.org>

	* sdl.c: Update copyright.
	No longer include <libguile.h>.
	Include <guile/gh.h>.
	No longer include "sdl.h".
	Include "config.h" and "argcheck.h".
	No longer include "sdlrect.h", "sdlcolor.h", "sdlsurface.h",
	"sdlvideo.h", "sdlevent.h", "sdlcdrom.h", "sdljoystick.h"
	and "sdlroto.h".
	Throughout, replace `SCM_DEFINE' with `MDEFLOCEXP'.
	Throughout, use gh_* funcs and other abstractions where possible.
	Convert docstrings: "returns" -> "return", etc.
	(gsdl_init_enums): Add forward decl for this func.
	(gsdl_init_rect, gsdl_init_color, gsdl_init_video,
	gsdl_init_surface, gsdl_init_rotozoom, gsdl_init_event,
	gsdl_init_joystick, gsdl_init_cdrom): Likewise.
	(gsdl_smob_tags): New var.
	(sdl_init_flags): Make static.
	(sdl_get_init_flags): New MDEFLOCEXP func.
	(gsdl_init_flagstash): New extern var decl.
	(init_module): Rename from `guile_sdl_init' and make static.
	Use `gsdl_make_flagstash' and associated arglist to
	set `sdl_init_flags' instead of `scm_c_define_flag'.
	Remove call to `scm_c_export'.
	(scm_init_sdl_sdl_sup_module): New func, declared and
	defined using macro `MDEFLINKFUNC'.

	* sdlcdrom.c: Update copyright.
	No longer include <libguile.h>.
	Include <guile/gh.h>.
	No longer include "sdlcdrom.h".
	Include "config.h", "argcheck.h" and "sdlsmobs.h".
	Throughout, replace `SCM_DEFINE' with `MDEFLOCEXP'.
	Throughout, use gh_* funcs and other abstractions where possible.
	Convert docstrings: "returns" -> "return", etc.
	(cdrom_tag): Rename from `sdl_cdrom_tag'. Make static.
	(ASSERT_CDROM): New macro.
	(sdl_cd_get_nth_track): Make return value assoc list w/
	one SCM_LISTn call instead of with multiple `scm_acons' calls.
	(sdl_cd_frames_to_msf): Likewise.
	(gsdl_sym_offset, gsdl_sym_length, gsdl_sym_type, gsdl_sym_id,
	gsdl_sym_f, gsdl_sym_s, gsdl_sym_m): New static vars.
	(mark_cd): New static func.
	(free_cd, print_cd): Make static.
	(sdl_init_cdrom): Register `mark_cd'.
	Remove call to `scm_c_export'.

	* sdlcolor.c: Update copyright.
	No longer include <libguile.h>.
	Include <guile/gh.h>.
	No longer include "sdlsurface.h".
	Include "config.h", "argcheck.h" and "wholefns.h".
	Throughout, replace `SCM_DEFINE' with `MDEFLOCEXP'.
	Throughout, use gh_* funcs and other abstractions where possible.
	Convert docstrings: "returns" -> "return", etc.
	(color_tag): Make static.
	(mark_color): New static func.
	(free_color, print_color): Make static.
	(NUMBER_GETTER, NUMBER_SETTER, NUMBER_GETSET): New macros.
	(sdl_init_color): Register `mark_color'.
	Remove calls to `scm_c_define_gsubr'.
	Remove call to `scm_c_export'.

	* sdlenums.c: Update copyright.
	No longer include <libguile.h>.
	Include <guile/gh.h>.
	No longer include "sdlsurface.h".
	Include "config.h" and "argcheck.h".
	Throughout, replace `SCM_DEFINE' with `MDEFLOCEXP'.
	Throughout, use gh_* funcs and other abstractions where possible.
	Convert docstrings: "returns" -> "return", etc.
	(MAX_FLAGS): Delete macro.
	(enum_tag): Make static.
	(enum_struct): New struct.
	(mark_enum, free_enum): Make static.
	(REASONABLE_BUCKET_COUNT): New macro.
	(MAKE_HASH_TABLE): New macro.
	(gsdl_define_enum): Rename from `scm_c_define_enum'.
	(gsdl_enum2long): Rename from `scm_enum2long'.
	(gsdl_long2enum): Rename from `scm_long2enum'.
	(number_to_enum): Rename from `scm_number_to_enum'. Make MDEFLOCEXP.
	(scm_c_define_flag): Delete func.
	(flagstash_tag): New static var.
	(ASSERT_FLAGSTASH): New macro.
	(mark_flagstash, free_flagstash, print_flagstash): New static funcs.
	(gsdl_make_flagstash): New func.
	(gsdl_flags2ulong): Rename from `scm_flags2ulong'.
	Remove support for `flags' being an exact number.
	Add support for `flags' being a single symbol.
	(gsdl_ulong2flags): Rename from `scm_ulong2flags'.
	Fix bug: Test full mask instead of only one bit position.
	Fix bug: Handle case where stash has a member w/ value 0x0.
	No longer unconditionally return computed result; instead,
	return SCM_BOOL_F if the stash does not cover the value.
	(flagstash_flags): New MDEFLOCEXP func.
	(flags_to_number): Rename from `scm_flags_to_number'.
	Make MDEFLOCEXP.
	(number_to_flags): Likewise from `scm_number_to_flags'.
	(gsdl_init_enums): Renaem from `sdl_init_enums'.
	Register smob type "flagstash" and its mark, free, print funcs.
	Remove call to `scm_c_export'.

	* sdlevent.c: Update copyright.
	Include <guile/gh.h>.
	No longer include "sdlevent.h".
	Include "config.h", "argcheck.h" and "wholefns.h".
	Throughout, replace `SCM_DEFINE' with `MDEFLOCEXP'.
	Throughout, use gh_* funcs and other abstractions where possible.
	Convert docstrings: "returns" -> "return", etc.
	(event_tag, keysym_tag, event_mod_flags): Make static.
	(ASSERT_EVENT, ASSERT_KEYSYM): New macros.
	(mark_event, mark_keysym, free_keysym): New static funcs.
	(free_event): Make static.
	(make_keysym): Make MDEFLOCEXP.
	(ENUM_GETTER, ENUM_SETTER, ENUM_GETSET, NUMBER_GETTER,
	NUMBER_SETTER, NUM2_GETTER, NUM2_SETTER, NUM2_GETSET,
	NUM3_GETTER, NUM3_SETTER, NUM3_GETSET, FLAG_GETTER,
	FLAG_SETTER, FLAG_GETSET): New macros.
	(pump_events, peep_events, poll_event, wait_event, push_event,
	set_event_filter, get_event_filter, event_state, sdl_enable_unicode,
	sdl_enable_key_repeat, sdl_get_key_state, sdl_get_mod_state,
	sdl_set_mod_state, sdl_get_mouse_state, sdl_get_relative_mouse_state,
	sdl_button_p): Make MDEFLOCEXP.
	(gsdl_sym_state, gsdl_sym_x, gsdl_sym_y): New static vars.
	(sdl_get_event_mod_flags): New MDEFLOCEXP.
	(gsdl_kmod_flagstash): New extern var decl.
	(gsdl_init_event): Rename from `sdl_init_event'.
	Register `mark_event'.
	Register smob type "SDL-Keysym" and its mark and free funcs.
	Initialize `event_mod_flags' using `gsdl_make_flagstash'
	instead of `scm_c_define_flag'.
	Remove calls to `scm_c_define_gsubr'.
	Remove call to `scm_c_export'.

	* sdlgfx.c: Update copyright.
	Include <guile/gh.h> and <SDL/SDL_image.h>.
	No longer include "sdlgfx.h".
	Include "config.h", "argcheck.h" and "sdlsmobs.h".
	Throughout, replace `SCM_DEFINE' with `MDEFLOCEXP'.
	Throughout, use gh_* funcs and other abstractions where possible.
	Write docstrings.
	(gsdl_gfx_init): Rename from `sdl_gfx_init'.
	Remove calls to `scm_c_define_gsubr'.
	Remove call to `scm_c_export'.

	* sdljoystick.c: Update copyright.
	No longer include <libguile.h>.
	No longer include "sdljoystick.h".
	Include "config.h", "argcheck.h" and "sdlsmobs.h".
	Throughout, replace `SCM_DEFINE' with `MDEFLOCEXP'.
	Throughout, use gh_* funcs and other abstractions where possible.
	Convert docstrings: "returns" -> "return", etc.
	(joystick_tag): Rename from `sdl_joystick_tag'. Make static.
	(ASSERT_JOYSTICK): New macro.
	(gsdl_init_joystick): Rename from `sdl_init_joystick'.
	Register func `mark_joy'.
	Remove call to `scm_c_export'.

	* sdlrect.c: Update copyright.
	No longer include <libguile.h>.
	Include <guile/gh.h>.
	No longer include "sdlenums.h".
	No longer include "sdlrect.h".
	Include "config.h", "argcheck.h" and "wholefns.h".
	Throughout, replace `SCM_DEFINE' with `MDEFLOCEXP'.
	Throughout, use gh_* funcs and other abstractions where possible.
	Convert docstrings: "returns" -> "return", etc.
	(rect_tag): Delete var.
	(mark_rect): New static func.
	(free_rect, print_rect): Make static.
	(gsdl_init_rect): Rename from `sdl_init_rect'.
	Register func `mark_rect'.
	Remove calls to `scm_c_define_gsubr'.
	Remove call to `scm_c_export'.

	* sdlroto.c: Update copyright.
	No longer include <libguile.h>.
	No longer include "sdlroto.h".
	No longer include "sdlvideo.h".
	Include "config.h", "argcheck.h" and "sdlsmobs.h".
	Throughout, replace `SCM_DEFINE' with `MDEFLOCEXP'.
	Throughout, use gh_* funcs and other abstractions where possible.
	Convert docstrings: "returns" -> "return", etc.
	(gsdl_init_rotozoom): Rename from `sdl_init_rotozoom'.
	Remove call to `scm_c_export'.

	* sdlsurface.c: Update copyright.
	No longer include <libguile.h>.
	Include <guile/gh.h>.
	No longer include "sdlsurface.h".
	Include "config.h", "argcheck.h" and "wholefns.h".
	Throughout, replace `SCM_DEFINE' with `MDEFLOCEXP'.
	Throughout, use gh_* funcs and other abstractions where possible.
	Convert docstrings: "returns" -> "return", etc.
	(surface_tag): Delete var.
	(mark_surface): New static func.
	(free_surface, print_surface): Make static.
	(gsdl_init_surface): Rename from `sdl_init_surface'.
	Register func `mark_surface'.
	Remove calls to `scm_c_define_gsubr'.
	Remove call to `scm_c_export'.

	* sdlvideo.c: Update copyright.
	No longer include <libguile.h>.
	Include <guile/gh.h>.
	No longer include "sdlrect.h".
	No longer include "sdlcolor.h".
	No longer include "sdlsurface.h".
	Include "config.h" and "argcheck.h".
	Throughout, replace `SCM_DEFINE' with `MDEFLOCEXP'.
	Throughout, use gh_* funcs and other abstractions where possible.
	Convert docstrings: "returns" -> "return", etc.
	(sdl_gl_enums): Make static.
	(gsdl_alpha_enums): Rename from `sdl_alpha_enums'.
	(gsdl_video_flags): Rename from `sdl_video_flags'.
	(gsdl_palette_flags): Rename from `sdl_palette_flags'.
	(pixel_format_tag): Delete var.
	(cursor_tag, overlay_tag): Make static.
	(ASSERT_CURSOR, ASSERT_OVERLAY, UNPACK_CURSOR, UNPACK_OVERLAY,
	RETURN_NEW_CURSOR, RETURN_NEW_OVERLAY): New macros.
	(mark_cursor, mark_yuv_overlay, mark_pixel_format): New static funcs.
	(free_cursor, free_yuv_overlay, free_pixel_format): Make static.
	(sdl_get_video_flags, sdl_get_palette_flags,
	sdl_get_overlay_formats): New MDEFLOCEXP funcs.
	(gsdl_sym_hw_available, gsdl_sym_ww_available, gsdl_sym_blit_hw,
	gsdl_sym_blit_hw_CC, gsdl_sym_blit_hw_A, gsdl_sym_blit_sw,
	gsdl_sym_blit_sw_CC, gsdl_sym_blit_sw_A, gsdl_sym_blit_fill,
	gsdl_sym_video_mem, gsdl_sym_vfmt, gsdl_sym_redtable,
	gsdl_sym_greentable, gsdl_sym_bluetable, gsdl-sym_r, gsdl_sym_g,
	gsdl_sym_b, gsdl_sym_a, gsdl_sym_title, gsdl_sym_icon): New static vars.
	(GAMMAVEC): New macro.
	(fill_rect): No longer return a number. Instead, return #t for success.
	(ASSERT_VSZFIT): New macro.
	(gsdl_video_flagstash, gsdl_palette_flagstash,
	gsdl_overlay_flagstash): New extern var decls.
	(gsdl_init_video): Rename from `sdl_init_video'.
	Register `mark_cursor' and `free_cursor'.
	Register `mark_pixel_format'.
	Register `mark_yuv_overlay'.
	(gsdl_video_flags, gsdl_palette_flags, gsdl_overlay_formats):
	Initialize using `gsdl_make_flagstash' instead of `scm_c_define_flag'.
	Remove call to `scm_c_export'.

2003-11-07  Thien-Thi Nguyen  <ttn@surf.glug.org>

	* Makefile.am (AM_CPPFLAGS): Add "-Ifoo"
	for $(srcdir) and some children.
	(lib_LTLIBRARIES): Delete directive.
	(libguileSDL_la_SOURCES): Likewise.
	(libguileSDL_la_CFLAGS): Likewise.
	(libguileSDL_la_LIBADD): Likewise.
	(libguileSDL_la_LDFLAGS): Likewise.
	(libguileSDL_la_DEPENDENCIES): Likewise.
	(cmoddir): New var.
	(cmod_LTLIBRARIES): New directive.
	(FLAGSTASH): New var.
	(BUILT_SOURCES): Add $(FLAGSTASH).
	(sdl_sup_la_SOURCES): New directive.
	(sdl_sup_la_LDFLAGS): Likewise.
	(SUFFIXES): Add ".fspec".
	(GUILE_SNARF): Delete var.
	(.c.x): Use pre-inst-$(c2x) instead of $(GUILE_SNARF).
	(.fspec.c): New pattern rule.

2003-11-07  Thien-Thi Nguyen  <ttn@surf.glug.org>

	* initf.fspec (#:gperf-options): Add "--includes".
	* kmodf.fspec: Likewise.
	* overlayf.fspec: Likewise.
	* palettef.fspec: Likewise.
	* videof.fspec: Likewise.

2003-11-06  Thien-Thi Nguyen  <ttn@surf.glug.org>

	* initf.fspec: New file.
	* kmodf.fspec: Likewise.
	* overlayf.fspec: Likewise.
	* palettef.fspec: Likewise.
	* videof.fspec: Likewise.

2003-10-29  Thien-Thi Nguyen  <ttn@surf.glug.org>

	* Makefile.am (CC, CFLAGS, LIBS): Delete vars.
	(AM_CPPFLAGS): Renamed from `INCLUDES'.

2003-10-29  Thien-Thi Nguyen  <ttn@surf.glug.org>

	* Makefile.am (PACKAGE, VERSION): Delete directives.

2003-10-29  Thien-Thi Nguyen  <ttn@surf.glug.org>

	* Makefile.am: Merge multiple `SUFFIXES' directives into one.


Copyright (C) 2010, 2011, 2012, 2013 Thien-Thi Nguyen

Copying and distribution of this file, with or without modification,
are permitted provided the copyright notice and this notice are preserved.
