Hello community, here is the log from the commit of package xfs for openSUSE:Factory checked in at 2017-11-30 12:45:14 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ Comparing /work/SRC/openSUSE:Factory/xfs (Old) and /work/SRC/openSUSE:Factory/.xfs.new (New) ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Package is "xfs" Thu Nov 30 12:45:14 2017 rev:13 rq:546298 version:1.2.0 Changes: -------- --- /work/SRC/openSUSE:Factory/xfs/xfs.changes 2017-05-31 12:20:26.174521888 +0200 +++ /work/SRC/openSUSE:Factory/.xfs.new/xfs.changes 2017-11-30 12:45:16.206183321 +0100 @@ -1,0 +2,9 @@ +Tue Nov 28 19:30:37 UTC 2017 - sndir...@suse.com + +- xfs 1.2.0 + * This release ports the X Font Server to libXfont 2.x. + Distributions may now drop libXfont 1.x at their convenience. + This conversion has been lightly tested but some issues may + remain; please report any new issues to xorg-de...@lists.x.org. + +------------------------------------------------------------------- Old: ---- xfs-1.1.4.tar.bz2 New: ---- xfs-1.2.0.tar.bz2 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ Other differences: ------------------ ++++++ xfs.spec ++++++ --- /var/tmp/diff_new_pack.OwuqJi/_old 2017-11-30 12:45:16.990154821 +0100 +++ /var/tmp/diff_new_pack.OwuqJi/_new 2017-11-30 12:45:16.994154676 +0100 @@ -17,7 +17,7 @@ Name: xfs -Version: 1.1.4 +Version: 1.2.0 Release: 0 # FIXME: update xorg-x11-fonts-devel BuildRequires to font-util after renaming is done Summary: X font server @@ -35,7 +35,7 @@ BuildRequires: pkg-config # FIXME: change to font-util >= 1.1 when xorg-x11-fonts-devel will be renamed BuildRequires: xorg-x11-fonts-devel -BuildRequires: pkgconfig(xfont) +BuildRequires: pkgconfig(xfont2) BuildRequires: pkgconfig(xorg-macros) >= 1.10 BuildRequires: pkgconfig(xproto) >= 7.0.17 BuildRequires: pkgconfig(xtrans) ++++++ xfs-1.1.4.tar.bz2 -> xfs-1.2.0.tar.bz2 ++++++ ++++ 11300 lines of diff (skipped) ++++ retrying with extended exclude list diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' --exclude Makefile.in --exclude configure --exclude config.guess --exclude '*.pot' --exclude mkinstalldirs --exclude aclocal.m4 --exclude config.sub --exclude depcomp --exclude install-sh --exclude ltmain.sh old/xfs-1.1.4/ChangeLog new/xfs-1.2.0/ChangeLog --- old/xfs-1.1.4/ChangeLog 2014-08-22 07:36:15.000000000 +0200 +++ new/xfs-1.2.0/ChangeLog 2017-11-28 18:19:20.000000000 +0100 @@ -1,3 +1,153 @@ +commit c0ff087474db78b91241c31c00a501782a3da31b +Author: Adam Jackson <a...@redhat.com> +Date: Tue Nov 28 12:16:13 2017 -0500 + + xfs 1.2.0 + + Signed-off-by: Adam Jackson <a...@redhat.com> + +commit fedc90e8e3f6c36204de5562bfb726270064a4f1 +Author: Adam Jackson <a...@redhat.com> +Date: Mon Apr 24 17:35:14 2017 -0400 + + xfs: port to libXfont2 + + This appears to work, in the sense that xfsinfo and fslsfonts print the + same thing before and after. + + Signed-off-by: Adam Jackson <a...@redhat.com> + +commit 47eceb44ca00569b76e4304ee3b36c8f87d46a3e +Author: Adam Jackson <a...@redhat.com> +Date: Mon Apr 24 15:33:39 2017 -0400 + + xtrans: Simplify an error path when started from inetd + + The old code is redundant, since our caller looks like: + + OldListen = _FontTransGetInetdListenInfo (inetdListener); + if (OldListen == NULL) { + FatalError("failed to initialize OldListen to inetd socket: %s\n", + strerror(errno)); + } + + Signed-off-by: Adam Jackson <a...@redhat.com> + +commit fcdfd5053c21441265645eb381bb9120f972735c +Author: Mihail Konev <k....@ya.ru> +Date: Thu Jan 26 14:00:21 2017 +1000 + + autogen: add default patch prefix + + Signed-off-by: Mihail Konev <k....@ya.ru> + +commit 22c4117e8c7e08f15e42be3120eff58cb04fdd0d +Author: Emil Velikov <emil.l.veli...@gmail.com> +Date: Mon Mar 9 12:00:52 2015 +0000 + + autogen.sh: use quoted string variables + + Place quotes around the $srcdir, $ORIGDIR and $0 variables to prevent + fall-outs, when they contain space. + + Signed-off-by: Emil Velikov <emil.l.veli...@gmail.com> + Reviewed-by: Peter Hutterer <peter.hutte...@who-t.net> + Signed-off-by: Peter Hutterer <peter.hutte...@who-t.net> + +commit 89c3df532ae4bd9d5924a445264a9df3a97f6bf6 +Author: Peter Hutterer <peter.hutte...@who-t.net> +Date: Tue Jan 24 10:32:07 2017 +1000 + + autogen.sh: use exec instead of waiting for configure to finish + + Syncs the invocation of configure with the one from the server. + + Signed-off-by: Peter Hutterer <peter.hutte...@who-t.net> + Reviewed-by: Emil Velikov <emil.veli...@collabora.com> + +commit 9e64669db3b19ce11b40e084cf2d366bfd52826f +Author: Thomas Klausner <w...@netbsd.org> +Date: Thu Jul 23 13:55:18 2015 +0200 + + Include config.h first, and add comment about Xpoll.h. + + (To avoid having this header moved lower.) + + Signed-off-by: Thomas Klausner <w...@netbsd.org> + Reviewed-by: Emil Velikov <emil.l.veli...@gmail.com> + +commit 75be718a55376d39b0e517da33ef7a7557ac8f20 +Author: Thomas Klausner <w...@netbsd.org> +Date: Sun Jul 19 09:55:55 2015 +0200 + + Ignore .dirstamp files. + + Signed-off-by: Thomas Klausner <w...@netbsd.org> + Reviewed-by: Alan Coopersmith <alan.coopersm...@oracle.com> + +commit 1508df2fa02daff7a5cd58ce5d64e42b44ff4065 +Author: Matthew Green <m...@netbsd.org> +Date: Sun Jul 19 09:54:59 2015 +0200 + + FD_SETSIZE fixes. + + Move X11/Xpoll.h include earlier than sys/select.h to avoid missing + out on setting FD_SETSIZE early enough. + + Signed-off-by: Thomas Klausner <w...@netbsd.org> + Reviewed-by: Alan Coopersmith <alan.coopersm...@oracle.com> + +commit 4fdc960c33724f859be74a630e0d668a74f6637d +Author: Alan Coopersmith <alan.coopersm...@oracle.com> +Date: Mon Jun 8 23:20:06 2015 -0700 + + Fix memory leaks when not using alloca + + Reported by Oracle Parfait 1.5.1: + + Error: Memory leak (CWE 401) + Memory leak of pointer client_auth allocated with FSalloc((prefix->num_auths * 24)) + at line 256 of difs/dispatch.c in function 'ProcEstablishConnection'. + client_auth allocated at line 243 with FSalloc((prefix->num_auths * 24)). + client_auth leaks when (((Atom)ad) - ((Atom)(prefix + 8))) > ((stuff->length << 2) - 4) at line 252. + malloc called at line 372 of os/utils.c in function 'FSalloc' + at line 276 of difs/dispatch.c in function 'ProcEstablishConnection'. + client_auth allocated at line 243 with FSalloc((prefix->num_auths * 24)). + client_auth leaks when (i + 1) >= ((fsConnClientPrefix*)client->requestBuffer)[1].num_auths at line 251. + malloc called at line 372 of os/utils.c in function 'FSalloc' + + Error: Memory leak (CWE 401) + Memory leak of pointer acp allocated with FSalloc((stuff->num_auths * 24)) + at line 604 of difs/dispatch.c in function 'ProcCreateAC'. + acp allocated at line 590 with FSalloc((stuff->num_auths * 24)). + acp leaks when ((((Atom)ad) - ((Atom)client->requestBuffer)) + 8) > ((stuff->length << 2) - 4) at line 599. + malloc called at line 372 of os/utils.c in function 'FSalloc' + at line 622 of difs/dispatch.c in function 'ProcCreateAC'. + acp allocated at line 590 with FSalloc((stuff->num_auths * 24)). + acp leaks when (i + 1) >= ((fsCreateACReq*)client->requestBuffer)->num_auths at line 597. + malloc called at line 372 of os/utils.c in function 'FSalloc' + + Signed-off-by: Alan Coopersmith <alan.coopersm...@oracle.com> + +commit 3d9bc5a3a8dd36188b0c09d536dcc3c0a8339c31 +Author: Alan Coopersmith <alan.coopersm...@oracle.com> +Date: Sat Aug 23 13:00:24 2014 -0700 + + Add const to port variable passed to TRANS(ReopenCOTSServer) + + Before this patch, gcc always warns: + os/xfstrans.c: In function ‘_FontTransGetInetdListenInfo’: + os/xfstrans.c:38:18: warning: initialization discards ‘const’ qualifier from pointer target type [enabled by default] + char *port = "0"; + ^ + + After this patch, with prior versons of libxtrans, gcc will warn about + passing a const to TRANS(ReopenCOTSServer) where non-const is expected. + + With both this patch & the libxtrans const patches, there are no warnings. + + Signed-off-by: Alan Coopersmith <alan.coopersm...@oracle.com> + commit 4bc3e1f01864f09ce87b8eba9b1970ea3715375c Author: Alan Coopersmith <alan.coopersm...@oracle.com> Date: Thu Aug 21 22:34:59 2014 -0700 diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' --exclude Makefile.in --exclude configure --exclude config.guess --exclude '*.pot' --exclude mkinstalldirs --exclude aclocal.m4 --exclude config.sub --exclude depcomp --exclude install-sh --exclude ltmain.sh old/xfs-1.1.4/compile new/xfs-1.2.0/compile --- old/xfs-1.1.4/compile 2014-08-22 07:35:15.000000000 +0200 +++ new/xfs-1.2.0/compile 2017-11-28 18:19:17.000000000 +0100 @@ -1,9 +1,9 @@ #! /bin/sh # Wrapper for compilers which do not understand '-c -o'. -scriptversion=2012-10-14.11; # UTC +scriptversion=2016-01-11.22; # UTC -# Copyright (C) 1999-2013 Free Software Foundation, Inc. +# Copyright (C) 1999-2017 Free Software Foundation, Inc. # Written by Tom Tromey <tro...@cygnus.com>. # # This program is free software; you can redistribute it and/or modify @@ -255,7 +255,8 @@ echo "compile $scriptversion" exit $? ;; - cl | *[/\\]cl | cl.exe | *[/\\]cl.exe ) + cl | *[/\\]cl | cl.exe | *[/\\]cl.exe | \ + icl | *[/\\]icl | icl.exe | *[/\\]icl.exe ) func_cl_wrapper "$@" # Doesn't return... ;; esac @@ -342,6 +343,6 @@ # eval: (add-hook 'write-file-hooks 'time-stamp) # time-stamp-start: "scriptversion=" # time-stamp-format: "%:y-%02m-%02d.%02H" -# time-stamp-time-zone: "UTC" +# time-stamp-time-zone: "UTC0" # time-stamp-end: "; # UTC" # End: diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' --exclude Makefile.in --exclude configure --exclude config.guess --exclude '*.pot' --exclude mkinstalldirs --exclude aclocal.m4 --exclude config.sub --exclude depcomp --exclude install-sh --exclude ltmain.sh old/xfs-1.1.4/configure.ac new/xfs-1.2.0/configure.ac --- old/xfs-1.1.4/configure.ac 2014-08-22 07:35:08.000000000 +0200 +++ new/xfs-1.2.0/configure.ac 2017-11-28 18:19:13.000000000 +0100 @@ -23,7 +23,7 @@ # Initialize Autoconf AC_PREREQ([2.60]) AC_INIT([xfs], - [1.1.4], + [1.2.0], [https://bugs.freedesktop.org/enter_bug.cgi?product=xorg], [xfs]) # Set common system defines for POSIX extensions, such as _GNU_SOURCE @@ -129,8 +129,8 @@ # Checks for pkg-config packages # - xproto >= 7.0.17 required for _X_NORETURN in <X11/Xfuncproto.h> -# - xfont >= 1.4.5 required for matching MakeAtom prototypes in fontmisc.h -PKG_CHECK_MODULES(XFS, xproto >= 7.0.17 xfont >= 1.4.5 xtrans) +# - xfont >= 2.0.1 for new server API +PKG_CHECK_MODULES(XFS, xproto >= 7.0.17 xfont2 >= 2.0.1 xtrans) case "$host_os" in cygwin*|mingw*) diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' --exclude Makefile.in --exclude configure --exclude config.guess --exclude '*.pot' --exclude mkinstalldirs --exclude aclocal.m4 --exclude config.sub --exclude depcomp --exclude install-sh --exclude ltmain.sh old/xfs-1.1.4/difs/atom.c new/xfs-1.2.0/difs/atom.c --- old/xfs-1.1.4/difs/atom.c 2014-08-22 07:35:08.000000000 +0200 +++ new/xfs-1.2.0/difs/atom.c 2017-11-28 18:19:13.000000000 +0100 @@ -148,7 +148,7 @@ return (atom != None) && (atom <= lastAtom); } -char * +const char * NameForAtom(Atom atom) { NodePtr node; diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' --exclude Makefile.in --exclude configure --exclude config.guess --exclude '*.pot' --exclude mkinstalldirs --exclude aclocal.m4 --exclude config.sub --exclude depcomp --exclude install-sh --exclude ltmain.sh old/xfs-1.1.4/difs/charinfo.c new/xfs-1.2.0/difs/charinfo.c --- old/xfs-1.1.4/difs/charinfo.c 2014-08-22 07:35:08.000000000 +0200 +++ new/xfs-1.2.0/difs/charinfo.c 2017-11-28 18:19:13.000000000 +0100 @@ -54,11 +54,6 @@ #include <X11/Xos.h> #include "misc.h" #include <X11/fonts/fontstruct.h> -#include <X11/fonts/fontutil.h> - -/* Don't conflict with macros/prototypes in difsutils.h */ -#define _HAVE_XALLOC_DECLS -#include <X11/fonts/fontmisc.h> #include "clientstr.h" #define FSMD_H @@ -249,6 +244,71 @@ return Successful; } +static int +CheckFSFormat(fsBitmapFormat format, + fsBitmapFormatMask fmask, + int *bit_order, + int *byte_order, + int *scan, + int *glyph, + int *image) +{ + /* convert format to what the low levels want */ + if (fmask & BitmapFormatMaskBit) { + *bit_order = format & BitmapFormatBitOrderMask; + *bit_order = (*bit_order == BitmapFormatBitOrderMSB) + ? MSBFirst : LSBFirst; + } + if (fmask & BitmapFormatMaskByte) { + *byte_order = format & BitmapFormatByteOrderMask; + *byte_order = (*byte_order == BitmapFormatByteOrderMSB) + ? MSBFirst : LSBFirst; + } + if (fmask & BitmapFormatMaskScanLineUnit) { + *scan = format & BitmapFormatScanlineUnitMask; + /* convert byte paddings into byte counts */ + switch (*scan) { + case BitmapFormatScanlineUnit8: + *scan = 1; + break; + case BitmapFormatScanlineUnit16: + *scan = 2; + break; + case BitmapFormatScanlineUnit32: + *scan = 4; + break; + default: + return BadFontFormat; + } + } + if (fmask & BitmapFormatMaskScanLinePad) { + *glyph = format & BitmapFormatScanlinePadMask; + /* convert byte paddings into byte counts */ + switch (*glyph) { + case BitmapFormatScanlinePad8: + *glyph = 1; + break; + case BitmapFormatScanlinePad16: + *glyph = 2; + break; + case BitmapFormatScanlinePad32: + *glyph = 4; + break; + default: + return BadFontFormat; + } + } + if (fmask & BitmapFormatMaskImageRectangle) { + *image = format & BitmapFormatImageRectMask; + + if (*image != BitmapFormatImageRectMin && + *image != BitmapFormatImageRectMaxWidth && + *image != BitmapFormatImageRectMax) + return BadFontFormat; + } + return Successful; +} + static int packGlyphs ( ClientPtr client, diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' --exclude Makefile.in --exclude configure --exclude config.guess --exclude '*.pot' --exclude mkinstalldirs --exclude aclocal.m4 --exclude config.sub --exclude depcomp --exclude install-sh --exclude ltmain.sh old/xfs-1.1.4/difs/difsutils.c new/xfs-1.2.0/difs/difsutils.c --- old/xfs-1.1.4/difs/difsutils.c 2014-08-22 07:35:08.000000000 +0200 +++ new/xfs-1.2.0/difs/difsutils.c 2017-11-28 18:19:13.000000000 +0100 @@ -227,7 +227,7 @@ /* block & wakeup handlers */ typedef struct _BlockHandler { - BlockHandlerProcPtr BlockHandler; + FontBlockHandlerProcPtr BlockHandler; DifsWakeupFunc WakeupHandler; pointer blockData; Bool deleted; @@ -252,8 +252,7 @@ ++inHandler; for (i = 0; i < numHandlers; i++) - (*handlers[i].BlockHandler) (handlers[i].blockData, - pTimeout, pReadmask); + (*handlers[i].BlockHandler) (handlers[i].blockData); if (handlerDeleted) { for (i = 0; i < numHandlers;) if (handlers[i].deleted) { @@ -297,7 +296,7 @@ Bool RegisterBlockAndWakeupHandlers( - BlockHandlerProcPtr blockHandler, + FontBlockHandlerProcPtr blockHandler, DifsWakeupFunc wakeupHandler, pointer blockData) { @@ -320,7 +319,7 @@ void RemoveBlockAndWakeupHandlers( - BlockHandlerProcPtr blockHandler, + FontBlockHandlerProcPtr blockHandler, DifsWakeupFunc wakeupHandler, pointer blockData) { @@ -527,8 +526,9 @@ } int -set_font_authorizations(char **authorizations, int *authlen, ClientPtr client) +set_font_authorizations(char **authorizations, int *authlen, void *_client) { + ClientPtr client = _client; #define AUTH1_NAME "hp-hostname-1" #define AUTH2_NAME "hp-printername-1" static char result[1024]; diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' --exclude Makefile.in --exclude configure --exclude config.guess --exclude '*.pot' --exclude mkinstalldirs --exclude aclocal.m4 --exclude config.sub --exclude depcomp --exclude install-sh --exclude ltmain.sh old/xfs-1.1.4/difs/dispatch.c new/xfs-1.2.0/difs/dispatch.c --- old/xfs-1.1.4/difs/dispatch.c 2014-08-22 07:35:08.000000000 +0200 +++ new/xfs-1.2.0/difs/dispatch.c 2017-11-28 18:19:13.000000000 +0100 @@ -253,6 +253,7 @@ int lengthword = stuff->length; SendErrToClient(client, FSBadLength, (pointer)&lengthword); + DEALLOCATE_LOCAL(client_auth); return (FSBadLength); } /* copy carefully in case wire data is not aligned */ @@ -273,6 +274,7 @@ int lengthword = stuff->length; SendErrToClient(client, FSBadLength, (pointer)&lengthword); + DEALLOCATE_LOCAL(client_auth); return (FSBadLength); } @@ -292,6 +294,7 @@ authp = (AuthContextPtr) fsalloc(sizeof(AuthContextRec)); if (!authp) { SendErrToClient(client, FSBadAlloc, (pointer) 0); + DEALLOCATE_LOCAL(client_auth); return FSBadAlloc; } authp->authname = @@ -303,6 +306,7 @@ fsfree((char *) authp->authdata); fsfree((char *) authp); SendErrToClient(client, FSBadAlloc, (pointer) 0); + DEALLOCATE_LOCAL(client_auth); return FSBadAlloc; } memmove( authp->authname, client_auth[auth_index - 1].name, @@ -318,6 +322,7 @@ fsfree((char *) authp->authdata); fsfree((char *) authp); SendErrToClient(client, FSBadAlloc, (pointer) 0); + DEALLOCATE_LOCAL(client_auth); return FSBadAlloc; } client->auth = client->default_auth = authp; @@ -601,6 +606,7 @@ int lengthword = stuff->length; SendErrToClient(client, FSBadLength, (pointer)&lengthword); + DEALLOCATE_LOCAL(acp); return (FSBadLength); } /* copy carefully in case data is not aligned */ @@ -619,6 +625,8 @@ int lengthword = stuff->length; SendErrToClient(client, FSBadLength, (pointer)&lengthword); + if (acp) + DEALLOCATE_LOCAL(acp); return (FSBadLength); } diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' --exclude Makefile.in --exclude configure --exclude config.guess --exclude '*.pot' --exclude mkinstalldirs --exclude aclocal.m4 --exclude config.sub --exclude depcomp --exclude install-sh --exclude ltmain.sh old/xfs-1.1.4/difs/fontinfo.c new/xfs-1.2.0/difs/fontinfo.c --- old/xfs-1.1.4/difs/fontinfo.c 2014-08-22 07:35:08.000000000 +0200 +++ new/xfs-1.2.0/difs/fontinfo.c 2017-11-28 18:19:13.000000000 +0100 @@ -58,6 +58,7 @@ #include "closestr.h" #include "globals.h" #include "difs.h" +#include "misc.h" #include "dispatch.h" #include <swapreq.h> #include <swaprep.h> @@ -82,7 +83,7 @@ { int i; int data_len, cur_off; - char *str; + const char *str; pointer ptr, off_ptr, string_base; fsPropOffset local_offset; diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' --exclude Makefile.in --exclude configure --exclude config.guess --exclude '*.pot' --exclude mkinstalldirs --exclude aclocal.m4 --exclude config.sub --exclude depcomp --exclude install-sh --exclude ltmain.sh old/xfs-1.1.4/difs/fonts.c new/xfs-1.2.0/difs/fonts.c --- old/xfs-1.1.4/difs/fonts.c 2014-08-22 07:35:08.000000000 +0200 +++ new/xfs-1.2.0/difs/fonts.c 2017-11-28 18:19:13.000000000 +0100 @@ -63,10 +63,11 @@ #include "difs.h" #include "dispatch.h" #include "swaprep.h" +#include <X11/fonts/libxfont2.h> static FontPathElementPtr *font_path_elements = (FontPathElementPtr *) 0; static int num_fpes = 0; -static FPEFunctions *fpe_functions = (FPEFunctions *) 0; +static xfont2_fpe_funcs_rec *fpe_functions; static int num_fpe_types = 0; static int num_slept_fpes = 0; @@ -179,7 +180,7 @@ /* wake up any fpe's that may be waiting for information */ for (i = 0; i < num_slept_fpes; i++) { fpe = slept_fpes[i]; - (void) (*fpe_functions[fpe->type].wakeup_fpe) (fpe, lastSelectMask); + (void) (*fpe_functions[fpe->type].wakeup_fpe) (fpe); } } @@ -342,7 +343,8 @@ cfp->clientindex = cPtr->client->index; if (fontPatternCache && pfont != cPtr->non_cachable_font) - CacheFontPattern(fontPatternCache, cPtr->orig_name, cPtr->orig_len, pfont); + xfont2_cache_font_pattern(fontPatternCache, cPtr->orig_name, + cPtr->orig_len, pfont); /* either pull out the other id or make the array */ if (pfont->refcnt != 0) { @@ -459,7 +461,8 @@ */ if (fontPatternCache && - (pfont = FindCachedFontPattern(fontPatternCache, name, namelen)) && + (pfont = xfont2_find_cached_font_pattern(fontPatternCache, name, + namelen)) && pfont->info.cachable) { ClientFontPtr cfp; @@ -550,7 +553,7 @@ assert(pfont); if (--pfont->refcnt == 0) { if (fontPatternCache) - RemoveCachedFontPattern(fontPatternCache, pfont); + xfont2_remove_cached_font_pattern(fontPatternCache, pfont); fpe = pfont->fpe; free_svrPrivate(pfont->svrPrivate); (*fpe_functions[fpe->type].close_font) (fpe, pfont); @@ -726,7 +729,7 @@ font_path_elements = fplist; num_fpes = npaths; if (fontPatternCache) - EmptyFontPatternCache(fontPatternCache); + xfont2_empty_font_pattern_cache(fontPatternCache); return FSSuccess; bail: *bad = validpaths; @@ -877,11 +880,11 @@ if (cPtr->haveSaved) { if (cPtr->savedName) - (void)AddFontNamesName(cPtr->names, cPtr->savedName, - cPtr->savedNameLen); + xfont2_add_font_names_name(cPtr->names, cPtr->savedName, + cPtr->savedNameLen); } else - (void)AddFontNamesName(cPtr->names, name, namelen); + xfont2_add_font_names_name(cPtr->names, name, namelen); } /* @@ -1032,7 +1035,7 @@ FreeFPE(cPtr->fpe_list[i]); fsfree(cPtr->fpe_list); if (cPtr->savedName) fsfree(cPtr->savedName); - FreeFontNames(names); + xfont2_free_font_names(names); fsfree(cPtr); return TRUE; } @@ -1066,7 +1069,7 @@ fsfree(c); goto badAlloc; } - c->names = MakeFontNamesRecord(maxNames < 100 ? maxNames : 100); + c->names = xfont2_make_font_names_record(maxNames < 100 ? maxNames : 100); if (!c->names) { fsfree(c->fpe_list); @@ -1403,52 +1406,17 @@ int -RegisterFPEFunctions( - NameCheckFunc name_func, - InitFpeFunc init_func, - FreeFpeFunc free_func, - ResetFpeFunc reset_func, - OpenFontFunc open_func, - CloseFontFunc close_func, - ListFontsFunc list_func, - StartLfwiFunc start_lfwi_func, - NextLfwiFunc next_lfwi_func, - WakeupFpeFunc wakeup_func, - ClientDiedFunc client_died, - LoadGlyphsFunc load_glyphs, - StartLaFunc start_list_alias_func, - NextLaFunc next_list_alias_func, - SetPathFunc set_path_func) +register_fpe_funcs(const xfont2_fpe_funcs_rec *funcs) { - FPEFunctions *new; + xfont2_fpe_funcs_rec *new; /* grow the list */ - new = (FPEFunctions *) fsrealloc(fpe_functions, - (num_fpe_types + 1) * sizeof(FPEFunctions)); + new = fsrealloc(fpe_functions, (num_fpe_types + 1) * sizeof(*new)); if (!new) return -1; fpe_functions = new; - fpe_functions[num_fpe_types].name_check = name_func; - fpe_functions[num_fpe_types].open_font = open_func; - fpe_functions[num_fpe_types].close_font = close_func; - fpe_functions[num_fpe_types].wakeup_fpe = wakeup_func; - fpe_functions[num_fpe_types].list_fonts = list_func; - fpe_functions[num_fpe_types].start_list_fonts_with_info = - start_lfwi_func; - fpe_functions[num_fpe_types].list_next_font_with_info = - next_lfwi_func; - fpe_functions[num_fpe_types].init_fpe = init_func; - fpe_functions[num_fpe_types].free_fpe = free_func; - fpe_functions[num_fpe_types].reset_fpe = reset_func; - - fpe_functions[num_fpe_types].client_died = client_died; - fpe_functions[num_fpe_types].load_glyphs = load_glyphs; - fpe_functions[num_fpe_types].start_list_fonts_and_aliases = - start_list_alias_func; - fpe_functions[num_fpe_types].list_next_font_or_alias = - next_list_alias_func; - fpe_functions[num_fpe_types].set_path_hook = set_path_func; + memcpy(&fpe_functions[num_fpe_types], funcs, sizeof(*funcs)); return num_fpe_types++; } @@ -1486,9 +1454,9 @@ static unsigned int last_server_gen; int -init_fs_handlers( +xfs_init_fs_handlers( FontPathElementPtr fpe, - BlockHandlerProcPtr block_handler) + FontBlockHandlerProcPtr block_handler) { /* if server has reset, make sure the b&w handlers are reinstalled */ if (last_server_gen < serverGeneration) { @@ -1511,9 +1479,9 @@ } void -remove_fs_handlers( +xfs_remove_fs_handlers( FontPathElementPtr fpe, - BlockHandlerProcPtr block_handler, + FontBlockHandlerProcPtr block_handler, Bool all) { if (all) { diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' --exclude Makefile.in --exclude configure --exclude config.guess --exclude '*.pot' --exclude mkinstalldirs --exclude aclocal.m4 --exclude config.sub --exclude depcomp --exclude install-sh --exclude ltmain.sh old/xfs-1.1.4/difs/initfonts.c new/xfs-1.2.0/difs/initfonts.c --- old/xfs-1.1.4/difs/initfonts.c 2014-08-22 07:35:08.000000000 +0200 +++ new/xfs-1.2.0/difs/initfonts.c 2017-11-28 18:19:13.000000000 +0100 @@ -49,20 +49,55 @@ #include "config.h" +#include <stddef.h> #include <X11/fonts/font.h> +#include <X11/fonts/fontstruct.h> +#include <X11/fonts/libxfont2.h> #include "difs.h" #include "globals.h" -FontPatternCachePtr fontPatternCache; +xfont2_pattern_cache_ptr fontPatternCache; + +static unsigned long +GetServerGeneration(void) +{ + return serverGeneration; +} + +static const xfont2_client_funcs_rec xfs_client_funcs = { + .version = XFONT2_CLIENT_FUNCS_VERSION, + .client_auth_generation = client_auth_generation, + .client_signal = ClientSignal, + .delete_font_client_id = DeleteFontClientID, + .verrorf = NULL, + .find_old_font = 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 = xfs_init_fs_handlers, + .register_fpe_funcs = register_fpe_funcs, + .remove_fs_handlers = xfs_remove_fs_handlers, + .get_server_client = NULL, + .set_font_authorizations = set_font_authorizations, + .store_font_client_font = StoreFontClientFont, + .make_atom = MakeAtom, + .valid_atom = ValidAtom, + .name_for_atom = NameForAtom, + .get_server_generation = GetServerGeneration, + .add_fs_fd = NULL, + .remove_fs_fd = NULL, + .adjust_fs_wait_for_delay = NULL, +}; void InitFonts(void) { if (fontPatternCache) - FreeFontPatternCache(fontPatternCache); - fontPatternCache = MakeFontPatternCache(); + xfont2_free_font_pattern_cache(fontPatternCache); + fontPatternCache = xfont2_make_font_pattern_cache(); - ResetFontPrivateIndex(); + // ResetFontPrivateIndex(); - register_fpe_functions(); + xfont2_init(&xfs_client_funcs); } diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' --exclude Makefile.in --exclude configure --exclude config.guess --exclude '*.pot' --exclude mkinstalldirs --exclude aclocal.m4 --exclude config.sub --exclude depcomp --exclude install-sh --exclude ltmain.sh old/xfs-1.1.4/include/difs.h new/xfs-1.2.0/include/difs.h --- old/xfs-1.1.4/include/difs.h 2014-08-22 07:35:08.000000000 +0200 +++ new/xfs-1.2.0/include/difs.h 2017-11-28 18:19:13.000000000 +0100 @@ -29,7 +29,6 @@ #include "difsfn.h" #include "globals.h" #include <X11/fonts/fontstruct.h> -#include <X11/fonts/fontmisc.h> typedef int (*InitialFunc)(ClientPtr); typedef int (*ProcFunc)(ClientPtr); @@ -65,6 +64,13 @@ extern int LoadGlyphRanges ( ClientPtr client, FontPtr pfont, Bool range_flag, int num_ranges, int item_size, fsChar2b *data ); extern FontPtr find_old_font ( FSID id ); extern void DeleteClientFontStuff ( ClientPtr client ); +extern int xfs_init_fs_handlers(FontPathElementPtr fpe, + FontBlockHandlerProcPtr block_handler); + +extern void xfs_remove_fs_handlers(FontPathElementPtr fpe, + FontBlockHandlerProcPtr block_handler, + Bool all); +extern int register_fpe_funcs(const xfont2_fpe_funcs_rec *funcs); /* difs/fontinfo.c */ extern int convert_props ( FontInfoPtr pinfo, fsPropInfo **props ); diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' --exclude Makefile.in --exclude configure --exclude config.guess --exclude '*.pot' --exclude mkinstalldirs --exclude aclocal.m4 --exclude config.sub --exclude depcomp --exclude install-sh --exclude ltmain.sh old/xfs-1.1.4/include/difsutils.h new/xfs-1.2.0/include/difsutils.h --- old/xfs-1.1.4/include/difsutils.h 2014-08-22 07:35:08.000000000 +0200 +++ new/xfs-1.2.0/include/difsutils.h 2017-11-28 18:19:13.000000000 +0100 @@ -30,7 +30,7 @@ #include <auth.h> #include <X11/fonts/font.h> #include <X11/fonts/fontstruct.h> -#include <X11/fonts/fontmisc.h> +#include <X11/fonts/libxfont2.h> typedef void (*DifsWakeupFunc)(pointer data, int result, unsigned long * pReadmask); typedef Bool (*DifsWorkFunc) (ClientPtr, pointer); @@ -39,7 +39,7 @@ extern Bool ClientIsAsleep (ClientPtr client); extern Bool ClientSleep (ClientPtr client, Bool (*function) (ClientPtr, pointer), pointer data); extern Bool QueueWorkProc (DifsWorkFunc function, ClientPtr client, pointer data); -extern Bool RegisterBlockAndWakeupHandlers (BlockHandlerProcPtr blockHandler, DifsWakeupFunc wakeupHandler, pointer blockData); +extern Bool RegisterBlockAndWakeupHandlers (FontBlockHandlerProcPtr blockHandler, DifsWakeupFunc wakeupHandler, pointer blockData); #if 0 extern FontResolutionPtr GetClientResolutions (int *num); #endif @@ -50,7 +50,7 @@ #if 0 extern int client_auth_generation (ClientPtr client); #endif -extern int set_font_authorizations (char **authorizations, int *authlen, ClientPtr client); +extern int set_font_authorizations (char **authorizations, int *authlen, void *_client); extern int strncmpnocase (const char *first, const char *second, int n); extern pointer Xalloc (unsigned long m); extern pointer Xrealloc (pointer n, unsigned long m); @@ -59,7 +59,7 @@ extern void InitBlockAndWakeupHandlers (void); extern void NoopDDA (void); extern void ProcessWorkQueue (void); -extern void RemoveBlockAndWakeupHandlers (BlockHandlerProcPtr blockHandler, DifsWakeupFunc wakeupHandler, pointer blockData); +extern void RemoveBlockAndWakeupHandlers (FontBlockHandlerProcPtr blockHandler, DifsWakeupFunc wakeupHandler, pointer blockData); extern void SetDefaultPointSize (int ps); extern void WakeupHandler (int result, unsigned long * pReadmask); extern void Xfree (unsigned long *n); diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' --exclude Makefile.in --exclude configure --exclude config.guess --exclude '*.pot' --exclude mkinstalldirs --exclude aclocal.m4 --exclude config.sub --exclude depcomp --exclude install-sh --exclude ltmain.sh old/xfs-1.1.4/include/globals.h new/xfs-1.2.0/include/globals.h --- old/xfs-1.1.4/include/globals.h 2014-08-22 07:35:08.000000000 +0200 +++ new/xfs-1.2.0/include/globals.h 2017-11-28 18:19:13.000000000 +0100 @@ -50,7 +50,7 @@ #include <X11/fonts/FSproto.h> /* for fsResolution */ #include <X11/Xtrans/Xtrans.h> /* XtransConnInfo */ -#include <X11/fonts/font.h> /* FontPatternCachePtr */ +#include <X11/fonts/libxfont2.h> /* xfont2_pattern_cache_ptr */ #include <X11/Xpoll.h> /* select & fd_set */ #include "client.h" /* WorkQueuePtr */ #include "misc.h" /* OldListenRec */ @@ -84,7 +84,7 @@ extern int ConnectionTranslation[]; -extern FontPatternCachePtr fontPatternCache; +extern xfont2_pattern_cache_ptr fontPatternCache; extern long LastReapTime; extern Bool drone_server; diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' --exclude Makefile.in --exclude configure --exclude config.guess --exclude '*.pot' --exclude mkinstalldirs --exclude aclocal.m4 --exclude config.sub --exclude depcomp --exclude install-sh --exclude ltmain.sh old/xfs-1.1.4/include/misc.h new/xfs-1.2.0/include/misc.h --- old/xfs-1.1.4/include/misc.h 2014-08-22 07:35:08.000000000 +0200 +++ new/xfs-1.2.0/include/misc.h 2017-11-28 18:19:13.000000000 +0100 @@ -111,11 +111,9 @@ ((char *) &(dst))[1] = ((char *) &(src))[0]; -#if 0 -extern void NoopDDA(void); -extern char *NameForAtom(Atom atom); -#endif - +extern int ValidAtom(Atom atom); +extern const char *NameForAtom(Atom atom); +extern Atom MakeAtom(const char *string, unsigned int len, Bool makeit); #define fsCat(x,y) x##_##y @@ -175,4 +173,8 @@ /* os/xfstrans.c */ extern OldListenRec *_FontTransGetInetdListenInfo (int fd); +extern void BitOrderInvert(unsigned char *buf, int nbytes); +extern void TwoByteSwap(unsigned char *buf, int nbytes); +extern void FourByteSwap(unsigned char *buf, int nbytes); + #endif /* _MISC_H_ */ diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' --exclude Makefile.in --exclude configure --exclude config.guess --exclude '*.pot' --exclude mkinstalldirs --exclude aclocal.m4 --exclude config.sub --exclude depcomp --exclude install-sh --exclude ltmain.sh old/xfs-1.1.4/include/os.h new/xfs-1.2.0/include/os.h --- old/xfs-1.1.4/include/os.h 2014-08-22 07:35:08.000000000 +0200 +++ new/xfs-1.2.0/include/os.h 2017-11-28 18:19:13.000000000 +0100 @@ -130,7 +130,7 @@ extern void GiveUp (int n); extern void ServerCacheFlush (int n); extern void ServerReconfig (int n); -extern long GetTimeInMillis (void); +extern unsigned int GetTimeInMillis (void); extern pointer FSalloc(unsigned long); extern pointer FScalloc (unsigned long amount); extern pointer FSrealloc(pointer, unsigned long); diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' --exclude Makefile.in --exclude configure --exclude config.guess --exclude '*.pot' --exclude mkinstalldirs --exclude aclocal.m4 --exclude config.sub --exclude depcomp --exclude install-sh --exclude ltmain.sh old/xfs-1.1.4/missing new/xfs-1.2.0/missing --- old/xfs-1.1.4/missing 2014-08-22 07:35:15.000000000 +0200 +++ new/xfs-1.2.0/missing 2017-11-28 18:19:17.000000000 +0100 @@ -1,9 +1,9 @@ #! /bin/sh # Common wrapper for a few potentially missing GNU programs. -scriptversion=2013-10-28.13; # UTC +scriptversion=2016-01-11.22; # UTC -# Copyright (C) 1996-2013 Free Software Foundation, Inc. +# Copyright (C) 1996-2017 Free Software Foundation, Inc. # Originally written by Fran,cois Pinard <pin...@iro.umontreal.ca>, 1996. # This program is free software; you can redistribute it and/or modify @@ -210,6 +210,6 @@ # eval: (add-hook 'write-file-hooks 'time-stamp) # time-stamp-start: "scriptversion=" # time-stamp-format: "%:y-%02m-%02d.%02H" -# time-stamp-time-zone: "UTC" +# time-stamp-time-zone: "UTC0" # time-stamp-end: "; # UTC" # End: diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' --exclude Makefile.in --exclude configure --exclude config.guess --exclude '*.pot' --exclude mkinstalldirs --exclude aclocal.m4 --exclude config.sub --exclude depcomp --exclude install-sh --exclude ltmain.sh old/xfs-1.1.4/os/config.c new/xfs-1.2.0/os/config.c --- old/xfs-1.1.4/os/config.c 2014-08-22 07:35:08.000000000 +0200 +++ new/xfs-1.2.0/os/config.c 2017-11-28 18:19:13.000000000 +0100 @@ -58,9 +58,8 @@ #include "globals.h" #include "access.h" #include "difsutils.h" -#include <X11/fonts/fontutil.h> #include "difs.h" -#include <X11/fonts/fontconf.h> +#include <X11/fonts/libxfont2.h> /* libXfont/src/bitmap/snfstr.h */ extern void SnfSetFormat(int bit, int byte, int glyph, int scan); @@ -589,7 +588,7 @@ t = *val; *val = '\0'; if (!strcmp(parm->parm_name, "deferglyphs")) { - ParseGlyphCachingMode(start); + xfont2_parse_glyph_caching_mode(start); } *val = t; return val; diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' --exclude Makefile.in --exclude configure --exclude config.guess --exclude '*.pot' --exclude mkinstalldirs --exclude aclocal.m4 --exclude config.sub --exclude depcomp --exclude install-sh --exclude ltmain.sh old/xfs-1.1.4/os/connection.c new/xfs-1.2.0/os/connection.c --- old/xfs-1.1.4/os/connection.c 2014-08-22 07:35:08.000000000 +0200 +++ new/xfs-1.2.0/os/connection.c 2017-11-28 18:19:13.000000000 +0100 @@ -69,6 +69,8 @@ #include "config.h" +/* include Xpoll.h early for possible FD_SETSIZE re-definition */ +#include "X11/Xpoll.h" #include <stdlib.h> #include <X11/Xtrans/Xtrans.h> #include <stdlib.h> @@ -84,7 +86,6 @@ #include <X11/fonts/FS.h> #include <X11/fonts/FSproto.h> #include "clientstr.h" -#include "X11/Xpoll.h" #include "osdep.h" #include "globals.h" #include "osstruct.h" diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' --exclude Makefile.in --exclude configure --exclude config.guess --exclude '*.pot' --exclude mkinstalldirs --exclude aclocal.m4 --exclude config.sub --exclude depcomp --exclude install-sh --exclude ltmain.sh old/xfs-1.1.4/os/io.c new/xfs-1.2.0/os/io.c --- old/xfs-1.1.4/os/io.c 2014-08-22 07:35:08.000000000 +0200 +++ new/xfs-1.2.0/os/io.c 2017-11-28 18:19:13.000000000 +0100 @@ -48,6 +48,9 @@ #include "config.h" +/* include Xpoll.h early for possible FD_SETSIZE re-definition */ +#include "X11/Xpoll.h" + #include <X11/Xtrans/Xtrans.h> #include <stdio.h> #include <errno.h> @@ -57,7 +60,6 @@ #include <X11/fonts/FSproto.h> #include "clientstr.h" -#include "X11/Xpoll.h" #include "osdep.h" #include "globals.h" #include "dispatch.h" diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' --exclude Makefile.in --exclude configure --exclude config.guess --exclude '*.pot' --exclude mkinstalldirs --exclude aclocal.m4 --exclude config.sub --exclude depcomp --exclude install-sh --exclude ltmain.sh old/xfs-1.1.4/os/utils.c new/xfs-1.2.0/os/utils.c --- old/xfs-1.1.4/os/utils.c 2014-08-22 07:35:08.000000000 +0200 +++ new/xfs-1.2.0/os/utils.c 2017-11-28 18:19:13.000000000 +0100 @@ -178,7 +178,7 @@ errno = olderrno; } -long +unsigned int GetTimeInMillis(void) { struct timeval tp; @@ -551,3 +551,86 @@ } return 0; } + +static const unsigned char _reverse_byte[0x100] = { + 0x00, 0x80, 0x40, 0xc0, 0x20, 0xa0, 0x60, 0xe0, + 0x10, 0x90, 0x50, 0xd0, 0x30, 0xb0, 0x70, 0xf0, + 0x08, 0x88, 0x48, 0xc8, 0x28, 0xa8, 0x68, 0xe8, + 0x18, 0x98, 0x58, 0xd8, 0x38, 0xb8, 0x78, 0xf8, + 0x04, 0x84, 0x44, 0xc4, 0x24, 0xa4, 0x64, 0xe4, + 0x14, 0x94, 0x54, 0xd4, 0x34, 0xb4, 0x74, 0xf4, + 0x0c, 0x8c, 0x4c, 0xcc, 0x2c, 0xac, 0x6c, 0xec, + 0x1c, 0x9c, 0x5c, 0xdc, 0x3c, 0xbc, 0x7c, 0xfc, + 0x02, 0x82, 0x42, 0xc2, 0x22, 0xa2, 0x62, 0xe2, + 0x12, 0x92, 0x52, 0xd2, 0x32, 0xb2, 0x72, 0xf2, + 0x0a, 0x8a, 0x4a, 0xca, 0x2a, 0xaa, 0x6a, 0xea, + 0x1a, 0x9a, 0x5a, 0xda, 0x3a, 0xba, 0x7a, 0xfa, + 0x06, 0x86, 0x46, 0xc6, 0x26, 0xa6, 0x66, 0xe6, + 0x16, 0x96, 0x56, 0xd6, 0x36, 0xb6, 0x76, 0xf6, + 0x0e, 0x8e, 0x4e, 0xce, 0x2e, 0xae, 0x6e, 0xee, + 0x1e, 0x9e, 0x5e, 0xde, 0x3e, 0xbe, 0x7e, 0xfe, + 0x01, 0x81, 0x41, 0xc1, 0x21, 0xa1, 0x61, 0xe1, + 0x11, 0x91, 0x51, 0xd1, 0x31, 0xb1, 0x71, 0xf1, + 0x09, 0x89, 0x49, 0xc9, 0x29, 0xa9, 0x69, 0xe9, + 0x19, 0x99, 0x59, 0xd9, 0x39, 0xb9, 0x79, 0xf9, + 0x05, 0x85, 0x45, 0xc5, 0x25, 0xa5, 0x65, 0xe5, + 0x15, 0x95, 0x55, 0xd5, 0x35, 0xb5, 0x75, 0xf5, + 0x0d, 0x8d, 0x4d, 0xcd, 0x2d, 0xad, 0x6d, 0xed, + 0x1d, 0x9d, 0x5d, 0xdd, 0x3d, 0xbd, 0x7d, 0xfd, + 0x03, 0x83, 0x43, 0xc3, 0x23, 0xa3, 0x63, 0xe3, + 0x13, 0x93, 0x53, 0xd3, 0x33, 0xb3, 0x73, 0xf3, + 0x0b, 0x8b, 0x4b, 0xcb, 0x2b, 0xab, 0x6b, 0xeb, + 0x1b, 0x9b, 0x5b, 0xdb, 0x3b, 0xbb, 0x7b, 0xfb, + 0x07, 0x87, 0x47, 0xc7, 0x27, 0xa7, 0x67, 0xe7, + 0x17, 0x97, 0x57, 0xd7, 0x37, 0xb7, 0x77, 0xf7, + 0x0f, 0x8f, 0x4f, 0xcf, 0x2f, 0xaf, 0x6f, 0xef, + 0x1f, 0x9f, 0x5f, 0xdf, 0x3f, 0xbf, 0x7f, 0xff +}; + +/* + * Invert bit order within each BYTE of an array. + */ +void +BitOrderInvert(unsigned char *buf, int nbytes) +{ + const unsigned char *rev = _reverse_byte; + + for (; --nbytes >= 0; buf++) + *buf = rev[*buf]; +} + +/* + * Invert byte order within each 16-bits of an array. + */ +void +TwoByteSwap(unsigned char *buf, int nbytes) +{ + unsigned char c; + + for (; nbytes > 0; nbytes -= 2, buf += 2) + { + c = buf[0]; + buf[0] = buf[1]; + buf[1] = c; + } +} + +/* + * Invert byte order within each 32-bits of an array. + */ +void +FourByteSwap(unsigned char *buf, int nbytes) +{ + unsigned char c; + + for (; nbytes > 0; nbytes -= 4, buf += 4) + { + c = buf[0]; + buf[0] = buf[3]; + buf[3] = c; + c = buf[1]; + buf[1] = buf[2]; + buf[2] = c; + } +} + diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' --exclude Makefile.in --exclude configure --exclude config.guess --exclude '*.pot' --exclude mkinstalldirs --exclude aclocal.m4 --exclude config.sub --exclude depcomp --exclude install-sh --exclude ltmain.sh old/xfs-1.1.4/os/xfstrans.c new/xfs-1.2.0/os/xfstrans.c --- old/xfs-1.1.4/os/xfstrans.c 2014-08-22 07:35:08.000000000 +0200 +++ new/xfs-1.2.0/os/xfstrans.c 2017-11-28 18:19:13.000000000 +0100 @@ -30,12 +30,18 @@ #ifdef XFS_INETD /* xfs special handling for listen socket passed from inetd */ -#include "misc.h" + +/* XXX duplicated from misc.h */ +typedef struct { /* when cloning, need old transport info */ + int trans_id; + int fd; + int portnum; +} OldListenRec; OldListenRec * TRANS(GetInetdListenInfo) (int fd) { - char *port = "0"; + const char *port = "0"; XtransConnInfo inetdCI; OldListenRec *old_listen; int portnum; @@ -79,10 +85,7 @@ #endif if (listen (fd, BACKLOG) < 0) - { - FatalError("listen() failed on inetd socket: %s\n", - strerror(errno)); - } + return NULL; /* Pass the inetd socket back through the connection setup code * the same way as a cloned listening port