upkg.git
9 years agotests: Test some corner cases of upkg_decode_index.
Nick Bowler [Fri, 4 May 2012 00:24:48 +0000 (20:24 -0400)]
tests: Test some corner cases of upkg_decode_index.

It turns out that upkg_decode_index does not fail when there is not
a complete index encoding in the available data.  Add a test case (which
currently does not pass) to verify that the function fails in that
situation.

9 years agomusic: Fix obvious use of uninitialized variable.
Nick Bowler [Thu, 3 May 2012 04:51:08 +0000 (00:51 -0400)]
music: Fix obvious use of uninitialized variable.

9 years agoupkg: Fix missing return statement.
Nick Bowler [Fri, 1 Apr 2011 00:37:37 +0000 (20:37 -0400)]
upkg: Fix missing return statement.

9 years agoupkg: Add support for exporting individual objects.
Nick Bowler [Tue, 29 Mar 2011 02:20:40 +0000 (22:20 -0400)]
upkg: Add support for exporting individual objects.

9 years agopalette: Clean up deserialize a bit.
Nick Bowler [Tue, 29 Mar 2011 01:39:05 +0000 (21:39 -0400)]
palette: Clean up deserialize a bit.

10 years agoupkg: Handle errors from u_object_export_name.
Nick Bowler [Tue, 29 Mar 2011 01:37:03 +0000 (21:37 -0400)]
upkg: Handle errors from u_object_export_name.

As opposed to blindly proceeding with a nonsense filename...

10 years agoupkg: Print full object name when exporting.
Nick Bowler [Tue, 29 Mar 2011 00:41:00 +0000 (20:41 -0400)]
upkg: Print full object name when exporting.

10 years agolicense: Make autotools stuff available under WTFPL2.
Nick Bowler [Mon, 28 Mar 2011 23:40:45 +0000 (19:40 -0400)]
license: Make autotools stuff available under WTFPL2.

10 years agouobject: Make interface functions take UObjects directly.
Nick Bowler [Mon, 28 Mar 2011 23:35:28 +0000 (19:35 -0400)]
uobject: Make interface functions take UObjects directly.

This makes implementing the functions a little cleaner.

10 years agomusic: Migrate to GOB2.
Nick Bowler [Mon, 28 Mar 2011 22:55:07 +0000 (18:55 -0400)]
music: Migrate to GOB2.

10 years agouobject: Rename some interface-related identifiers.
Nick Bowler [Mon, 28 Mar 2011 22:53:36 +0000 (18:53 -0400)]
uobject: Rename some interface-related identifiers.

More changes to align with GOB2's expectations.

10 years agotexture: Migrate to GOB2.
Nick Bowler [Mon, 28 Mar 2011 22:51:23 +0000 (18:51 -0400)]
texture: Migrate to GOB2.

10 years agoengine: Start using GOB2 to generate GObject classes.
Nick Bowler [Fri, 25 Mar 2011 14:59:44 +0000 (10:59 -0400)]
engine: Start using GOB2 to generate GObject classes.

GOB2 allows us to eliminate a lot of boilerplate.  Unfortunately,
current versions of GOB2 don't directly support dynamic types, so you
will need a patched version of GOB2 as of this writing.  For now, just
the Palette class is built using GOB2.

10 years agoengine: Include object headers as <engine/xyz.h>.
Nick Bowler [Fri, 25 Mar 2011 00:57:22 +0000 (20:57 -0400)]
engine: Include object headers as <engine/xyz.h>.

This will work with VPATH builds even if the .h file is in the build
tree while the .c file is in the source tree, and vice versa.  For
non-VPATH builds, there should be no change in behaviour.

10 years agouobject: Rename U_OBJECT_TYPE to U_TYPE_OBJECT.
Nick Bowler [Wed, 23 Mar 2011 22:39:04 +0000 (18:39 -0400)]
uobject: Rename U_OBJECT_TYPE to U_TYPE_OBJECT.

Other tools, such as gob2, expect this naming convention.

10 years agouobject: Add initial support for object properties.
Nick Bowler [Wed, 23 Mar 2011 12:58:19 +0000 (08:58 -0400)]
uobject: Add initial support for object properties.

