Protocol requests These functions make protocol requests corresponding to their names. Connection Setup FSServer * FSOpenServer( const char *server); Creates a connection to the font server specified in the 'server' string. int FSCloseServer( FSServer *svr); Closes the connection to the font server. Font Manipulation Font FSOpenBitmapFont( FSServer *svr, fsBitmapFormat hint, fsBitmapFormatMask fmask, char *name, Font *originalid); Opens the font that matches the given name (which may have '*' and '?' as wildcards). The hint contains format information that will probably be used in subsequent QueryXBitmaps() requests. The fmask tells which bits in the mask are valid. If originalid is non-zero, then the server already has the font opened under that ID. int FSCloseFont( FSServer *svr, Font fid); Closes the font. char ** FSListFonts( FSServer *svr, const char *pattern, int maxNames, int *actualCount); Returns the full names of the fonts matching pattern. Up to maxNames names will be returned. The actual value number be placed in actualCount. The return value should be freed with FSFreeFontNames. int FSFreeFontNames( char **list); Frees the list of font names returned by FSListFonts. char ** FSListFontsWithXInfo( FSServer *svr, const char *pattern, int maxNames, int *actualCount, fsFontHeader ***info, fsPropInfo ***pprops, fsPropOffset ***offsets, unsigned char ***prop_data); Returns the full names of the fonts matching pattern. Up to maxNames names will be returned. The actual value number be placed in actualCount, and each font's header and property information will also be returned. int FSQueryXInfo( FSServer *svr, Font fid, fsFontHeader *info, fsPropInfo *props, fsPropOffset **offsets, unsigned char **prop_data); Returns the font's header information. int FSQueryXExtents8( FSServer *svr, Font fid, Bool range_type, unsigned char *str, unsigned long str_len, fsCharInfo **extents); int FSQueryXExtents16( FSServer *svr, Font fid, Bool range_type, fsChar2b *str, unsigned long str_len, fsCharInfo **extents); Returns the extents of the given characters. If 'range_type' is set, the 'str' is considered a range, otherwise its considered a list of characters. A NULL str when range_type is set means that all the character extents will be returned. int FSQueryXBitmaps8( FSServer *svr, Font fid, fsBitmapFormat format, Bool range_type, unsigned char *str, unsined long str_len, unsigned long **offsets, unsigned char **glyph_data); int FSQueryXBitmaps16( FSServer *svr, Font fid, fsBitmapFormat format, Bool range_type, fsChar2b *str, unsined long str_len, unsigned long **offsets, unsigned char **glyph_data); Returns the font's bitmaps in the requested format. The other arguments are used as in QueryExtents above. Extensions char ** FSListExtensions( FSServer *svr, int *next); Lists any extension built into the font server. Bool FSQueryExtension( FSServer *svr, char *name, int *major_opcode, int *first_event, int *first_error); Returns information on the specified extension. int FSFreeExtensionList( char **list); Frees the list returned by FSListExtensions(). Helper functions -- these don't map to protocol requests, but can make writing a FS client simpler. Synchronization FSSync( FSServer *svr, Bool discard); Flushes the output queue and waits for a reply from the server, which will flush the server's output queue. typedef int (*FSSyncHandler)(FSServer *); FSSyncHandler FSSynchronize( FSServer *svr, int onoff) Controls whether the server does every request in synchronous form. FSSyncHandler FSSetAfterFunction( FSServer *svr, FSSyncHandler func); Sets the function that will be called after every request. This is usually NULL or FSSync(). int FSFlush( FSServer *svr); Flushes any queued requests to the font server. Error Handling typedef int (* FSErrorHandler)(FSServer *, FSErrorEvent *); FSErrorHandler FSSetErrorHandler( FSErrorHandler handler); Changes the error handler to 'handler'. A NULL value will reset it to use the default. typedef int (* FSIOErrorHandler)(FSServer *); FSIOErrorHandler FSSetIOErrorHandler( FSIOErrorHandler handler); Changes the I/O error handler to 'handler'. A NULL value will reset it to use the default. Miscellaneous long FSMaxRequestSize( FSServer *svr); Returns the largest request size (in 4 byte quantities) that the server can handle. const char * FSServerName( const char *server); Returns the name that FSlib would use to connect to the server. Translates a NULL into the value of $FONT_SERVER.