diff options
author | Matthieu Herrb <matthieu@cvs.openbsd.org> | 2015-05-10 09:23:35 +0000 |
---|---|---|
committer | Matthieu Herrb <matthieu@cvs.openbsd.org> | 2015-05-10 09:23:35 +0000 |
commit | 12e4d6a4e45c44cb69d29f396fba116716414b97 (patch) | |
tree | 0dfe6e94454519c75bd26fd22ef1f0c90b0dd0aa /lib/libFS | |
parent | ff9a73c00932625463abde90db73ca02e79648a7 (diff) |
update to libFS 1.0.7
Diffstat (limited to 'lib/libFS')
-rw-r--r-- | lib/libFS/ChangeLog | 73 | ||||
-rw-r--r-- | lib/libFS/INSTALL | 248 | ||||
-rw-r--r-- | lib/libFS/NEWS | 0 | ||||
-rw-r--r-- | lib/libFS/compile | 2 | ||||
-rw-r--r-- | lib/libFS/configure | 20 | ||||
-rw-r--r-- | lib/libFS/configure.ac | 2 | ||||
-rw-r--r-- | lib/libFS/include/X11/fonts/FSlib.h | 15 | ||||
-rw-r--r-- | lib/libFS/src/FSErrDis.c | 2 | ||||
-rw-r--r-- | lib/libFS/src/FSFtNames.c | 8 | ||||
-rw-r--r-- | lib/libFS/src/FSGetCats.c | 6 | ||||
-rw-r--r-- | lib/libFS/src/FSListCats.c | 8 | ||||
-rw-r--r-- | lib/libFS/src/FSListExt.c | 6 | ||||
-rw-r--r-- | lib/libFS/src/FSOpenFont.c | 2 | ||||
-rw-r--r-- | lib/libFS/src/FSQGlyphs.c | 4 | ||||
-rw-r--r-- | lib/libFS/src/FSQXExt.c | 4 | ||||
-rw-r--r-- | lib/libFS/src/FSQuExt.c | 2 | ||||
-rw-r--r-- | lib/libFS/src/FSlibInt.c | 6 | ||||
-rw-r--r-- | lib/libFS/src/FSlibint.h | 2 | ||||
-rw-r--r-- | lib/libFS/src/FSlibos.h | 264 |
19 files changed, 439 insertions, 235 deletions
diff --git a/lib/libFS/ChangeLog b/lib/libFS/ChangeLog index a683d6072..542a1282d 100644 --- a/lib/libFS/ChangeLog +++ b/lib/libFS/ChangeLog @@ -1,3 +1,76 @@ +commit a9db12661e7412dd935706c92db6d7bc46238782 +Author: Alan Coopersmith <alan.coopersmith@oracle.com> +Date: Thu Apr 30 21:14:46 2015 -0700 + + libFS 1.0.7 + + Signed-off-by: Alan Coopersmith <alan.coopersmith@oracle.com> + +commit f1c9c18e2601151e3dfa7f83b4748edd2a5a3a6e +Author: Alan Coopersmith <alan.coopersmith@oracle.com> +Date: Wed Nov 5 17:49:30 2014 -0800 + + Use 'imdent' to realign cpp indentation levels in FSlibos.h + + Parts were indented, others weren't, now is more consistent. + 'git diff -w' shows no non-whitespace changes in this commit + + Signed-off-by: Alan Coopersmith <alan.coopersmith@oracle.com> + +commit f2c0bb056dbfbc2ca5b753b8de87b6c73742a990 +Author: Alan Coopersmith <alan.coopersmith@oracle.com> +Date: Wed Nov 5 17:48:18 2014 -0800 + + Remove unneeded checks for #ifndef X_NOT_POSIX + + Signed-off-by: Alan Coopersmith <alan.coopersmith@oracle.com> + +commit aef4c4f1330dc01d535cd88b9805c3d5d164b070 +Author: Alan Coopersmith <alan.coopersmith@oracle.com> +Date: Fri Jul 11 20:24:22 2014 -0700 + + Fix typos & wording issues in source comments + + Signed-off-by: Alan Coopersmith <alan.coopersmith@oracle.com> + +commit dcf25b1ed387d7019d2cf7703eeb33554987d63f +Author: Alan Coopersmith <alan.coopersmith@oracle.com> +Date: Thu Jun 5 14:20:07 2014 -0700 + + Fix some sign/size conversion warnings from clang + + Signed-off-by: Alan Coopersmith <alan.coopersmith@oracle.com> + +commit fa577a18f189fe454995306d38059570e1ad8bf2 +Author: Alan Coopersmith <alan.coopersmith@oracle.com> +Date: Wed Jun 4 23:36:45 2014 -0700 + + Constify some more strings in API arguments + + Signed-off-by: Alan Coopersmith <alan.coopersmith@oracle.com> + +commit 5e0f1b91edb97759e2c07ec233c2ce8639c8e0fe +Author: Alan Coopersmith <alan.coopersmith@oracle.com> +Date: Fri May 23 23:20:03 2014 -0700 + + Constify pattern argument to FSListCatalogues + + The contents of pattern are simply copied to the request sent to + the font server and never touched again, so can be labeled read-only. + + Fixes compiler warning building xfsinfo: + + xfsinfo.c: In function ‘print_catalogue_info’: + xfsinfo.c:158:5: warning: passing argument 2 of ‘FSListCatalogues’ discards + ‘const’ qualifier from pointer target type [enabled by default] + char **cats = FSListCatalogues(svr, "*", 1000, &n); + ^ + In file included from xfsinfo.c:66:0: + FSlib.h:255:16: note: expected ‘char *’ but argument is of type ‘const char *’ + extern char ** FSListCatalogues ( FSServer *svr, char *pattern, + + Signed-off-by: Alan Coopersmith <alan.coopersmith@oracle.com> + commit 88be5c37c40070305e64c4b8dc0a1c1f6ca80440 Author: Alan Coopersmith <alan.coopersmith@oracle.com> Date: Sun Mar 16 10:44:14 2014 -0700 diff --git a/lib/libFS/INSTALL b/lib/libFS/INSTALL index 23e5f25d0..a1e89e18a 100644 --- a/lib/libFS/INSTALL +++ b/lib/libFS/INSTALL @@ -1,16 +1,25 @@ Installation Instructions ************************* -Copyright (C) 1994, 1995, 1996, 1999, 2000, 2001, 2002, 2004, 2005 Free -Software Foundation, Inc. +Copyright (C) 1994-1996, 1999-2002, 2004-2011 Free Software Foundation, +Inc. -This file is free documentation; the Free Software Foundation gives -unlimited permission to copy, distribute and modify it. + Copying and distribution of this file, with or without modification, +are permitted in any medium without royalty provided the copyright +notice and this notice are preserved. This file is offered as-is, +without warranty of any kind. Basic Installation ================== -These are generic installation instructions. + Briefly, the shell commands `./configure; make; make install' should +configure, build, and install this package. The following +more-detailed instructions are generic; see the `README' file for +instructions specific to this package. Some packages provide this +`INSTALL' file but do not implement all of the features documented +below. The lack of an optional feature in a given package is not +necessarily a bug. More recommendations for GNU packages can be found +in *note Makefile Conventions: (standards)Makefile Conventions. The `configure' shell script attempts to guess correct values for various system-dependent variables used during compilation. It uses @@ -23,9 +32,9 @@ debugging `configure'). It can also use an optional file (typically called `config.cache' and enabled with `--cache-file=config.cache' or simply `-C') that saves -the results of its tests to speed up reconfiguring. (Caching is +the results of its tests to speed up reconfiguring. Caching is disabled by default to prevent problems with accidental use of stale -cache files.) +cache files. If you need to do unusual things to compile the package, please try to figure out how `configure' could check whether to do them, and mail @@ -35,30 +44,37 @@ some point `config.cache' contains results you don't want to keep, you may remove or edit it. The file `configure.ac' (or `configure.in') is used to create -`configure' by a program called `autoconf'. You only need -`configure.ac' if you want to change it or regenerate `configure' using -a newer version of `autoconf'. +`configure' by a program called `autoconf'. You need `configure.ac' if +you want to change it or regenerate `configure' using a newer version +of `autoconf'. -The simplest way to compile this package is: + The simplest way to compile this package is: 1. `cd' to the directory containing the package's source code and type - `./configure' to configure the package for your system. If you're - using `csh' on an old version of System V, you might need to type - `sh ./configure' instead to prevent `csh' from trying to execute - `configure' itself. + `./configure' to configure the package for your system. - Running `configure' takes awhile. While running, it prints some - messages telling which features it is checking for. + Running `configure' might take a while. While running, it prints + some messages telling which features it is checking for. 2. Type `make' to compile the package. 3. Optionally, type `make check' to run any self-tests that come with - the package. + the package, generally using the just-built uninstalled binaries. 4. Type `make install' to install the programs and any data files and - documentation. - - 5. You can remove the program binaries and object files from the + documentation. When installing into a prefix owned by root, it is + recommended that the package be configured and built as a regular + user, and only the `make install' phase executed with root + privileges. + + 5. Optionally, type `make installcheck' to repeat any self-tests, but + this time using the binaries in their final installed location. + This target does not install anything. Running this target as a + regular user, particularly if the prior `make install' required + root privileges, verifies that the installation completed + correctly. + + 6. You can remove the program binaries and object files from the source code directory by typing `make clean'. To also remove the files that `configure' created (so you can compile the package for a different kind of computer), type `make distclean'. There is @@ -67,45 +83,69 @@ The simplest way to compile this package is: all sorts of other programs in order to regenerate files that came with the distribution. + 7. Often, you can also type `make uninstall' to remove the installed + files again. In practice, not all packages have tested that + uninstallation works correctly, even though it is required by the + GNU Coding Standards. + + 8. Some packages, particularly those that use Automake, provide `make + distcheck', which can by used by developers to test that all other + targets like `make install' and `make uninstall' work correctly. + This target is generally not run by end users. + Compilers and Options ===================== -Some systems require unusual options for compilation or linking that the -`configure' script does not know about. Run `./configure --help' for -details on some of the pertinent environment variables. + Some systems require unusual options for compilation or linking that +the `configure' script does not know about. Run `./configure --help' +for details on some of the pertinent environment variables. You can give `configure' initial values for configuration parameters by setting variables in the command line or in the environment. Here is an example: - ./configure CC=c89 CFLAGS=-O2 LIBS=-lposix + ./configure CC=c99 CFLAGS=-g LIBS=-lposix *Note Defining Variables::, for more details. Compiling For Multiple Architectures ==================================== -You can compile the package for more than one kind of computer at the + You can compile the package for more than one kind of computer at the same time, by placing the object files for each architecture in their -own directory. To do this, you must use a version of `make' that -supports the `VPATH' variable, such as GNU `make'. `cd' to the +own directory. To do this, you can use GNU `make'. `cd' to the directory where you want the object files and executables to go and run the `configure' script. `configure' automatically checks for the -source code in the directory that `configure' is in and in `..'. +source code in the directory that `configure' is in and in `..'. This +is known as a "VPATH" build. + + With a non-GNU `make', it is safer to compile the package for one +architecture at a time in the source code directory. After you have +installed the package for one architecture, use `make distclean' before +reconfiguring for another architecture. - If you have to use a `make' that does not support the `VPATH' -variable, you have to compile the package for one architecture at a -time in the source code directory. After you have installed the -package for one architecture, use `make distclean' before reconfiguring -for another architecture. + On MacOS X 10.5 and later systems, you can create libraries and +executables that work on multiple system types--known as "fat" or +"universal" binaries--by specifying multiple `-arch' options to the +compiler but only a single `-arch' option to the preprocessor. Like +this: + + ./configure CC="gcc -arch i386 -arch x86_64 -arch ppc -arch ppc64" \ + CXX="g++ -arch i386 -arch x86_64 -arch ppc -arch ppc64" \ + CPP="gcc -E" CXXCPP="g++ -E" + + This is not guaranteed to produce working output in all cases, you +may have to build one architecture at a time and combine the results +using the `lipo' tool if you have problems. Installation Names ================== -By default, `make install' installs the package's commands under + By default, `make install' installs the package's commands under `/usr/local/bin', include files under `/usr/local/include', etc. You can specify an installation prefix other than `/usr/local' by giving -`configure' the option `--prefix=PREFIX'. +`configure' the option `--prefix=PREFIX', where PREFIX must be an +absolute file name. You can specify separate installation prefixes for architecture-specific files and architecture-independent files. If you @@ -116,16 +156,47 @@ Documentation and other data files still use the regular prefix. In addition, if you use an unusual directory layout you can give options like `--bindir=DIR' to specify different values for particular kinds of files. Run `configure --help' for a list of the directories -you can set and what kinds of files go in them. +you can set and what kinds of files go in them. In general, the +default for these options is expressed in terms of `${prefix}', so that +specifying just `--prefix' will affect all of the other directory +specifications that were not explicitly provided. + + The most portable way to affect installation locations is to pass the +correct locations to `configure'; however, many packages provide one or +both of the following shortcuts of passing variable assignments to the +`make install' command line to change installation locations without +having to reconfigure or recompile. + + The first method involves providing an override variable for each +affected directory. For example, `make install +prefix=/alternate/directory' will choose an alternate location for all +directory configuration variables that were expressed in terms of +`${prefix}'. Any directories that were specified during `configure', +but not in terms of `${prefix}', must each be overridden at install +time for the entire installation to be relocated. The approach of +makefile variable overrides for each directory variable is required by +the GNU Coding Standards, and ideally causes no recompilation. +However, some platforms have known limitations with the semantics of +shared libraries that end up requiring recompilation when using this +method, particularly noticeable in packages that use GNU Libtool. + + The second method involves providing the `DESTDIR' variable. For +example, `make install DESTDIR=/alternate/directory' will prepend +`/alternate/directory' before all installation names. The approach of +`DESTDIR' overrides is not required by the GNU Coding Standards, and +does not work on platforms that have drive letters. On the other hand, +it does better at avoiding recompilation issues, and works well even +when some directory options were not specified in terms of `${prefix}' +at `configure' time. + +Optional Features +================= If the package supports it, you can cause programs to be installed with an extra prefix or suffix on their names by giving `configure' the option `--program-prefix=PREFIX' or `--program-suffix=SUFFIX'. -Optional Features -================= - -Some packages pay attention to `--enable-FEATURE' options to + Some packages pay attention to `--enable-FEATURE' options to `configure', where FEATURE indicates an optional part of the package. They may also pay attention to `--with-PACKAGE' options, where PACKAGE is something like `gnu-as' or `x' (for the X Window System). The @@ -137,14 +208,58 @@ find the X include and library files automatically, but if it doesn't, you can use the `configure' options `--x-includes=DIR' and `--x-libraries=DIR' to specify their locations. + Some packages offer the ability to configure how verbose the +execution of `make' will be. For these packages, running `./configure +--enable-silent-rules' sets the default to minimal output, which can be +overridden with `make V=1'; while running `./configure +--disable-silent-rules' sets the default to verbose, which can be +overridden with `make V=0'. + +Particular systems +================== + + On HP-UX, the default C compiler is not ANSI C compatible. If GNU +CC is not installed, it is recommended to use the following options in +order to use an ANSI C compiler: + + ./configure CC="cc -Ae -D_XOPEN_SOURCE=500" + +and if that doesn't work, install pre-built binaries of GCC for HP-UX. + + HP-UX `make' updates targets which have the same time stamps as +their prerequisites, which makes it generally unusable when shipped +generated files such as `configure' are involved. Use GNU `make' +instead. + + On OSF/1 a.k.a. Tru64, some versions of the default C compiler cannot +parse its `<wchar.h>' header file. The option `-nodtk' can be used as +a workaround. If GNU CC is not installed, it is therefore recommended +to try + + ./configure CC="cc" + +and if that doesn't work, try + + ./configure CC="cc -nodtk" + + On Solaris, don't put `/usr/ucb' early in your `PATH'. This +directory contains several dysfunctional programs; working variants of +these programs are available in `/usr/bin'. So, if you need `/usr/ucb' +in your `PATH', put it _after_ `/usr/bin'. + + On Haiku, software installed for all users goes in `/boot/common', +not `/usr/local'. It is recommended to use the following options: + + ./configure --prefix=/boot/common + Specifying the System Type ========================== -There may be some features `configure' cannot figure out automatically, -but needs to determine by the type of machine the package will run on. -Usually, assuming the package is built to be run on the _same_ -architectures, `configure' can figure that out, but if it prints a -message saying it cannot guess the machine type, give it the + There may be some features `configure' cannot figure out +automatically, but needs to determine by the type of machine the package +will run on. Usually, assuming the package is built to be run on the +_same_ architectures, `configure' can figure that out, but if it prints +a message saying it cannot guess the machine type, give it the `--build=TYPE' option. TYPE can either be a short name for the system type, such as `sun4', or a canonical name which has the form: @@ -152,7 +267,8 @@ type, such as `sun4', or a canonical name which has the form: where SYSTEM can have one of these forms: - OS KERNEL-OS + OS + KERNEL-OS See the file `config.sub' for the possible values of each field. If `config.sub' isn't included in this package, then this package doesn't @@ -170,9 +286,9 @@ eventually be run) with `--host=TYPE'. Sharing Defaults ================ -If you want to set default values for `configure' scripts to share, you -can create a site shell script called `config.site' that gives default -values for variables like `CC', `cache_file', and `prefix'. + If you want to set default values for `configure' scripts to share, +you can create a site shell script called `config.site' that gives +default values for variables like `CC', `cache_file', and `prefix'. `configure' looks for `PREFIX/share/config.site' if it exists, then `PREFIX/etc/config.site' if it exists. Or, you can set the `CONFIG_SITE' environment variable to the location of the site script. @@ -181,7 +297,7 @@ A warning: not all `configure' scripts look for a site script. Defining Variables ================== -Variables not defined in a site shell script can be set in the + Variables not defined in a site shell script can be set in the environment passed to `configure'. However, some packages may run configure again during the build, and the customized values of these variables may be lost. In order to avoid this problem, you should set @@ -190,21 +306,29 @@ them in the `configure' command line, using `VAR=value'. For example: ./configure CC=/usr/local2/bin/gcc causes the specified `gcc' to be used as the C compiler (unless it is -overridden in the site shell script). Here is a another example: +overridden in the site shell script). - /bin/bash ./configure CONFIG_SHELL=/bin/bash +Unfortunately, this technique does not work for `CONFIG_SHELL' due to +an Autoconf bug. Until the bug is fixed you can use this workaround: -Here the `CONFIG_SHELL=/bin/bash' operand causes subsequent -configuration-related scripts to be executed by `/bin/bash'. + CONFIG_SHELL=/bin/bash /bin/bash ./configure CONFIG_SHELL=/bin/bash `configure' Invocation ====================== -`configure' recognizes the following options to control how it operates. + `configure' recognizes the following options to control how it +operates. `--help' `-h' - Print a summary of the options to `configure', and exit. + Print a summary of all of the options to `configure', and exit. + +`--help=short' +`--help=recursive' + Print a summary of the options unique to this package's + `configure', and exit. The `short' variant lists options used + only in the top level, while the `recursive' variant lists options + also present in any nested packages. `--version' `-V' @@ -231,6 +355,16 @@ configuration-related scripts to be executed by `/bin/bash'. Look for the package's source code in directory DIR. Usually `configure' can determine that directory automatically. +`--prefix=DIR' + Use DIR as the installation prefix. *note Installation Names:: + for more details, including other options available for fine-tuning + the installation locations. + +`--no-create' +`-n' + Run the configure checks, but stop before creating any output + files. + `configure' also accepts some other, not widely useful, options. Run `configure --help' for more details. diff --git a/lib/libFS/NEWS b/lib/libFS/NEWS deleted file mode 100644 index e69de29bb..000000000 --- a/lib/libFS/NEWS +++ /dev/null diff --git a/lib/libFS/compile b/lib/libFS/compile index 531136b06..a85b723c7 100644 --- a/lib/libFS/compile +++ b/lib/libFS/compile @@ -3,7 +3,7 @@ scriptversion=2012-10-14.11; # UTC -# Copyright (C) 1999-2013 Free Software Foundation, Inc. +# Copyright (C) 1999-2014 Free Software Foundation, Inc. # Written by Tom Tromey <tromey@cygnus.com>. # # This program is free software; you can redistribute it and/or modify diff --git a/lib/libFS/configure b/lib/libFS/configure index 401b75091..9bb6efdc5 100644 --- a/lib/libFS/configure +++ b/lib/libFS/configure @@ -1,6 +1,6 @@ #! /bin/sh # Guess values for system-dependent variables and create Makefiles. -# Generated by GNU Autoconf 2.69 for libFS 1.0.6. +# Generated by GNU Autoconf 2.69 for libFS 1.0.7. # # Report bugs to <https://bugs.freedesktop.org/enter_bug.cgi?product=xorg>. # @@ -591,8 +591,8 @@ MAKEFLAGS= # Identity of this package. PACKAGE_NAME='libFS' PACKAGE_TARNAME='libFS' -PACKAGE_VERSION='1.0.6' -PACKAGE_STRING='libFS 1.0.6' +PACKAGE_VERSION='1.0.7' +PACKAGE_STRING='libFS 1.0.7' PACKAGE_BUGREPORT='https://bugs.freedesktop.org/enter_bug.cgi?product=xorg' PACKAGE_URL='' @@ -1361,7 +1361,7 @@ if test "$ac_init_help" = "long"; then # Omit some internal or obsolete options to make the list less imposing. # This message is too long to be a string in the A/UX 3.1 sh. cat <<_ACEOF -\`configure' configures libFS 1.0.6 to adapt to many kinds of systems. +\`configure' configures libFS 1.0.7 to adapt to many kinds of systems. Usage: $0 [OPTION]... [VAR=VALUE]... @@ -1431,7 +1431,7 @@ fi if test -n "$ac_init_help"; then case $ac_init_help in - short | recursive ) echo "Configuration of libFS 1.0.6:";; + short | recursive ) echo "Configuration of libFS 1.0.7:";; esac cat <<\_ACEOF @@ -1561,7 +1561,7 @@ fi test -n "$ac_init_help" && exit $ac_status if $ac_init_version; then cat <<\_ACEOF -libFS configure 1.0.6 +libFS configure 1.0.7 generated by GNU Autoconf 2.69 Copyright (C) 2012 Free Software Foundation, Inc. @@ -2087,7 +2087,7 @@ cat >config.log <<_ACEOF This file contains any messages produced by compilers while running configure, to aid debugging if configure makes a mistake. -It was created by libFS $as_me 1.0.6, which was +It was created by libFS $as_me 1.0.7, which was generated by GNU Autoconf 2.69. Invocation command line was $ $0 $@ @@ -2916,7 +2916,7 @@ fi # Define the identity of the package. PACKAGE='libFS' - VERSION='1.0.6' + VERSION='1.0.7' cat >>confdefs.h <<_ACEOF @@ -18963,7 +18963,7 @@ cat >>$CONFIG_STATUS <<\_ACEOF || ac_write_fail=1 # report actual input values of CONFIG_FILES etc. instead of their # values after options handling. ac_log=" -This file was extended by libFS $as_me 1.0.6, which was +This file was extended by libFS $as_me 1.0.7, which was generated by GNU Autoconf 2.69. Invocation command line was CONFIG_FILES = $CONFIG_FILES @@ -19029,7 +19029,7 @@ _ACEOF cat >>$CONFIG_STATUS <<_ACEOF || ac_write_fail=1 ac_cs_config="`$as_echo "$ac_configure_args" | sed 's/^ //; s/[\\""\`\$]/\\\\&/g'`" ac_cs_version="\\ -libFS config.status 1.0.6 +libFS config.status 1.0.7 configured by $0, generated by GNU Autoconf 2.69, with options \\"\$ac_cs_config\\" diff --git a/lib/libFS/configure.ac b/lib/libFS/configure.ac index 03ecca497..7ea0e4fcd 100644 --- a/lib/libFS/configure.ac +++ b/lib/libFS/configure.ac @@ -22,7 +22,7 @@ # Initialize Autoconf AC_PREREQ([2.60]) -AC_INIT([libFS], [1.0.6], +AC_INIT([libFS], [1.0.7], [https://bugs.freedesktop.org/enter_bug.cgi?product=xorg], [libFS]) AC_CONFIG_SRCDIR([Makefile.am]) AC_CONFIG_HEADERS([config.h]) diff --git a/lib/libFS/include/X11/fonts/FSlib.h b/lib/libFS/include/X11/fonts/FSlib.h index 1cd7f137d..3debd77ac 100644 --- a/lib/libFS/include/X11/fonts/FSlib.h +++ b/lib/libFS/include/X11/fonts/FSlib.h @@ -249,10 +249,10 @@ extern FSSyncHandler FSSetAfterFunction(FSServer *, FSSyncHandler); extern const char * FSServerName ( const char *server ); extern char ** FSListExtensions ( FSServer *svr, int *next ); -extern int FSQueryExtension ( FSServer *svr, char *name, int *major_opcode, +extern int FSQueryExtension ( FSServer *svr, const char *name, int *major_opcode, int *first_event, int *first_error ); -extern char ** FSListCatalogues ( FSServer *svr, char *pattern, +extern char ** FSListCatalogues ( FSServer *svr, const char *pattern, int maxNames, int *actualCount ); extern char ** FSGetCatalogues ( FSServer *svr, int *num ); @@ -267,7 +267,7 @@ extern char ** FSListFontsWithXInfo ( FSServer *svr, const char *pattern, FSPropOffset ***offsets, unsigned char ***prop_data ); extern Font FSOpenBitmapFont ( FSServer *svr, FSBitmapFormat hint, - FSBitmapFormatMask fmask, char *name, + FSBitmapFormatMask fmask, const char *name, Font *otherid ); extern int FSSync ( FSServer *svr, Bool discard ); @@ -278,7 +278,6 @@ extern int FSGetErrorDatabaseText ( FSServer *svr, const char *name, const char *type, const char *defaultp, char *buffer, int nbytes ); extern int FSGetErrorText ( FSServer *svr, int code, char *buffer, - int nbytes ); extern int FSFlush ( FSServer *svr ); extern int FSFreeFontNames ( char **list ); @@ -286,18 +285,18 @@ extern int FSFreeCatalogues ( char **list ); extern int FSFreeExtensionList ( char **list ); extern int FSNextEvent ( FSServer *svr, FSEvent *event ); extern int FSQueryXBitmaps8 ( FSServer *svr, Font fid, FSBitmapFormat format, - int range_type, unsigned char *str, + int range_type, const unsigned char *str, unsigned long str_len, FSOffset **offsets, unsigned char **glyphdata ); extern int FSQueryXBitmaps16 ( FSServer *svr, Font fid, FSBitmapFormat format, - int range_type, FSChar2b *str, + int range_type, const FSChar2b *str, unsigned long str_len, FSOffset **offsets, unsigned char **glyphdata ); extern int FSQueryXExtents8 ( FSServer *svr, Font fid, int range_type, - unsigned char *str, unsigned long str_len, + const unsigned char *str, unsigned long str_len, FSXCharInfo **extents ); extern int FSQueryXExtents16 ( FSServer *svr, Font fid, int range_type, - FSChar2b *str, unsigned long str_len, + const FSChar2b *str, unsigned long str_len, FSXCharInfo **extents ); extern int FSQueryXInfo ( FSServer *svr, Font fid, FSXFontInfoHeader *info, FSPropInfo *props, FSPropOffset **offsets, diff --git a/lib/libFS/src/FSErrDis.c b/lib/libFS/src/FSErrDis.c index 76ebab6f5..bffe2b5c5 100644 --- a/lib/libFS/src/FSErrDis.c +++ b/lib/libFS/src/FSErrDis.c @@ -70,7 +70,7 @@ static const char *FSErrorList[] = { /* FSBadLength */ "BadLength, request too large or internal FSlib length error", /* FSBadImplementation */ "BadImplementation, request unsupported", }; -static int FSErrorListSize = sizeof(FSErrorList); +#define FSErrorListSize sizeof(FSErrorList) /* ARGSUSED */ diff --git a/lib/libFS/src/FSFtNames.c b/lib/libFS/src/FSFtNames.c index 1cac9d499..732040f2f 100644 --- a/lib/libFS/src/FSFtNames.c +++ b/lib/libFS/src/FSFtNames.c @@ -62,13 +62,13 @@ FSListFonts( int *actualCount) { long nbytes; - int i, + unsigned int i, length; char **flist; char *c; fsListFontsReply rep; fsListFontsReq *req; - long rlen; + unsigned long rlen; GetReq(ListFonts, req); req->maxNames = maxNames; @@ -94,11 +94,11 @@ FSListFonts( FSfree(flist); if (c) FSfree(c); - _FSEatData(svr, (unsigned long) rlen); + _FSEatData(svr, rlen); SyncHandle(); return (char **) NULL; } - _FSReadPad(svr, c, rlen); + _FSReadPad(svr, c, (long) rlen); /* unpack */ length = *(unsigned char *)c; for (i = 0; i < rep.nFonts; i++) { diff --git a/lib/libFS/src/FSGetCats.c b/lib/libFS/src/FSGetCats.c index 75f8c369b..d8fae40fb 100644 --- a/lib/libFS/src/FSGetCats.c +++ b/lib/libFS/src/FSGetCats.c @@ -65,7 +65,7 @@ FSGetCatalogues( int i, length; fsReq *req; - long rlen; + unsigned long rlen; GetEmptyReq(GetCatalogues, req); @@ -87,11 +87,11 @@ FSGetCatalogues( FSfree(list); if (c) FSfree(c); - _FSEatData(svr, (unsigned long) rlen); + _FSEatData(svr, rlen); SyncHandle(); return (char **) NULL; } - _FSReadPad(svr, c, rlen); + _FSReadPad(svr, c, (long) rlen); /* * unpack the strings */ diff --git a/lib/libFS/src/FSListCats.c b/lib/libFS/src/FSListCats.c index 7987f7962..e4aa5edd8 100644 --- a/lib/libFS/src/FSListCats.c +++ b/lib/libFS/src/FSListCats.c @@ -57,7 +57,7 @@ in this Software without prior written authorization from The Open Group. char ** FSListCatalogues( FSServer *svr, - char *pattern, + const char *pattern, int maxNames, int *actualCount) { @@ -68,7 +68,7 @@ FSListCatalogues( char *c; fsListCataloguesReply rep; fsListCataloguesReq *req; - long rlen; + unsigned long rlen; GetReq(ListCatalogues, req); req->maxNames = maxNames; @@ -94,11 +94,11 @@ FSListCatalogues( FSfree(clist); if (c) FSfree(c); - _FSEatData(svr, (unsigned long) rlen); + _FSEatData(svr, rlen); SyncHandle(); return (char **) NULL; } - _FSReadPad(svr, c, rlen); + _FSReadPad(svr, c, (long) rlen); /* unpack */ length = *c; for (i = 0; i < rep.num_catalogues; i++) { diff --git a/lib/libFS/src/FSListExt.c b/lib/libFS/src/FSListExt.c index c127003f9..8d83bd3cd 100644 --- a/lib/libFS/src/FSListExt.c +++ b/lib/libFS/src/FSListExt.c @@ -65,7 +65,7 @@ FSListExtensions( int i, length; fsReq *req; - long rlen; + unsigned long rlen; GetEmptyReq(ListExtensions, req); @@ -87,11 +87,11 @@ FSListExtensions( FSfree(list); if (c) FSfree(c); - _FSEatData(svr, (unsigned long) rlen); + _FSEatData(svr, rlen); SyncHandle(); return (char **) NULL; } - _FSReadPad(svr, c, rlen); + _FSReadPad(svr, c, (long) rlen); /* * unpack the strings */ diff --git a/lib/libFS/src/FSOpenFont.c b/lib/libFS/src/FSOpenFont.c index 0dcaaf86d..d35b75e71 100644 --- a/lib/libFS/src/FSOpenFont.c +++ b/lib/libFS/src/FSOpenFont.c @@ -59,7 +59,7 @@ FSOpenBitmapFont( FSServer *svr, FSBitmapFormat hint, FSBitmapFormatMask fmask, - char *name, + const char *name, Font *otherid) { unsigned int nbytes; diff --git a/lib/libFS/src/FSQGlyphs.c b/lib/libFS/src/FSQGlyphs.c index 9681ef062..0c6523e1c 100644 --- a/lib/libFS/src/FSQGlyphs.c +++ b/lib/libFS/src/FSQGlyphs.c @@ -60,7 +60,7 @@ FSQueryXBitmaps8( Font fid, FSBitmapFormat format, Bool range_type, - unsigned char *str, + const unsigned char *str, unsigned long str_len, FSOffset **offsets, unsigned char **glyphdata) @@ -129,7 +129,7 @@ FSQueryXBitmaps16( Font fid, FSBitmapFormat format, Bool range_type, - FSChar2b *str, + const FSChar2b *str, unsigned long str_len, FSOffset **offsets, unsigned char **glyphdata) diff --git a/lib/libFS/src/FSQXExt.c b/lib/libFS/src/FSQXExt.c index e730df50c..4ad63acab 100644 --- a/lib/libFS/src/FSQXExt.c +++ b/lib/libFS/src/FSQXExt.c @@ -70,7 +70,7 @@ FSQueryXExtents8( FSServer *svr, Font fid, Bool range_type, - unsigned char *str, + const unsigned char *str, unsigned long str_len, FSXCharInfo **extents) { @@ -116,7 +116,7 @@ FSQueryXExtents16( FSServer *svr, Font fid, Bool range_type, - FSChar2b *str, + const FSChar2b *str, unsigned long str_len, FSXCharInfo **extents) { diff --git a/lib/libFS/src/FSQuExt.c b/lib/libFS/src/FSQuExt.c index 774a571f1..fa3dd7edd 100644 --- a/lib/libFS/src/FSQuExt.c +++ b/lib/libFS/src/FSQuExt.c @@ -57,7 +57,7 @@ in this Software without prior written authorization from The Open Group. Bool FSQueryExtension( FSServer *svr, - char *name, + const char *name, int *major_opcode, int *first_event, int *first_error) diff --git a/lib/libFS/src/FSlibInt.c b/lib/libFS/src/FSlibInt.c index 090da3f6f..9690363c6 100644 --- a/lib/libFS/src/FSlibInt.c +++ b/lib/libFS/src/FSlibInt.c @@ -316,7 +316,7 @@ _FSReadPad( if (size == 0) return; - iov[0].iov_len = (int) size; + iov[0].iov_len = size; iov[0].iov_base = data; /* * The following hack is used to provide 32 bit long-word aligned padding. @@ -462,7 +462,7 @@ _FSSend( #ifdef undef /* * _FSAllocID - normal resource ID allocation routine. A client - * can roll his own and instatantiate it if he wants, but must + * can roll their own and instantiate it if they want, but must * follow the rules. */ FSID @@ -707,7 +707,7 @@ _FSEnq( } /* - * EventToWire in seperate file in that often not needed. + * EventToWire in separate file that is often not needed. */ /*ARGSUSED*/ diff --git a/lib/libFS/src/FSlibint.h b/lib/libFS/src/FSlibint.h index 5e539be80..d68102a63 100644 --- a/lib/libFS/src/FSlibint.h +++ b/lib/libFS/src/FSlibint.h @@ -152,7 +152,7 @@ extern FSServer *_FSHeadOfServerList; req = (fsResourceReq *) (svr->last_req = svr->bufptr);\ req->reqType = FS_##name;\ req->length = 2;\ - req->id = (rid);\ + req->id = (CARD32) (rid);\ svr->bufptr += SIZEOF(fsResourceReq);\ svr->request++ diff --git a/lib/libFS/src/FSlibos.h b/lib/libFS/src/FSlibos.h index 615104da4..baf9902bc 100644 --- a/lib/libFS/src/FSlibos.h +++ b/lib/libFS/src/FSlibos.h @@ -58,203 +58,201 @@ in this Software without prior written authorization from The Open Group. #ifndef WIN32 -#if defined(__SCO__) || defined(__UNIXWARE__) -#include <stdint.h> /* For SIZE_MAX */ -#endif +# if defined(__SCO__) || defined(__UNIXWARE__) +# include <stdint.h> /* For SIZE_MAX */ +# endif /* * makedepend screws up on #undef OPEN_MAX, so we define a new symbol */ -#ifndef FS_OPEN_MAX - -#ifndef X_NOT_POSIX -#ifdef _POSIX_SOURCE -#include <limits.h> -#else -#define _POSIX_SOURCE -#include <limits.h> -#undef _POSIX_SOURCE -#endif -#endif -#ifndef SIZE_MAX -# ifdef ULONG_MAX -# define SIZE_MAX ULONG_MAX -# else -# define SIZE_MAX UINT_MAX -# endif -#endif -#ifndef OPEN_MAX -#ifdef SVR4 -#define OPEN_MAX 256 -#else -#include <sys/param.h> -#ifndef OPEN_MAX -#ifdef __OSF1__ -#define OPEN_MAX 256 -#else -#ifdef NOFILE -#define OPEN_MAX NOFILE -#else -#if !defined(__UNIXOS2__) && !defined(__QNX__) -#ifdef __GNU__ -#define OPEN_MAX (sysconf(_SC_OPEN_MAX)) -#else /* !__GNU__ */ -#define OPEN_MAX NOFILES_MAX -#endif /* __GNU__ */ -#else /* !__UNIXOS2__ && !__QNX__ */ -#define OPEN_MAX 256 -#endif /* __UNIXOS2__ */ -#endif -#endif -#endif -#endif -#endif - -#ifdef __GNU__ -#define FS_OPEN_MAX 256 -#else /*!__GNU__*/ -#if OPEN_MAX > 256 -#define FS_OPEN_MAX 256 -#else -#define FS_OPEN_MAX OPEN_MAX -#endif -#endif /*__GNU__*/ - -#endif /* FS_OPEN_MAX */ +# ifndef FS_OPEN_MAX + +# ifdef _POSIX_SOURCE +# include <limits.h> +# else +# define _POSIX_SOURCE +# include <limits.h> +# undef _POSIX_SOURCE +# endif +# ifndef SIZE_MAX +# ifdef ULONG_MAX +# define SIZE_MAX ULONG_MAX +# else +# define SIZE_MAX UINT_MAX +# endif +# endif +# ifndef OPEN_MAX +# ifdef SVR4 +# define OPEN_MAX 256 +# else +# include <sys/param.h> +# ifndef OPEN_MAX +# ifdef __OSF1__ +# define OPEN_MAX 256 +# else +# ifdef NOFILE +# define OPEN_MAX NOFILE +# else +# if !defined(__UNIXOS2__) && !defined(__QNX__) +# ifdef __GNU__ +# define OPEN_MAX (sysconf(_SC_OPEN_MAX)) +# else /* !__GNU__ */ +# define OPEN_MAX NOFILES_MAX +# endif /* __GNU__ */ +# else /* !__UNIXOS2__ && !__QNX__ */ +# define OPEN_MAX 256 +# endif /* __UNIXOS2__ */ +# endif +# endif +# endif +# endif +# endif + +# ifdef __GNU__ +# define FS_OPEN_MAX 256 +# else /*!__GNU__*/ +# if OPEN_MAX > 256 +# define FS_OPEN_MAX 256 +# else +# define FS_OPEN_MAX OPEN_MAX +# endif +# endif /*__GNU__*/ + +# endif /* FS_OPEN_MAX */ /* Utek leaves kernel macros around in include files (bleah) */ -#ifdef dirty -#undef dirty -#endif +# ifdef dirty +# undef dirty +# endif -#define NMSKBITS 32 -#define MSKCNT ((FS_OPEN_MAX + NMSKBITS - 1) / NMSKBITS) +# define NMSKBITS 32 +# define MSKCNT ((FS_OPEN_MAX + NMSKBITS - 1) / NMSKBITS) -#ifdef LONG64 +# ifdef LONG64 typedef unsigned int FdSet[MSKCNT]; -#else +# else typedef unsigned long FdSet[MSKCNT]; -#endif +# endif -#if (MSKCNT==1) -#define BITMASK(i) (1 << (i)) -#define MASKIDX(i) 0 -#endif +# if (MSKCNT==1) +# define BITMASK(i) (1 << (i)) +# define MASKIDX(i) 0 +# endif -#if (MSKCNT>1) -#define BITMASK(i) (1 << ((i) & (NMSKBITS - 1))) -#define MASKIDX(i) ((i) / NMSKBITS) -#endif +# if (MSKCNT>1) +# define BITMASK(i) (1 << ((i) & (NMSKBITS - 1))) +# define MASKIDX(i) ((i) / NMSKBITS) +# endif -#define MASKWORD(buf, i) buf[MASKIDX(i)] -#define BITSET(buf, i) MASKWORD(buf, i) |= BITMASK(i) -#define BITCLEAR(buf, i) MASKWORD(buf, i) &= ~BITMASK(i) -#define GETBIT(buf, i) (MASKWORD(buf, i) & BITMASK(i)) - -#if (MSKCNT==1) -#define COPYBITS(src, dst) dst[0] = src[0] -#define CLEARBITS(buf) buf[0] = 0 -#define MASKANDSETBITS(dst, b1, b2) dst[0] = (b1[0] & b2[0]) -#define ORBITS(dst, b1, b2) dst[0] = (b1[0] | b2[0]) -#define UNSETBITS(dst, b1) (dst[0] &= ~b1[0]) -#define _FSANYSET(src) (src[0]) -#endif +# define MASKWORD(buf, i) buf[MASKIDX(i)] +# define BITSET(buf, i) MASKWORD(buf, i) |= BITMASK(i) +# define BITCLEAR(buf, i) MASKWORD(buf, i) &= ~BITMASK(i) +# define GETBIT(buf, i) (MASKWORD(buf, i) & BITMASK(i)) + +# if (MSKCNT==1) +# define COPYBITS(src, dst) dst[0] = src[0] +# define CLEARBITS(buf) buf[0] = 0 +# define MASKANDSETBITS(dst, b1, b2) dst[0] = (b1[0] & b2[0]) +# define ORBITS(dst, b1, b2) dst[0] = (b1[0] | b2[0]) +# define UNSETBITS(dst, b1) (dst[0] &= ~b1[0]) +# define _FSANYSET(src) (src[0]) +# endif -#if (MSKCNT==2) -#define COPYBITS(src, dst) { dst[0] = src[0]; dst[1] = src[1]; } -#define CLEARBITS(buf) { buf[0] = 0; buf[1] = 0; } -#define MASKANDSETBITS(dst, b1, b2) {\ +# if (MSKCNT==2) +# define COPYBITS(src, dst) { dst[0] = src[0]; dst[1] = src[1]; } +# define CLEARBITS(buf) { buf[0] = 0; buf[1] = 0; } +# define MASKANDSETBITS(dst, b1, b2) {\ dst[0] = (b1[0] & b2[0]);\ dst[1] = (b1[1] & b2[1]); } -#define ORBITS(dst, b1, b2) {\ +# define ORBITS(dst, b1, b2) {\ dst[0] = (b1[0] | b2[0]);\ dst[1] = (b1[1] | b2[1]); } -#define UNSETBITS(dst, b1) {\ +# define UNSETBITS(dst, b1) {\ dst[0] &= ~b1[0]; \ dst[1] &= ~b1[1]; } -#define _FSANYSET(src) (src[0] || src[1]) -#endif +# define _FSANYSET(src) (src[0] || src[1]) +# endif -#if (MSKCNT==3) -#define COPYBITS(src, dst) { dst[0] = src[0]; dst[1] = src[1]; \ +# if (MSKCNT==3) +# define COPYBITS(src, dst) { dst[0] = src[0]; dst[1] = src[1]; \ dst[2] = src[2]; } -#define CLEARBITS(buf) { buf[0] = 0; buf[1] = 0; buf[2] = 0; } -#define MASKANDSETBITS(dst, b1, b2) {\ +# define CLEARBITS(buf) { buf[0] = 0; buf[1] = 0; buf[2] = 0; } +# define MASKANDSETBITS(dst, b1, b2) {\ dst[0] = (b1[0] & b2[0]);\ dst[1] = (b1[1] & b2[1]);\ dst[2] = (b1[2] & b2[2]); } -#define ORBITS(dst, b1, b2) {\ +# define ORBITS(dst, b1, b2) {\ dst[0] = (b1[0] | b2[0]);\ dst[1] = (b1[1] | b2[1]);\ dst[2] = (b1[2] | b2[2]); } -#define UNSETBITS(dst, b1) {\ +# define UNSETBITS(dst, b1) {\ dst[0] &= ~b1[0]; \ dst[1] &= ~b1[1]; \ dst[2] &= ~b1[2]; } -#define _FSANYSET(src) (src[0] || src[1] || src[2]) -#endif +# define _FSANYSET(src) (src[0] || src[1] || src[2]) +# endif -#if (MSKCNT==4) -#define COPYBITS(src, dst) dst[0] = src[0]; dst[1] = src[1]; \ +# if (MSKCNT==4) +# define COPYBITS(src, dst) dst[0] = src[0]; dst[1] = src[1]; \ dst[2] = src[2]; dst[3] = src[3] -#define CLEARBITS(buf) buf[0] = 0; buf[1] = 0; buf[2] = 0; buf[3] = 0 -#define MASKANDSETBITS(dst, b1, b2) \ +# define CLEARBITS(buf) buf[0] = 0; buf[1] = 0; buf[2] = 0; buf[3] = 0 +# define MASKANDSETBITS(dst, b1, b2) \ dst[0] = (b1[0] & b2[0]);\ dst[1] = (b1[1] & b2[1]);\ dst[2] = (b1[2] & b2[2]);\ dst[3] = (b1[3] & b2[3]) -#define ORBITS(dst, b1, b2) \ +# define ORBITS(dst, b1, b2) \ dst[0] = (b1[0] | b2[0]);\ dst[1] = (b1[1] | b2[1]);\ dst[2] = (b1[2] | b2[2]);\ dst[3] = (b1[3] | b2[3]) -#define UNSETBITS(dst, b1) \ +# define UNSETBITS(dst, b1) \ dst[0] &= ~b1[0]; \ dst[1] &= ~b1[1]; \ dst[2] &= ~b1[2]; \ dst[3] &= ~b1[3] -#define _FSANYSET(src) (src[0] || src[1] || src[2] || src[3]) -#endif +# define _FSANYSET(src) (src[0] || src[1] || src[2] || src[3]) +# endif -#if (MSKCNT>4) -#define COPYBITS(src, dst) memmove((caddr_t) dst, (caddr_t) src, sizeof(FdSet)) -#define CLEARBITS(buf) bzero((caddr_t) buf, sizeof(FdSet)) -#define MASKANDSETBITS(dst, b1, b2) \ +# if (MSKCNT>4) +# define COPYBITS(src, dst) memmove((caddr_t) dst, (caddr_t) src, sizeof(FdSet)) +# define CLEARBITS(buf) bzero((caddr_t) buf, sizeof(FdSet)) +# define MASKANDSETBITS(dst, b1, b2) \ { int cri; \ for (cri=0; cri<MSKCNT; cri++) \ dst[cri] = (b1[cri] & b2[cri]) } -#define ORBITS(dst, b1, b2) \ +# define ORBITS(dst, b1, b2) \ { int cri; \ for (cri=0; cri<MSKCNT; cri++) \ dst[cri] = (b1[cri] | b2[cri]) } -#define UNSETBITS(dst, b1) \ +# define UNSETBITS(dst, b1) \ { int cri; \ for (cri=0; cri<MSKCNT; cri++) \ dst[cri] &= ~b1[cri]; } -#if (MSKCNT==8) -#define _FSANYSET(src) (src[0] || src[1] || src[2] || src[3] || \ +# if (MSKCNT==8) +# define _FSANYSET(src) (src[0] || src[1] || src[2] || src[3] || \ src[4] || src[5] || src[6] || src[7]) -#endif +# endif /* * If MSKCNT>4 and not 8, then _FSANYSET is a routine defined in FSlibInt.c. * * #define _FSANYSET(src) (src[0] || src[1] || src[2] || src[3] || src[4] ...) */ -#endif +# endif #else -#include <X11/Xwinsock.h> -#include <X11/Xw32defs.h> +# include <X11/Xwinsock.h> +# include <X11/Xw32defs.h> typedef fd_set FdSet; -#define CLEARBITS(set) FD_ZERO(&set) -#define BITSET(set,s) FD_SET(s,&set) -#define _FSANYSET(set) set.fd_count +# define CLEARBITS(set) FD_ZERO(&set) +# define BITSET(set,s) FD_SET(s,&set) +# define _FSANYSET(set) set.fd_count #endif @@ -281,15 +279,15 @@ typedef fd_set FdSet; */ #ifdef MALLOC_0_RETURNS_NULL -#define FSmalloc(size) malloc(((size) > 0 ? (size) : 1)) -#define FSrealloc(ptr, size) realloc((ptr), ((size) > 0 ? (size) : 1)) -#define FScalloc(nelem, elsize) calloc(((nelem) > 0 ? (nelem) : 1), (elsize)) +# define FSmalloc(size) malloc(((size) > 0 ? (size) : 1)) +# define FSrealloc(ptr, size) realloc((ptr), ((size) > 0 ? (size) : 1)) +# define FScalloc(nelem, elsize) calloc(((nelem) > 0 ? (nelem) : 1), (elsize)) #else -#define FSmalloc(size) malloc((size)) -#define FSrealloc(ptr, size) realloc((ptr), (size)) -#define FScalloc(nelem, elsize) calloc((nelem), (elsize)) +# define FSmalloc(size) malloc((size)) +# define FSrealloc(ptr, size) realloc((ptr), (size)) +# define FScalloc(nelem, elsize) calloc((nelem), (elsize)) #endif #define SearchString(string, char) index((string), (char)) |