10 years agotexture: Add missing integer properties.
Nick Bowler [Tue, 22 Mar 2011 21:46:48 +0000 (17:46 -0400)]
texture: Add missing integer properties.

The limits for these properties were made up on the spot.

10 years agouobject: Add a helper function to load objects from packages.
Nick Bowler [Tue, 22 Mar 2011 00:11:55 +0000 (20:11 -0400)]
uobject: Add a helper function to load objects from packages.

10 years agoupkg: Print object properties in info mode.
Nick Bowler [Mon, 21 Mar 2011 13:40:38 +0000 (09:40 -0400)]
upkg: Print object properties in info mode.

10 years agotexture: Fix typo in get_property.
Nick Bowler [Mon, 21 Mar 2011 13:39:15 +0000 (09:39 -0400)]
texture: Fix typo in get_property.

These properties are unsigned ints, not booleans...

10 years agoupkg: Print class name in listings.
Nick Bowler [Mon, 21 Mar 2011 11:34:35 +0000 (07:34 -0400)]
upkg: Print class name in listings.

10 years agoengine: Implement Engine.Palette.
Nick Bowler [Sun, 13 Mar 2011 20:37:42 +0000 (16:37 -0400)]
engine: Implement Engine.Palette.

10 years agoupkg: Add an option to list packages.
Nick Bowler [Sun, 13 Mar 2011 18:06:54 +0000 (14:06 -0400)]
upkg: Add an option to list packages.

This new option will eventually replace the dual-purpose "info" option.

10 years agolicense: Update copyright notices.
Nick Bowler [Sun, 13 Mar 2011 16:52:46 +0000 (12:52 -0400)]
license: Update copyright notices.

10 years agoupkg: Add support for querying specific objects.
Nick Bowler [Sun, 13 Mar 2011 16:43:29 +0000 (12:43 -0400)]
upkg: Add support for querying specific objects.

10 years agoupkg: Embed struct upkg into the private structure.
Nick Bowler [Sat, 12 Mar 2011 01:55:50 +0000 (20:55 -0500)]
upkg: Embed struct upkg into the private structure.

This avoids the need to store a pointer to the private struct inside the
public struct and simplifies some code.

10 years agouobject: Don't access upkg_file's pkg member.
Nick Bowler [Sat, 12 Mar 2011 01:55:50 +0000 (20:55 -0500)]
uobject: Don't access upkg_file's pkg member.

The same information is already stored in the UObject class.  Use that
instead.

10 years agomusic: Remove file member from private struct.
Nick Bowler [Sat, 12 Mar 2011 01:55:50 +0000 (20:55 -0500)]
music: Remove file member from private struct.

The UObject class already has a file member.  Use that.

10 years agouobject: Remove the file parameter from deserialize.
Nick Bowler [Sat, 12 Mar 2011 01:55:50 +0000 (20:55 -0500)]
uobject: Remove the file parameter from deserialize.

The UObject class already has a file member; restructure the code to use
that instead.

10 years agouobject: Remove pkg_idx field.
Nick Bowler [Sat, 12 Mar 2011 01:55:50 +0000 (20:55 -0500)]
uobject: Remove pkg_idx field.

Nothing used this.

10 years agobuild: Rename autogen.sh to bootstrap.
Nick Bowler [Fri, 4 Mar 2011 00:49:30 +0000 (19:49 -0500)]
build: Rename autogen.sh to bootstrap.

10 years agobuild: Use autoreconf for bootstrapping.
Nick Bowler [Fri, 4 Mar 2011 00:37:08 +0000 (19:37 -0500)]
build: Use autoreconf for bootstrapping.

There is no need to re-invent autoreconf, badly.

10 years agobuild: Import libmodplug test macros from autoconf-dx.
Nick Bowler [Thu, 3 Mar 2011 23:26:31 +0000 (18:26 -0500)]
build: Import libmodplug test macros from autoconf-dx.

10 years agouobject: Add missing header to Makefile.am.
Nick Bowler [Thu, 3 Mar 2011 23:25:05 +0000 (18:25 -0500)]
uobject: Add missing header to Makefile.am.

10 years agolibupkg: Split the upkg_export struct into public/private parts.
Nick Bowler [Thu, 3 Mar 2011 02:46:19 +0000 (21:46 -0500)]
libupkg: Split the upkg_export struct into public/private parts.

