libxsettings-0.11/0042755000175000017500000000000010031344023011732 5ustar pbpblibxsettings-0.11/Makefile0100644000175000017500000000261610031344023013372 0ustar pbpbPREFIX = /usr/local PACKAGE = libxsettings DEBUG = no CVSBUILD = no VERSION = 0.11 .SUFFIXES: .os LIBXSETTINGS_SO = libXsettings.so.0 XSETTINGS_MEMBERS = xsettings-common PACKAGE_CPPFLAGS += $(STANDARD_CPPFLAGS) PACKAGE_CFLAGS += $(STANDARD_CFLAGS) `pkg-config --cflags x11` PACKAGE_LDFLAGS += $(STANDARD_LDFLAGS) `pkg-config --libs x11` XSETTINGS_OBJS = $(patsubst %,%.os,$(XSETTINGS_MEMBERS)) DEPS = $(patsubst %,%.d,$(MEMBERS) $(XSETTINGS_MEMBERS)) SOURCES = $(patsubst %,%.c,$(MEMBERS) $(XSETTINGS_MEMBERS)) ifeq ($(CVSBUILD),yes) BUILD = ../build else BUILD = build endif .c.os:; $(CC) -o $@ -c $^ $(CFLAGS) $(PACKAGE_CFLAGS) -fPIC all: libXsettings.so libXsettings.so: $(LIBXSETTINGS_SO) ln -sf $^ $@ $(LIBXSETTINGS_SO): $(XSETTINGS_OBJS) $(CC) -o $@ $^ -shared -Wl,-soname -Wl,$(LIBXSETTINGS_SO) -nostartfiles $(LDFLAGS) $(PACKAGE_LDFLAGS) install-program: $(LIBXSETTINGS_SO) install -d $(DESTDIR)$(PREFIX)/lib install -s $(LIBXSETTINGS_SO) $(DESTDIR)$(PREFIX)/lib/$(LIBXSETTINGS_SO) install-devel: install -d $(DESTDIR)$(PREFIX)/include install -m 644 xsettings-common.h $(DESTDIR)$(PREFIX)/include/xsettings-common.h install -d $(DESTDIR)$(PREFIX)/lib ln -sf $(LIBXSETTINGS_SO) $(DESTDIR)$(PREFIX)/lib/libXsettings.so clean: rm -f $(LIBXSETTINGS_SO) libXsettings.so rm -f $(XSETTINGS_OBJS) $(DEPS) include $(BUILD)/Makefile.translation include $(BUILD)/Makefile.dpkg_ipkg -include $(DEPS) libxsettings-0.11/familiar/0042755000175000017500000000000010031342441013520 5ustar pbpblibxsettings-0.11/familiar/control0100644000175000017500000000030510022740204015113 0ustar pbpbPackage: libxsettings0 Section: x11 Priority: optional Source: SOURCE Version: VERSION Architecture: arm Maintainer: Phil Blundell Depends: xlibs Description: Common XSETTINGS code libxsettings-0.11/familiar/postinst0100755000175000017500000000002307552006006015327 0ustar pbpb#!/bin/sh ldconfig libxsettings-0.11/familiar/postrm0100755000175000017500000000002307552006010014763 0ustar pbpb#!/bin/sh ldconfig libxsettings-0.11/po/0042755000175000017500000000000010031342671012357 5ustar pbpblibxsettings-0.11/xsettings-common.c0100644000175000017500000001323110002523654015416 0ustar pbpb/* * Copyright © 2001 Red Hat, Inc. * * Permission to use, copy, modify, distribute, and sell this software and its * documentation for any purpose is hereby granted without fee, provided that * the above copyright notice appear in all copies and that both that * copyright notice and this permission notice appear in supporting * documentation, and that the name of Red Hat not be used in advertising or * publicity pertaining to distribution of the software without specific, * written prior permission. Red Hat makes no representations about the * suitability of this software for any purpose. It is provided "as is" * without express or implied warranty. * * RED HAT DISCLAIMS ALL WARRANTIES WITH REGARD TO THIS SOFTWARE, INCLUDING ALL * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS, IN NO EVENT SHALL RED HAT * BE LIABLE FOR ANY SPECIAL, INDIRECT OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES * WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, WHETHER IN AN ACTION * OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF OR IN * CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE. * * Author: Owen Taylor, Red Hat, Inc. */ #include "string.h" #include "stdlib.h" #include #include /* For CARD32 */ #include "xsettings-common.h" XSettingsSetting * xsettings_setting_copy (XSettingsSetting *setting) { XSettingsSetting *result; size_t str_len; result = malloc (sizeof *result); if (!result) return NULL; str_len = strlen (setting->name); result->name = malloc (str_len + 1); if (!result->name) goto err; memcpy (result->name, setting->name, str_len + 1); result->type = setting->type; switch (setting->type) { case XSETTINGS_TYPE_INT: result->data.v_int = setting->data.v_int; break; case XSETTINGS_TYPE_COLOR: result->data.v_color = setting->data.v_color; break; case XSETTINGS_TYPE_STRING: str_len = strlen (setting->data.v_string); result->data.v_string = malloc (str_len + 1); if (!result->data.v_string) goto err; memcpy (result->data.v_string, setting->data.v_string, str_len + 1); break; } result->last_change_serial = setting->last_change_serial; return result; err: if (result->name) free (result->name); free (result); return NULL; } XSettingsList * xsettings_list_copy (XSettingsList *list) { XSettingsList *new = NULL; XSettingsList *old_iter = list; XSettingsList *new_iter = NULL; while (old_iter) { XSettingsList *new_node; new_node = malloc (sizeof *new_node); if (!new_node) goto error; new_node->setting = xsettings_setting_copy (old_iter->setting); if (!new_node->setting) { free (new_node); goto error; } if (new_iter) new_iter->next = new_node; else new = new_node; new_iter = new_node; old_iter = old_iter->next; } return new; error: xsettings_list_free (new); return NULL; } int xsettings_setting_equal (XSettingsSetting *setting_a, XSettingsSetting *setting_b) { if (setting_a->type != setting_b->type) return 0; if (strcmp (setting_a->name, setting_b->name) != 0) return 0; switch (setting_a->type) { case XSETTINGS_TYPE_INT: return setting_a->data.v_int == setting_b->data.v_int; case XSETTINGS_TYPE_COLOR: return (setting_a->data.v_color.red == setting_b->data.v_color.red && setting_a->data.v_color.green == setting_b->data.v_color.green && setting_a->data.v_color.blue == setting_b->data.v_color.blue && setting_a->data.v_color.alpha == setting_b->data.v_color.alpha); case XSETTINGS_TYPE_STRING: return strcmp (setting_a->data.v_string, setting_b->data.v_string) == 0; } return 0; } void xsettings_setting_free (XSettingsSetting *setting) { if (setting->type == XSETTINGS_TYPE_STRING) free (setting->data.v_string); if (setting->name) free (setting->name); free (setting); } void xsettings_list_free (XSettingsList *list) { while (list) { XSettingsList *next = list->next; xsettings_setting_free (list->setting); free (list); list = next; } } XSettingsResult xsettings_list_insert (XSettingsList **list, XSettingsSetting *setting) { XSettingsList *node; XSettingsList *iter; XSettingsList *last = NULL; node = malloc (sizeof *node); if (!node) return XSETTINGS_NO_MEM; node->setting = setting; iter = *list; while (iter) { int cmp = strcmp (setting->name, iter->setting->name); if (cmp < 0) break; else if (cmp == 0) { free (node); return XSETTINGS_DUPLICATE_ENTRY; } last = iter; iter = iter->next; } if (last) last->next = node; else *list = node; node->next = iter; return XSETTINGS_SUCCESS; } XSettingsResult xsettings_list_delete (XSettingsList **list, const char *name) { XSettingsList *iter; XSettingsList *last = NULL; iter = *list; while (iter) { if (strcmp (name, iter->setting->name) == 0) { if (last) last->next = iter->next; else *list = iter->next; xsettings_setting_free (iter->setting); free (iter); return XSETTINGS_SUCCESS; } last = iter; iter = iter->next; } return XSETTINGS_FAILED; } XSettingsSetting * xsettings_list_lookup (XSettingsList *list, const char *name) { XSettingsList *iter; iter = list; while (iter) { if (strcmp (name, iter->setting->name) == 0) return iter->setting; iter = iter->next; } return NULL; } char xsettings_byte_order (void) { CARD32 myint = 0x01020304; return (*(char *)&myint == 1) ? MSBFirst : LSBFirst; } libxsettings-0.11/xsettings-common.h0100644000175000017500000000617010002523654015427 0ustar pbpb/* * Copyright © 2001 Red Hat, Inc. * * Permission to use, copy, modify, distribute, and sell this software and its * documentation for any purpose is hereby granted without fee, provided that * the above copyright notice appear in all copies and that both that * copyright notice and this permission notice appear in supporting * documentation, and that the name of Red Hat not be used in advertising or * publicity pertaining to distribution of the software without specific, * written prior permission. Red Hat makes no representations about the * suitability of this software for any purpose. It is provided "as is" * without express or implied warranty. * * RED HAT DISCLAIMS ALL WARRANTIES WITH REGARD TO THIS SOFTWARE, INCLUDING ALL * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS, IN NO EVENT SHALL RED HAT * BE LIABLE FOR ANY SPECIAL, INDIRECT OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES * WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, WHETHER IN AN ACTION * OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF OR IN * CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE. * * Author: Owen Taylor, Red Hat, Inc. */ #ifndef XSETTINGS_COMMON_H #define XSETTINGS_COMMON_H #ifdef __cplusplus extern "C" { #endif /* __cplusplus */ typedef struct _XSettingsBuffer XSettingsBuffer; typedef struct _XSettingsColor XSettingsColor; typedef struct _XSettingsList XSettingsList; typedef struct _XSettingsSetting XSettingsSetting; /* Types of settings possible. Enum values correspond to * protocol values. */ typedef enum { XSETTINGS_TYPE_INT = 0, XSETTINGS_TYPE_STRING = 1, XSETTINGS_TYPE_COLOR = 2, XSETTINGS_TYPE_NONE = 0xff } XSettingsType; typedef enum { XSETTINGS_SUCCESS, XSETTINGS_NO_MEM, XSETTINGS_ACCESS, XSETTINGS_FAILED, XSETTINGS_NO_ENTRY, XSETTINGS_DUPLICATE_ENTRY } XSettingsResult; struct _XSettingsBuffer { char byte_order; size_t len; unsigned char *data; unsigned char *pos; }; struct _XSettingsColor { unsigned short red, green, blue, alpha; }; struct _XSettingsList { XSettingsSetting *setting; XSettingsList *next; }; struct _XSettingsSetting { char *name; XSettingsType type; union { int v_int; char *v_string; XSettingsColor v_color; } data; unsigned long last_change_serial; }; XSettingsSetting *xsettings_setting_copy (XSettingsSetting *setting); void xsettings_setting_free (XSettingsSetting *setting); int xsettings_setting_equal (XSettingsSetting *setting_a, XSettingsSetting *setting_b); void xsettings_list_free (XSettingsList *list); XSettingsList *xsettings_list_copy (XSettingsList *list); XSettingsResult xsettings_list_insert (XSettingsList **list, XSettingsSetting *setting); XSettingsSetting *xsettings_list_lookup (XSettingsList *list, const char *name); XSettingsResult xsettings_list_delete (XSettingsList **list, const char *name); char xsettings_byte_order (void); #define XSETTINGS_PAD(n,m) ((n + m - 1) & (~(m-1))) #ifdef __cplusplus } #endif /* __cplusplus */ #endif /* XSETTINGS_COMMON_H */ libxsettings-0.11/build/0042755000175000017500000000000010031344023013031 5ustar pbpblibxsettings-0.11/build/Makefile.dpkg_ipkg0100644000175000017500000001120610031344023016422 0ustar pbpb## Please read the README in this directory to see how to use this ## Makefile snippet # Let's use whatever clean target the specific app provides CONTROL = `if test -e familiar/control1; then echo control1; else echo control; fi` # URL to source tarball SOURCE = ftp://gpe.handhelds.org/gpe/source/$(PACKAGE)-$(VERSION).tar.gz # can change this to e.g. /var/tmp/deb DEB_PATH = ../deb ifeq ($(CVSBUILD),yes) LIBGPEWIDGET_PC = libgpewidget-uninstalled PC_EXTRA=PKG_CONFIG_PATH=../../base/libgpewidget else LIBGPEWIDGET_PC = libgpewidget endif ifeq ($(IN_LIBGPEWIDGET),) GPECFLAGS = $(shell $(PC_EXTRA) pkg-config --cflags $(LIBGPEWIDGET_PC)) GPELIBS = $(shell $(PC_EXTRA) pkg-config --libs $(LIBGPEWIDGET_PC)) endif GTKCFLAGS = $(shell pkg-config --cflags gtk+-2.0) GTKLIBS = $(shell pkg-config --libs gtk+-2.0) STANDARD_CPPFLAGS = -D_GNU_SOURCE -DPACKAGE=\"$(PACKAGE)\" -DPREFIX=\"$(PREFIX)\" -DPACKAGE_LOCALE_DIR=\"$(PREFIX)/share/locale\" STANDARD_CFLAGS = -MD -Wall ifeq ($(DEBUG),yes) CFLAGS += -O2 -g LDFLAGS = -g else CFLAGS += -Os -fomit-frame-pointer endif dist: check-source clean dist-prep rm -rf ../$(PACKAGE)-$(VERSION) mkdir ../$(PACKAGE)-$(VERSION) ( tar cf - --exclude "*/CVS" --exclude CVS --exclude "*~" --exclude "#*#" --exclude "debian" --exclude ".*" --exclude "*.ipk" --exclude "*.ipk.*" --exclude "*.mo" --exclude "*.batch" --exclude "translation-ipkgs.txt" * ) | (cd ../$(PACKAGE)-$(VERSION); tar xf -) ( cd ../$(PACKAGE)-$(VERSION); mkdir build; cp $(BUILD)/Makefile.dpkg_ipkg $(BUILD)/Makefile.translation build/ ; sed 's:^CVSBUILD.*:CVSBUILD = no:' < Makefile > Makefile.new; mv Makefile.new Makefile ) ( cd .. ; tar cf - $(PACKAGE)-$(VERSION) | gzip -9 >$(PACKAGE)-$(VERSION).tar.gz ) rm -rf ../$(PACKAGE)-$(VERSION) $(MAKE) printinfo dist-upload: dist scp ../$(PACKAGE)-$(VERSION).tar.gz $(USER)@handhelds.org:/home/ftp/pub/projects/gpe/source/ dist-prep: ipkg-prep: install-mo: # empty, can be filled in Makefile.translation install: install-program install-mo clean-dist: rm -rf familiar/dist familiar/dist.list clean: clean-dist check-source: @if ! grep -q '^Source:' familiar/$(CONTROL); then echo -e "\nNo Source: field in control file. Aborting.\n"; exit 1; fi ipkg: check-source ipkg-prep clean rm -rf familiar/dist mkdir -p familiar/dist/CONTROL sed 's:VERSION:$(VERSION):;s$$SOURCE$$$(SOURCE)$$' < familiar/$(CONTROL) > familiar/dist/CONTROL/control if test -e familiar/conffiles; then install -m 644 familiar/conffiles familiar/dist/CONTROL; fi if test -e familiar/preinst; then install familiar/preinst familiar/dist/CONTROL; fi if test -e familiar/postinst; then install familiar/postinst familiar/dist/CONTROL; fi if test -e familiar/prerm; then install familiar/prerm familiar/dist/CONTROL; fi if test -e familiar/postrm; then install familiar/postrm familiar/dist/CONTROL; fi $(MAKE) DESTDIR=`pwd`/familiar/dist PREFIX=/usr prefix=/usr DEBUG=no install-program rm -rf familiar/dist.list ipkg-build -o 0 -g 0 familiar/dist | sed 's/^Packaged .*into //; t 1; d; : 1; s:.*/::' >> familiar/dist.list if [ "x$(LINGUAS)" != "x" ]; then make translation-ipkg; tr ' ' '\n' < translation-ipkgs.txt >> familiar/dist.list; fi md5sum `cat familiar/dist.list` > $(PACKAGE)_$(VERSION).batch rm -rf familiar/dist familiar/dist.list $(MAKE) printinfo dpkg: dist mkdir -p $(DEB_PATH) ( olddir=`pwd`; cd $(DEB_PATH); rm -rf $(PACKAGE)-$(VERSION); ln -s $$olddir/../$(PACKAGE)-$(VERSION).tar.gz $(PACKAGE)_$(VERSION).orig.tar.gz ; tar xzf $(PACKAGE)_$(VERSION).orig.tar.gz ) mkdir -p $(DEB_PATH)/$(PACKAGE)-$(VERSION)/debian for i in debian/*; do if test -f $$i; then cp $$i $(DEB_PATH)/$(PACKAGE)-$(VERSION)/debian/; fi; done CVSTAG := $(shell echo $(PACKAGE)-$(VERSION) | tr [a-z.] [A-Z_]) printinfo: @printf '-------------------------------------------------------------------------------\n' @printf "If this becomes a package release, please add a CVS tag.\n" @printf "You can use 'make tag' for that, it will execute\n" @printf " cvs tag %s\n" $(CVSTAG) @printf "Please upload a tarball (created with 'make dist') to\n" @printf " ftp://ftp.handhelds.org/pub/projects/gpe/\n" @printf " (handhelds.org:~ftp/pub/projects/gpe/source)\n" @printf "You can use 'make dist-upload' to do that.\n" @printf "You are currently known as USER %s.\n" $(USER) @printf '-------------------------------------------------------------------------------\n' tag: check-source cvs tag $(CVSTAG) retag: check-source cvs tag -F $(CVSTAG) source: tag dist-upload %.pc: %.pc.in sed 's:PREFIX:$(PREFIX):;s:BUILDDIR:$(shell pwd):;s:VERSION:$(VERSION):' < $< > $@ .c.o:; $(CC) $(CFLAGS) $(CPPFLAGS) $(PACKAGE_CFLAGS) $(PACKAGE_CPPFLAGS) -c $< -o $@ libxsettings-0.11/build/Makefile.translation0100644000175000017500000000711610031344023017026 0ustar pbpb.SUFFIXES: .mo .po .pot .po8 CONTROL = `if test -e familiar/control1; then echo control1; else echo control; fi` # use ipkg-build or ipkg-deb-build IPKG_BUILD := ipkg-build TRANSLATION_SITE := http://www.iro.umontreal.ca/~gnutra/maint ifeq ($(DIR_PO),) DIR_PO := po endif ifeq ($(BINPACKAGE),) BINPACKAGE := $(PACKAGE) endif mo-files = $(patsubst %,$(DIR_PO)/%.mo,$(LINGUAS)) po-files = $(patsubst %,$(DIR_PO)/%.po,$(LINGUAS)) ifeq ($(shell if [ -f $(PACKAGE).desktop.in ]; then echo present; fi;),present) desktop-files += $(PACKAGE).desktop endif ifneq ($(EXTRA_DESKTOPS),) desktop-files += $(patsubst %.desktop.in,%.desktop,$(EXTRA_DESKTOPS)) endif all-mo: $(mo-files) all-desktop: $(desktop-files) install-mo: all-mo if [ "x$(LINGUAS)" != "x" ]; then \ for i in $(LINGUAS); do mkdir -p $(DESTDIR)$(PREFIX)/share/locale/$$i/LC_MESSAGES; install -m 644 $(DIR_PO)/$$i.mo $(DESTDIR)$(PREFIX)/share/locale/$$i/LC_MESSAGES/$(PACKAGE).mo; done \ fi; .po8.mo:; msgfmt -o $@ $< .po.po8:; CTYPE=`grep "^\"Content-Type:" $< | sed 's/^.*charset=//;s/\\\\.*//'`; sed "s/\(Content-Type: .*=\)$$CTYPE/\1UTF-8/" < $< | iconv -f $${CTYPE} -t UTF-8 >$@ update-po: $(po-files) extract-po dist-prep: update-po freshen-po # empty ifeq ($(CVSBUILD),yes) ipkg-prep: freshen-po # empty endif extract-po: mkdir -p $(DIR_PO) ( SOURCES="$(SOURCES)"; for DESK in $(PACKAGE).desktop.in $(EXTRA_DESKTOPS); do if [ -f $$DESK ]; then intltool-extract --type=gettext/ini $$DESK; SOURCES="$$SOURCES $${DESK}.h"; fi; done; if [ "x$$SOURCES" != "x" ]; then xgettext --add-comments=TRANSLATORS: -k_ -kN_ -o $(DIR_PO)/$(PACKAGE).pot.new $$SOURCES; fi ) if [ -f $(DIR_PO)/$(PACKAGE).pot.new ]; then if cmp -s $(DIR_PO)/$(PACKAGE).pot.new $(PACKAGE).pot; then rm $(DIR_PO)/$(PACKAGE).pot.new; else mv $(DIR_PO)/$(PACKAGE).pot.new $(DIR_PO)/$(PACKAGE).pot; fi; fi clean: clean-po clean-dist-translation clean-po: rm -rf $(DIR_PO)/*.mo for i in $(desktop-files); do if [ -f $$i.in ]; then rm -f $$i; rm -f $$i.in.h; fi; done %.desktop: %.desktop.in $(patsubst %,$(DIR_PO)/%.po,$(LINGUAS)) intltool-merge -u -d $(DIR_PO) $< $@ freshen-po: rm -rf tmp-po mkdir tmp-po cd tmp-po; for LANG in $(LINGUAS); do wget $(TRANSLATION_SITE)/$(PACKAGE)/$$LANG.po; done for LANG in $(LINGUAS); do if [ ! -f $(DIR_PO)/$$LANG.po ] || ! cmp -s $(DIR_PO)/$$LANG.po tmp-po/$$LANG.po ; then mv tmp-po/$$LANG.po $(DIR_PO)/$$LANG.po; echo "Updated $$LANG translation"; fi; done rm -rf tmp-po # ------------------------------------------------------------------------ MAINTAINER = $(shell grep 'Maintainer: ' familiar/$(CONTROL) | cut -d ' ' -f 2-) ifndef BUILD BUILD = ../build endif transdist := familiar/dist-translation templates := $(BUILD)/familiar ipkglist := translation-ipkgs.txt clean-dist-translation: rm -rf $(transdist) $(ipkglist) real-translation-package: all-mo rm -rf $(transdist) $(ipkglist) for LINGUA in $(LINGUAS); do \ i=$$(echo $$LINGUA | tr '[A-Z_]' '[a-z+]'); \ mkdir -p $(transdist)/$$i/CONTROL; \ mkdir -p $(transdist)/$$i$(PREFIX)/share/locale/$$LINGUA/LC_MESSAGES; \ install -m 644 po/$$LINGUA.mo $(transdist)/$$i$(PREFIX)/share/locale/$$LINGUA/LC_MESSAGES/$(PACKAGE).mo; \ sed -e "s//$(MAINTAINER)/;s//$(BINPACKAGE)/;s//$(VERSION)/;s//$$i/;s!!$(SOURCE)!" $(templates)/control.translation > $(transdist)/$$i/CONTROL/control; \ install $(templates)/postinst.translation $(transdist)/$$i/CONTROL/postinst; \ $(IPKG_BUILD) -g 0 -o 0 $(transdist)/$$i | sed 's/^Packaged .*into //; t 1; d; : 1; s:.*/::' >> $(ipkglist); \ done translation-ipkg: make PREFIX=/usr real-translation-package