diff --git a/Xext/bigreq.c b/Xext/bigreq.c index 8059641..91b70f0 100644 --- a/Xext/bigreq.c +++ b/Xext/bigreq.c @@ -50,7 +50,7 @@ static void BigReqResetProc(ExtensionEntry * /* extEntry */ static DISPATCH_PROC(ProcBigReqDispatch); void -BigReqExtensionInit(INITARGS) +BigReqExtensionInit(void) { #if 0 ExtensionEntry *extEntry; diff --git a/Xext/dpms.c b/Xext/dpms.c index b75f482..2705eb5 100644 --- a/Xext/dpms.c +++ b/Xext/dpms.c @@ -91,7 +91,7 @@ static DISPATCH_PROC(SProcDPMSCapable); static void DPMSResetProc(ExtensionEntry * extEntry); void -DPMSExtensionInit(INITARGS) +DPMSExtensionInit(void) { #if 0 ExtensionEntry *extEntry; diff --git a/Xext/saver.c b/Xext/saver.c index 0ba9928..399fb01 100644 --- a/Xext/saver.c +++ b/Xext/saver.c @@ -239,7 +239,7 @@ static int ScreenPrivateIndex; ****************/ void -ScreenSaverExtensionInit(INITARGS) +ScreenSaverExtensionInit(void) { ExtensionEntry *extEntry; diff --git a/Xext/shm.c b/Xext/shm.c index 957fcf3..4e7b2c4 100644 --- a/Xext/shm.c +++ b/Xext/shm.c @@ -208,7 +208,7 @@ CheckForShmSyscall() #endif void -ShmExtensionInit(INITARGS) +ShmExtensionInit(void) { ExtensionEntry *extEntry; diff --git a/Xext/sync.c b/Xext/sync.c index 460cc5e..f8b6b6e 100644 --- a/Xext/sync.c +++ b/Xext/sync.c @@ -2296,7 +2296,7 @@ ExtensionEntry *extEntry; * ** Initialise the extension. */ void -SyncExtensionInit(INITARGS) +SyncExtensionInit(void) { ExtensionEntry *extEntry; diff --git a/Xext/xcmisc.c b/Xext/xcmisc.c index d8bfc81..2f11ab5 100644 --- a/Xext/xcmisc.c +++ b/Xext/xcmisc.c @@ -64,7 +64,7 @@ static DISPATCH_PROC(SProcXCMiscGetXIDList); static DISPATCH_PROC(SProcXCMiscGetXIDRange); void -XCMiscExtensionInit(INITARGS) +XCMiscExtensionInit(void) { #if 0 ExtensionEntry *extEntry; diff --git a/Xext/xres.c b/Xext/xres.c index 39ba82e..12c12a4 100644 --- a/Xext/xres.c +++ b/Xext/xres.c @@ -373,7 +373,7 @@ SProcResDispatch(ClientPtr client) } void -ResExtensionInit(INITARGS) +ResExtensionInit(void) { (void) AddExtension(XRES_NAME, 0, 0, ProcResDispatch, SProcResDispatch, diff --git a/Xext/xtest.c b/Xext/xtest.c index e0f2bdc..1856560 100644 --- a/Xext/xtest.c +++ b/Xext/xtest.c @@ -80,7 +80,7 @@ static DISPATCH_PROC(SProcXTestGetVersion); static DISPATCH_PROC(SProcXTestGrabControl); void -XTestExtensionInit(INITARGS) +XTestExtensionInit(void) { #if 0 ExtensionEntry *extEntry; diff --git a/configure.ac b/configure.ac index a30d074..47fbb96 100644 --- a/configure.ac +++ b/configure.ac @@ -321,7 +321,7 @@ XEXTXORG_LIB='$(top_builddir)/Xext/libXextbuiltin.la' dnl Core modules for most extensions, et al. REQUIRED_MODULES="[randrproto >= 1.2] renderproto [fixesproto >= 4.0] [damageproto >= 1.1] xcmiscproto xextproto xproto xtrans xf86bigfontproto [scrnsaverproto >= 1.1] bigreqsproto resourceproto fontsproto inputproto [kbproto >= 1.0.3]" -REQUIRED_LIBS="xfont fontenc" +REQUIRED_LIBS="xfont2 fontenc" AM_CONDITIONAL(SCREENSAVER, [test "x$SCREENSAVER" = xyes]) if test "x$SCREENSAVER" = xyes; then diff --git a/dbe/dbe.c b/dbe/dbe.c index 2e945be..7eae3da 100644 --- a/dbe/dbe.c +++ b/dbe/dbe.c @@ -52,7 +52,7 @@ /* GLOBALS */ /* Per-screen initialization functions [init'ed by DbeRegisterFunction()] */ -static Bool (*DbeInitFunct[MAXSCREENS]) (); /* pScreen, pDbeScreenPriv */ +static Bool (*DbeInitFunct[MAXSCREENS]) (ScreenPtr, DbeScreenPrivPtr); /* These are static globals copied to DBE's screen private for use by DDX */ static int dbeScreenPrivIndex; @@ -116,7 +116,7 @@ DbeValidateBuffer(WindowPtr pWin, XID drawID, Bool dstbuf) *****************************************************************************/ void -DbeRegisterFunction(ScreenPtr pScreen, Bool (*funct) ( /* ??? */ )) +DbeRegisterFunction(ScreenPtr pScreen, Bool (*funct) (ScreenPtr, DbeScreenPrivPtr)) { int i; diff --git a/dix/dixfonts.c b/dix/dixfonts.c index 667ff21..a86aab8 100644 --- a/dix/dixfonts.c +++ b/dix/dixfonts.c @@ -92,7 +92,7 @@ static int size_slept_fpes = 0; static FontPathElementPtr *slept_fpes = (FontPathElementPtr *) 0; -static FontPatternCachePtr patternCache; +static xfont2_pattern_cache_ptr patternCache; _X_EXPORT int FontToXError(err) @@ -1853,17 +1853,150 @@ DeleteClientFontStuff(ClientPtr client) } } +static int +xfont2_client_auth_generation(ClientPtr client) +{ + return 0; +} + +static Bool +xfont2_client_signal(ClientPtr client) +{ + return ClientSignal(client); +} + +static void +xfont2_verrorf(const char *f, va_list ap) +{ + VErrorF(f, ap); +} + +static int +xfont2_init_fs_handlers(FontPathElementPtr fpe, FontBlockHandlerProcPtr block_handler) +{ + return init_fs_handlers(fpe, (BlockHandlerProcPtr) block_handler); +} + +static int +xfont2_register_fpe_funcs(const xfont2_fpe_funcs_rec *funcs) +{ + return RegisterFPEFunctions(funcs->name_check, + funcs->init_fpe, + funcs->free_fpe, + funcs->reset_fpe, + funcs->open_font, + funcs->close_font, + funcs->list_fonts, + funcs->start_list_fonts_with_info, + funcs->list_next_font_with_info, + (WakeupFpeFunc) funcs->wakeup_fpe, + funcs->client_died, + funcs->load_glyphs, + funcs->start_list_fonts_and_aliases, + funcs->list_next_font_or_alias, + funcs->set_path_hook); +} + +static void +xfont2_remove_fs_handlers(FontPathElementPtr fpe, FontBlockHandlerProcPtr block_handler, Bool all) +{ + remove_fs_handlers(fpe, (BlockHandlerProcPtr) block_handler, all); +} + +static void * +xfont2_get_server_client(void) +{ + return serverClient; +} + +static Atom +xfont2_make_atom(const char *string, unsigned len, int makeit) +{ + return MakeAtom((char *) string, len, (Bool) makeit); +} + +static const char * +xfont2_name_for_atom(Atom atom) +{ + return NameForAtom(atom); +} + +static unsigned long +xfont2_get_server_generation(void) +{ + return serverGeneration; +} + +static int +xfont2_add_fs_fd(int fd, FontFdHandlerProcPtr handler, void *data) +{ + AddEnabledDevice(fd); + return 0; +} + +static void +xfont2_remove_fs_fd(int fd) +{ + RemoveEnabledDevice(fd); +} + +static void +xfont2_adjust_fs_wait_for_delay(void *wt, unsigned long newdelay) +{ + AdjustWaitForDelay(wt, newdelay); +} + +static FontPtr +xfont2_find_old_font(FSID id) +{ + return find_old_font((XID) id); +} + +void +GetGlyphs(FontPtr font, unsigned long count, unsigned char *chars, + FontEncoding fontEncoding, unsigned long *glyphcount, + CharInfoPtr * glyphs) +{ + (*font->get_glyphs) (font, count, chars, fontEncoding, glyphcount, glyphs); +} + +void +ResetFontPrivateIndex(void) +{ +} + +static const xfont2_client_funcs_rec xfont2_client_funcs = { + .version = XFONT2_CLIENT_FUNCS_VERSION, + .client_auth_generation = xfont2_client_auth_generation, + .client_signal = xfont2_client_signal, + .delete_font_client_id = DeleteFontClientID, + .verrorf = xfont2_verrorf, + .find_old_font = xfont2_find_old_font, + .get_client_resolutions = GetClientResolutions, + .get_default_point_size = GetDefaultPointSize, + .get_new_font_client_id = GetNewFontClientID, + .get_time_in_millis = GetTimeInMillis, + .init_fs_handlers = xfont2_init_fs_handlers, + .register_fpe_funcs = xfont2_register_fpe_funcs, + .remove_fs_handlers = xfont2_remove_fs_handlers, + .get_server_client = xfont2_get_server_client, + .set_font_authorizations = set_font_authorizations, + .store_font_client_font = StoreFontClientFont, + .make_atom = xfont2_make_atom, + .valid_atom = ValidAtom, + .name_for_atom = xfont2_name_for_atom, + .get_server_generation = xfont2_get_server_generation, + .add_fs_fd = xfont2_add_fs_fd, + .remove_fs_fd = xfont2_remove_fs_fd, + .adjust_fs_wait_for_delay = xfont2_adjust_fs_wait_for_delay, +}; + void InitFonts() { patternCache = MakeFontPatternCache(); - { -#ifdef KDRIVESERVER - BuiltinRegisterFpeFunctions(); -#endif - FontFileRegisterFpeFunctions(); - } + xfont2_init(&xfont2_client_funcs); } _X_EXPORT XFONT_LTO diff --git a/include/dixfont.h b/include/dixfont.h index 2ce672f..8ad8e30 100644 --- a/include/dixfont.h +++ b/include/dixfont.h @@ -28,6 +28,23 @@ SOFTWARE. #include #include "closure.h" #include +#include + +#define QueryGlyphExtents xfont2_query_glyph_extents +#define QueryTextExtents xfont2_query_text_extents +#define ParseGlyphCachingMode xfont2_parse_glyph_caching_mode +#define InitGlyphCaching xfont2_init_glyph_caching +#define MakeFontPatternCache xfont2_make_font_pattern_cache +#define FreeFontPatternCache xfont2_free_font_pattern_cache +#define EmptyFontPatternCache xfont2_empty_font_pattern_cache +#define CacheFontPattern xfont2_cache_font_pattern +#define FindCachedFontPattern xfont2_find_cached_font_pattern +#define RemoveCachedFontPattern xfont2_remove_cached_font_pattern +#define MakeFontNamesRecord xfont2_make_font_names_record +#define FreeFontNames xfont2_free_font_names +#define AddFontNamesName xfont2_add_font_names_name +#define AllocateFontPrivateIndex xfont2_allocate_font_private_index +#define _FontSetNewPrivate xfont2_font_set_private #define NullDIXFontProp ((DIXFontPropPtr)0) @@ -131,20 +148,4 @@ void GetGlyphs(FontPtr /*font*/, unsigned long * /*glyphcount*/, CharInfoPtr * /*glyphs*/); -void QueryGlyphExtents(FontPtr /*pFont*/, - CharInfoPtr * /*charinfo*/, - unsigned long /*count*/, - ExtentInfoPtr /*info*/); - -Bool QueryTextExtents(FontPtr /*pFont*/, - unsigned long /*count*/, - unsigned char * /*chars*/, - ExtentInfoPtr /*info*/); - -Bool ParseGlyphCachingMode(char * /*str*/); - -void InitGlyphCaching(void); - -void SetGlyphCachingMode(int /*newmode*/); - #endif /* DIXFONT_H */ diff --git a/mi/miinitext.c b/mi/miinitext.c index 5edb683..83ed4c0 100644 --- a/mi/miinitext.c +++ b/mi/miinitext.c @@ -85,8 +85,8 @@ extern Bool noXFree86BigfontExtension; #endif extern Bool noXFixesExtension; -#define INITARGS void -typedef void (*InitExtension)(INITARGS); +#define void void +typedef void (*InitExtension)(void); #define _XSHM_SERVER_ #include @@ -100,30 +100,30 @@ typedef void (*InitExtension)(INITARGS); #endif /* FIXME: this whole block of externs should be from the appropriate headers */ -extern void ShmExtensionInit(INITARGS); -extern void XTestExtensionInit(INITARGS); -extern void BigReqExtensionInit(INITARGS); +extern void ShmExtensionInit(void); +extern void XTestExtensionInit(void); +extern void BigReqExtensionInit(void); #ifdef SCREENSAVER -extern void ScreenSaverExtensionInit (INITARGS); +extern void ScreenSaverExtensionInit (void); #endif -extern void SyncExtensionInit(INITARGS); -extern void XCMiscExtensionInit(INITARGS); +extern void SyncExtensionInit(void); +extern void XCMiscExtensionInit(void); #ifdef DBE -extern void DbeExtensionInit(INITARGS); +extern void DbeExtensionInit(void); #endif #ifdef XF86BIGFONT -extern void XFree86BigfontExtensionInit(INITARGS); +extern void XFree86BigfontExtensionInit(void); #endif #ifdef DPMSExtension -extern void DPMSExtensionInit(INITARGS); +extern void DPMSExtensionInit(void); #endif -extern void RenderExtensionInit(INITARGS); -extern void RRExtensionInit(INITARGS); +extern void RenderExtensionInit(void); +extern void RRExtensionInit(void); #ifdef RES -extern void ResExtensionInit(INITARGS); +extern void ResExtensionInit(void); #endif -extern void XFixesExtensionInit(INITARGS); -extern void DamageExtensionInit(INITARGS); +extern void XFixesExtensionInit(void); +extern void DamageExtensionInit(void); /* The following is only a small first step towards run-time * configurable extensions.