This eliminates the need for dedicated functions to extract the name
and flag fields from the export struct.  It should now be easy to convey
export information to applications.

10 years agoupkg: Resolve hierarchical object references.
Nick Bowler [Thu, 3 Mar 2011 01:22:53 +0000 (20:22 -0500)]
upkg: Resolve hierarchical object references.

This doesn't actually do anything useful yet, but it's a start.

10 years agolibupkg: Make upkg_export_find less useless.
Nick Bowler [Tue, 13 Jul 2010 23:14:27 +0000 (19:14 -0400)]
libupkg: Make upkg_export_find less useless.

Add a 'parent' parameter which should allow objects to be uniquely
specified.

10 years agolibupkg: Simplify handling of format assertions.
Nick Bowler [Thu, 3 Mar 2011 01:07:31 +0000 (20:07 -0500)]
libupkg: Simplify handling of format assertions.

10 years agoupkg: Add support for controlling which package is acted upon.
Nick Bowler [Wed, 2 Mar 2011 05:31:57 +0000 (00:31 -0500)]
upkg: Add support for controlling which package is acted upon.

Instead of using the last -f option, allow the user to specify one or
more packages explicitly.  This will eventually be extended to allow
specifying individual objects.

10 years agoupkg: Improve error reporting during package load.
Nick Bowler [Wed, 2 Mar 2011 04:55:06 +0000 (23:55 -0500)]
upkg: Improve error reporting during package load.

10 years agognulib: Update to latest version.
Nick Bowler [Sun, 27 Feb 2011 16:44:01 +0000 (11:44 -0500)]
gnulib: Update to latest version.

11 years agoupkg: Update man page.
Nick Bowler [Wed, 7 Jul 2010 00:34:15 +0000 (20:34 -0400)]
upkg: Update man page.

11 years agoengine: Define the exit method.
Nick Bowler [Wed, 7 Jul 2010 00:21:43 +0000 (20:21 -0400)]
engine: Define the exit method.

Apparently, libltdl falls back to looking up the "unadorned" symbol
names if the _LTX_ symbols are not found.  This means it finds exit in
the C library instead of returning an error, with obvious consequences.

11 years agognulib: Remove link-warning.h from repository.
Nick Bowler [Tue, 27 Apr 2010 14:58:47 +0000 (10:58 -0400)]
gnulib: Remove link-warning.h from repository.

This was committed by accident earlier.

11 years agobuild: Abort configure if specified module library is not found.
Nick Bowler [Wed, 3 Feb 2010 19:40:20 +0000 (14:40 -0500)]
build: Abort configure if specified module library is not found.

If the user specifies, say, --with-modlib=modplug, it is not right to
use any other module library.  We also avoid checking for unrequested
module libraries.

11 years agoupkg: Don't crash if the specified package does not exist.
Nick Bowler [Wed, 3 Feb 2010 02:50:39 +0000 (21:50 -0500)]
upkg: Don't crash if the specified package does not exist.

Currently, g_type_module_use(pkg) will succeed even if the package does
not exist, due to the existence of shared-object-only packages.  So the
caller must look inside the UPkg structure to see if anything was
actually opened.  In the future, pending tools to create the things,
such packages probably won't exist and this hack can be removed.

11 years agomusic: Add simple file type detection to the dummy module.
Nick Bowler [Mon, 1 Feb 2010 23:30:04 +0000 (18:30 -0500)]
music: Add simple file type detection to the dummy module.

The dummy module can be a bit smarter so that the file extension of
exported data is correct.  Add support for xm, it and s3m.

11 years agoupkg: Specify package files as options.
Nick Bowler [Thu, 10 Dec 2009 04:34:13 +0000 (23:34 -0500)]
upkg: Specify package files as options.

Now, one must run "upkg -f foo.u" where previously one would run "upkg
foo.u".  This new syntax allows multiple packages to be specified on the
command line for purposes of dependency resolution and (soon) extraction
of specific objects.

The package operated upon is the last one specified in this manner.

11 years agoupkg: Don't unref packages, since gobject does not allow this.
Nick Bowler [Thu, 10 Dec 2009 04:32:07 +0000 (23:32 -0500)]
upkg: Don't unref packages, since gobject does not allow this.

11 years agolibupkg: Add explicit conversions to stdio wrappers.
Nick Bowler [Sun, 31 Jan 2010 21:53:13 +0000 (16:53 -0500)]
libupkg: Add explicit conversions to stdio wrappers.

Some C libraries provide a macro version of feof which does not convert
the provided pointer to FILE * before dereferencing it.  Ordinarily,
this conversion would occur automatically since feof's prototype
specifies FILE *, but this is suppressed in the macro case.

It is not clear to me whether this behaviour is consistent with the
requirements of the C standard.  However, after encountering at least
two implementations which do this, explicit conversions seem simple
enough.

11 years agobuild: Don't use a semicolon after sed's 't' command.
Nick Bowler [Sun, 31 Jan 2010 21:52:05 +0000 (16:52 -0500)]
build: Don't use a semicolon after sed's 't' command.

Some (namely, FreeBSD's) sed implementations fail when a semicolon is
used after a 't' command.  This behaviour appears to be acceptable
according to POSIX, so appease these implementations by passing extra
-e options to sed.

11 years agopackage: Move package search code to the VFS.
Nick Bowler [Tue, 8 Dec 2009 05:58:38 +0000 (00:58 -0500)]
package: Move package search code to the VFS.

11 years agopackage: Make the VFS directly open the package file.
Nick Bowler [Tue, 8 Dec 2009 05:54:58 +0000 (00:54 -0500)]
package: Make the VFS directly open the package file.

This is in preparation for moving the package search mechanism to the
VFS, as it nicely allows us to ensure that candidate packages actually
open successfully.

11 years agopackage: Get rid of separate mechanisms for opening packages.
Nick Bowler [Mon, 7 Dec 2009 08:01:06 +0000 (03:01 -0500)]
package: Get rid of separate mechanisms for opening packages.

Remove u_pkg_new_by_name and u_pkg_new_by_file, replacing them with
one function, u_pkg_open, that takes just a package name.  Named files
can now be part of the package search just like any other package.  This
should allow cool things like listing dependency packages on the upkg
command line.

11 years agobuild: Re-arrange CFLAGS/LDFLAGS a bit.
Nick Bowler [Mon, 7 Dec 2009 07:57:27 +0000 (02:57 -0500)]
build: Re-arrange CFLAGS/LDFLAGS a bit.

11 years agognulib: Update to latest version.
Nick Bowler [Mon, 7 Dec 2009 04:26:09 +0000 (23:26 -0500)]
gnulib: Update to latest version.

12 years agopack: Use a user-configurable macro to select 64 bit packing.
Nick Bowler [Fri, 18 Sep 2009 15:05:29 +0000 (11:05 -0400)]
pack: Use a user-configurable macro to select 64 bit packing.

12 years agolibupkg: Remove checks for an unsigned quantity being less than 0.
Nick Bowler [Fri, 18 Sep 2009 14:43:10 +0000 (10:43 -0400)]
libupkg: Remove checks for an unsigned quantity being less than 0.

12 years agouobject: Move source files into the uobject directory.
Nick Bowler [Fri, 18 Sep 2009 14:40:22 +0000 (10:40 -0400)]
uobject: Move source files into the uobject directory.

12 years agoupkg: Update verbosity behaviour for --info.
Nick Bowler [Fri, 18 Sep 2009 13:46:42 +0000 (09:46 -0400)]
upkg: Update verbosity behaviour for --info.

We now have four levels of verbosity:
  0 - Display only header information.
  1 - Also display information on individual exports.
  2 - Also display expanded flag information.
  3 - Also display information on individual names.

12 years agopackage: Allow opening by filename in addition to package name.
Nick Bowler [Wed, 16 Sep 2009 14:05:38 +0000 (10:05 -0400)]
package: Allow opening by filename in addition to package name.

Ultimately, libupkg will be merged into libuobject.  This is step one of
that merger, and doesn't affect very much.

12 years agolibupkg: Add a destructor that is called on package close.
Nick Bowler [Wed, 16 Sep 2009 04:37:50 +0000 (00:37 -0400)]
libupkg: Add a destructor that is called on package close.

This fixes mistake where fclose was called unconditionally in
upkg_close.

12 years agolibupkg: Parameterise I/O functions to allow custom streams.
Nick Bowler [Wed, 16 Sep 2009 01:05:32 +0000 (21:05 -0400)]
libupkg: Parameterise I/O functions to allow custom streams.

12 years agobuild: Pass PKGDATADIR to compiled sources.
Nick Bowler [Tue, 15 Sep 2009 23:33:32 +0000 (19:33 -0400)]
build: Pass PKGDATADIR to compiled sources.

12 years agopackage: Add initial support for package search.
Nick Bowler [Tue, 15 Sep 2009 02:43:49 +0000 (22:43 -0400)]
package: Add initial support for package search.

12 years agopack: Relax licensing of integer serialisation routines.
Nick Bowler [Tue, 15 Sep 2009 00:24:11 +0000 (20:24 -0400)]
pack: Relax licensing of integer serialisation routines.

12 years agoupkg: Add a simple man page.
Nick Bowler [Tue, 8 Sep 2009 17:48:43 +0000 (13:48 -0400)]
upkg: Add a simple man page.

12 years agoupkg: Add license information to --version output.
Nick Bowler [Mon, 7 Sep 2009 21:37:20 +0000 (17:37 -0400)]
upkg: Add license information to --version output.

12 years agolicense: Add permissive license to build related source files.
Nick Bowler [Mon, 7 Sep 2009 21:32:15 +0000 (17:32 -0400)]
license: Add permissive license to build related source files.

12 years agolicense: Upgrade to GPL version 3 or later.
Nick Bowler [Mon, 7 Sep 2009 21:30:36 +0000 (17:30 -0400)]
license: Upgrade to GPL version 3 or later.

12 years agobuild: Add uobject/package.h to Makefile.am
Nick Bowler [Mon, 7 Sep 2009 20:58:42 +0000 (16:58 -0400)]
build: Add uobject/package.h to Makefile.am

12 years agobuild: Automatically fetch Gnulib from git when running autogen.sh.
Nick Bowler [Mon, 7 Sep 2009 19:55:41 +0000 (15:55 -0400)]
build: Automatically fetch Gnulib from git when running autogen.sh.

12 years agobuild: Add libuobject.pc
Nick Bowler [Fri, 28 Aug 2009 04:36:02 +0000 (00:36 -0400)]
build: Add libuobject.pc

12 years agoupkg: Support UOBJECT_MODULE_PATH to add library search paths.
Nick Bowler [Fri, 28 Aug 2009 04:35:07 +0000 (00:35 -0400)]
upkg: Support UOBJECT_MODULE_PATH to add library search paths.

12 years agoMerge branch 'uobject' of git://git.draconx.ca/upkg into uobject
Nick Bowler [Sat, 8 Aug 2009 16:59:39 +0000 (12:59 -0400)]
Merge branch 'uobject' of git://git.draconx.ca/upkg into uobject

12 years agoupkg: Print export flags.
Nick Bowler [Sat, 8 Aug 2009 16:02:46 +0000 (12:02 -0400)]
upkg: Print export flags.

12 years agouobject: Install modules to a more appropriate location.
Nick Bowler [Sat, 8 Aug 2009 07:15:45 +0000 (03:15 -0400)]
uobject: Install modules to a more appropriate location.

12 years agoDon't bail out if a read fails but there's still data available.
Nick Bowler [Sat, 8 Aug 2009 06:16:40 +0000 (02:16 -0400)]
Don't bail out if a read fails but there's still data available.

12 years agouobject: Namespace changes.
Nick Bowler [Fri, 7 Aug 2009 05:22:09 +0000 (01:22 -0400)]
uobject: Namespace changes.

Change uobject to u_object, and export all symbols starting with u_.
The library is starting to include package stuff which will use the
u_pkg prefix.

12 years agomodule: Split out the GTypeModule subclass.
Nick Bowler [Fri, 7 Aug 2009 05:11:11 +0000 (01:11 -0400)]
module: Split out the GTypeModule subclass.

12 years agopack: Fix signed unpacking to not modify the input.
Nick Bowler [Tue, 4 Aug 2009 22:06:57 +0000 (18:06 -0400)]
pack: Fix signed unpacking to not modify the input.

Also change the unpack functions to use pointer to const unsigned char
so that this sort of problem doesn't happen in the future.

12 years agoconfigure: add gthread support to glib.m4.
Nick Bowler [Sat, 1 Aug 2009 20:14:31 +0000 (16:14 -0400)]
configure: add gthread support to glib.m4.

12 years agouobject: Don't expose symbols that don't start with uobject.
Nick Bowler [Sat, 1 Aug 2009 03:32:13 +0000 (23:32 -0400)]
uobject: Don't expose symbols that don't start with uobject.

12 years agouobject: remove pointless private module.h.
Nick Bowler [Sat, 1 Aug 2009 03:25:35 +0000 (23:25 -0400)]
uobject: remove pointless private module.h.

12 years agouobject: Add some descriptions of the loadable/exportable interfaces.
Nick Bowler [Fri, 24 Jul 2009 16:10:57 +0000 (12:10 -0400)]
uobject: Add some descriptions of the loadable/exportable interfaces.

12 years agouobject: More namespace cleanups.
Nick Bowler [Fri, 24 Jul 2009 16:08:38 +0000 (12:08 -0400)]
uobject: More namespace cleanups.

12 years agouobject: Clean up the module loader namespace.
Nick Bowler [Fri, 24 Jul 2009 15:52:11 +0000 (11:52 -0400)]
uobject: Clean up the module loader namespace.

12 years agouobject: Move headers into a separate (installable) directory.
Nick Bowler [Fri, 24 Jul 2009 15:37:16 +0000 (11:37 -0400)]
uobject: Move headers into a separate (installable) directory.

12 years agoAdd all-permissive license to autoconf macros.
Nick Bowler [Mon, 20 Jul 2009 00:13:14 +0000 (20:13 -0400)]
Add all-permissive license to autoconf macros.

12 years agouobject: Split uobject stuff into its own library.
Nick Bowler [Sun, 19 Jul 2009 21:12:12 +0000 (17:12 -0400)]
uobject: Split uobject stuff into its own library.

It is likely that libupkg will be merged into this library soon.

12 years agoconfigure: Implement glib checking macro that actually links a test program.
Nick Bowler [Sun, 19 Jul 2009 21:08:19 +0000 (17:08 -0400)]
configure: Implement glib checking macro that actually links a test program.

12 years agouobject: Take a package/index tuple instead of a upkg_file for deserialize.
Nick Bowler [Fri, 17 Jul 2009 20:10:04 +0000 (16:10 -0400)]
uobject: Take a package/index tuple instead of a upkg_file for deserialize.

12 years agomusic: don't forget to propagate object finalize.
Nick Bowler [Fri, 17 Jul 2009 20:09:24 +0000 (16:09 -0400)]
music: don't forget to propagate object finalize.

12 years agolibupkg: Add signed integer unpacking to fix incorrect signedness issue.
Nick Bowler [Thu, 16 Jul 2009 21:10:22 +0000 (17:10 -0400)]
libupkg: Add signed integer unpacking to fix incorrect signedness issue.

12 years agobuild: Use automake silent rules.
Nick Bowler [Thu, 16 Jul 2009 19:03:17 +0000 (15:03 -0400)]
build: Use automake silent rules.

12 years agoupkg: fix NULL dereference if upkg_export_class fails.
Nick Bowler [Thu, 16 Jul 2009 01:59:18 +0000 (21:59 -0400)]
upkg: fix NULL dereference if upkg_export_class fails.

12 years agoAdd copyright notices.
Nick Bowler [Tue, 14 Jul 2009 23:55:00 +0000 (19:55 -0400)]
Add copyright notices.

12 years agoImplement support for libmodplug in Engine.Music.
Nick Bowler [Tue, 14 Jul 2009 23:41:52 +0000 (19:41 -0400)]
Implement support for libmodplug in Engine.Music.

12 years agouobject: Implement an interface for loading/unloading.
Nick Bowler [Mon, 13 Jul 2009 22:32:19 +0000 (18:32 -0400)]
uobject: Implement an interface for loading/unloading.

This allows, for example, an instance of Engine.Music to load its music
data only when required.  It may be useful to keep around an instance
without allocating gobs of memory to store data that won't be used.

12 years agoupkg: Don't forget to close the opened export.
Nick Bowler [Mon, 13 Jul 2009 02:51:10 +0000 (22:51 -0400)]
upkg: Don't forget to close the opened export.